From 365e1001a219f73ccaac1054216d11e7ba1213c1 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 15 Mar 2024 11:55:55 +0100 Subject: [PATCH 01/10] WIP: postfix autoreply merged back to core repo --- frontend/src/api/account.js | 6 + .../src/components/account/APISetupForm.vue | 118 + .../src/components/account/AutoReplyForm.vue | 98 + .../identities/AccountSenderAddresses.vue | 8 +- frontend/src/components/login/LoginForm.vue | 6 +- frontend/src/layouts/dashboard/NavBar.vue | 50 +- frontend/src/router/index.js | 37 +- frontend/src/stores/auth.store.js | 9 +- frontend/src/views/account/SettingsView.vue | 67 + modoboa/locale/br/LC_MESSAGES/django.po | 2195 ++++++++++------ modoboa/locale/cs/LC_MESSAGES/django.po | 1829 +++++++------ modoboa/locale/cs_CZ/LC_MESSAGES/django.po | 2151 +++++++++------ modoboa/locale/de/LC_MESSAGES/django.po | 2258 +++++++++------- modoboa/locale/de_DE/LC_MESSAGES/django.po | 2049 +++++++++------ modoboa/locale/el_GR/LC_MESSAGES/django.po | 2302 ++++++++++------- modoboa/locale/en/LC_MESSAGES/django.po | 1815 +++++++------ modoboa/locale/es/LC_MESSAGES/django.po | 2180 ++++++++++------ modoboa/locale/fi/LC_MESSAGES/django.po | 2239 +++++++++------- modoboa/locale/fr/LC_MESSAGES/django.po | 2094 +++++++++------ modoboa/locale/hu/LC_MESSAGES/django.po | 1815 +++++++------ modoboa/locale/it/LC_MESSAGES/django.po | 2248 ++++++++++------ modoboa/locale/ja_JP/LC_MESSAGES/django.po | 1950 ++++++++------ modoboa/locale/nl_NL/LC_MESSAGES/django.po | 2187 ++++++++++------ modoboa/locale/no/LC_MESSAGES/django.po | 1815 +++++++------ modoboa/locale/pl_PL/LC_MESSAGES/django.po | 2204 ++++++++++------ modoboa/locale/pt_BR/LC_MESSAGES/django.po | 2188 ++++++++++------ modoboa/locale/pt_PT/LC_MESSAGES/django.po | 2094 +++++++++------ modoboa/locale/ro_RO/LC_MESSAGES/django.po | 2283 +++++++++------- modoboa/locale/ru/LC_MESSAGES/django.po | 2047 +++++++++------ modoboa/locale/si/LC_MESSAGES/django.po | 1815 +++++++------ modoboa/locale/sk_SK/LC_MESSAGES/django.po | 1821 +++++++------ modoboa/locale/sl_SI/LC_MESSAGES/django.po | 1824 +++++++------ modoboa/locale/sv/LC_MESSAGES/django.po | 1954 ++++++++------ modoboa/locale/tr/LC_MESSAGES/django.po | 1987 ++++++++------ modoboa/locale/tr_TR/LC_MESSAGES/django.po | 1865 +++++++------ modoboa/locale/uk/LC_MESSAGES/django.po | 1820 +++++++------ modoboa/locale/zh_CN/LC_MESSAGES/django.po | 1818 +++++++------ modoboa/locale/zh_TW/LC_MESSAGES/django.po | 1950 ++++++++------ modoboa/postfix_autoreply/__init__.py | 15 + modoboa/postfix_autoreply/api/__init__.py | 0 modoboa/postfix_autoreply/api/v2/__init__.py | 0 .../postfix_autoreply/api/v2/serializers.py | 40 + modoboa/postfix_autoreply/api/v2/tests.py | 169 ++ modoboa/postfix_autoreply/api/v2/urls.py | 12 + modoboa/postfix_autoreply/api/v2/viewsets.py | 89 + modoboa/postfix_autoreply/apps.py | 24 + modoboa/postfix_autoreply/factories.py | 23 + modoboa/postfix_autoreply/forms.py | 163 ++ modoboa/postfix_autoreply/handlers.py | 147 ++ modoboa/postfix_autoreply/known_problems.py | 33 + .../postfix_autoreply/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/autoreply.py | 206 ++ .../migrations/0001_initial.py | 134 + .../migrations/0002_auto_20150728_1236.py | 20 + .../migrations/0003_move_aliases.py | 37 + .../migrations/0004_delete_alias.py | 17 + .../migrations/0005_auto_20151202_1623.py | 36 + .../migrations/0006_auto_20160329_1501.py | 19 + .../migrations/0007_auto_20180928_1423.py | 31 + .../migrations/0008_delete_transport.py | 18 + .../migrations/0009_auto_20220926_0913.py | 27 + .../migrations/0010_auto_20230421_1825.py | 27 + .../postfix_autoreply/migrations/__init__.py | 0 modoboa/postfix_autoreply/models.py | 44 + .../modoboa_postfix_autoreply/autoreply.html | 12 + modoboa/postfix_autoreply/tests.py | 453 ++++ modoboa/postfix_autoreply/views.py | 41 + modoboa/urls_api_v2.py | 1 + test_project/test_project/settings.py | 1 + 70 files changed, 37465 insertions(+), 23570 deletions(-) create mode 100644 frontend/src/components/account/APISetupForm.vue create mode 100644 frontend/src/components/account/AutoReplyForm.vue create mode 100644 frontend/src/views/account/SettingsView.vue create mode 100644 modoboa/postfix_autoreply/__init__.py create mode 100644 modoboa/postfix_autoreply/api/__init__.py create mode 100644 modoboa/postfix_autoreply/api/v2/__init__.py create mode 100644 modoboa/postfix_autoreply/api/v2/serializers.py create mode 100644 modoboa/postfix_autoreply/api/v2/tests.py create mode 100644 modoboa/postfix_autoreply/api/v2/urls.py create mode 100644 modoboa/postfix_autoreply/api/v2/viewsets.py create mode 100644 modoboa/postfix_autoreply/apps.py create mode 100644 modoboa/postfix_autoreply/factories.py create mode 100644 modoboa/postfix_autoreply/forms.py create mode 100644 modoboa/postfix_autoreply/handlers.py create mode 100644 modoboa/postfix_autoreply/known_problems.py create mode 100644 modoboa/postfix_autoreply/management/__init__.py create mode 100644 modoboa/postfix_autoreply/management/commands/__init__.py create mode 100644 modoboa/postfix_autoreply/management/commands/autoreply.py create mode 100644 modoboa/postfix_autoreply/migrations/0001_initial.py create mode 100644 modoboa/postfix_autoreply/migrations/0002_auto_20150728_1236.py create mode 100644 modoboa/postfix_autoreply/migrations/0003_move_aliases.py create mode 100644 modoboa/postfix_autoreply/migrations/0004_delete_alias.py create mode 100644 modoboa/postfix_autoreply/migrations/0005_auto_20151202_1623.py create mode 100644 modoboa/postfix_autoreply/migrations/0006_auto_20160329_1501.py create mode 100644 modoboa/postfix_autoreply/migrations/0007_auto_20180928_1423.py create mode 100644 modoboa/postfix_autoreply/migrations/0008_delete_transport.py create mode 100644 modoboa/postfix_autoreply/migrations/0009_auto_20220926_0913.py create mode 100644 modoboa/postfix_autoreply/migrations/0010_auto_20230421_1825.py create mode 100644 modoboa/postfix_autoreply/migrations/__init__.py create mode 100644 modoboa/postfix_autoreply/models.py create mode 100644 modoboa/postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html create mode 100644 modoboa/postfix_autoreply/tests.py create mode 100644 modoboa/postfix_autoreply/views.py 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:
  • domain; name; quota; default mailbox quota; enabled
  • domainalias; name; targeted domain; enabled
  • relaydomain; name; target host; target port; service; enabled; verify recipients

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

You can use a different character as separator.

" -msgstr "Nahrajte CSV soubor, který bude mít jednotlivé řádky v některém z uvedených formátů:
  • doména; název; kvóta, výchotí_kvóta schránky; povoleno
  • doménový_alias; název; cílová_doména; povoleno
  • relay_doména; název; cílový_host; cílový_port; služba; povoleno; ověřit_příjemce

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:
    " +"
  • domain; name; quota; default mailbox quota; enabled
  • " +"
  • domainalias; name; targeted domain; enabled
  • " +"
  • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

" +msgstr "" +"Nahrajte CSV soubor, který bude mít jednotlivé řádky v některém z uvedených " +"formátů:
  • doména; název; kvóta, výchotí_kvóta schránky; " +"povoleno
  • doménový_alias; název; cílová_doména; " +"povoleno
  • relay_doména; název; cílový_host; cílový_port; " +"služba; povoleno; ověřit_příjemce

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:
  • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
  • alias; address; enabled; recipient; recipient; ...

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

You can use a different character as separator.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:
    " +"
  • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
  • alias; address; enabled; " +"recipient; recipient; ...

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

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

" msgstr "" "Nahrajte CSV soubor, který bude mít jednotlivé řádky v některém z uvedených formátů:\n" "
  • uživatelské_konto; přihlašovací_jméno; heslo; křestní_jméno; příjmení; povoleno; skupina; adresa; kvóta; [, doména, ...]
  • alias; adresa; povoleno; příjemce; příjemce; ...
    • 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.

      " @@ -1399,7 +1533,8 @@ msgstr "Aktualizováno" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Tato IP neodpovídá žádnému z platných MX-ů zadefinovaných v možnostech" +msgstr "" +"Tato IP neodpovídá žádnému z platných MX-ů zadefinovaných v možnostech" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1407,12 +1542,22 @@ msgstr "Pro tuto doménu nebyl nalezen žádný MX záznam." #: 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 zjistilo, že doména %(domain)s je uvedena v seznamu u následujících poskytovatelů DNSBL:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa zjistilo, že doména %(domain)s je uvedena v seznamu u následujících " +"poskytovatelů DNSBL:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -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 "Reputace domény bude ovlivněna, a je možné, že e-maily přicházející z ní jsou považovány za spam. Měli byste kontaktovat tyto poskytovatele a požádat je o odstranění IP adresy (adres) ze seznamu." +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 "" +"Reputace domény bude ovlivněna, a je možné, že e-maily přicházející z ní " +"jsou považovány za spam. Měli byste kontaktovat tyto poskytovatele a požádat" +" je o odstranění IP adresy (adres) ze seznamu." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format @@ -1423,92 +1568,98 @@ msgstr "Modoboa zjistilo, že doména %(domain)s nemá platný MX záznam:" msgid "Search" msgstr "Hledat" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "Aktivovaný" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "Aktivovaná" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Seznam domén" -#: 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 "Seznam kvót" -#: 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 "Import" -#: 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 "Export" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Seznam identit" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Zobrazit seznam identit domény" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "doménový alias" -#: 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 "Upravit {}" -#: 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 "Smazat %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Žádný MX záznam pro %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 "Neplatný formát IP adresy pro %(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 "Žádný MX záznam pro %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Alias s tímto názvem již existuje" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Vytvořit" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nový alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias vytvořen" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias upraven" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias smazán" @@ -1520,11 +1671,11 @@ msgstr[3] "Aliasy smazány" msgid "MX records of {}" msgstr "MX záznamy pro {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL přehled pro {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Doména smazána" @@ -1532,20 +1683,20 @@ msgstr[1] "Domény smazány" msgstr[2] "Domén smazáno" msgstr[3] "Domén smazáno" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Exportovat identity" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exportovat domény" -#: 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 "Neplatný požadavek" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Účet smazán" @@ -1553,7 +1704,7 @@ msgstr[1] "Účty smazány" msgstr[2] "Účtů smazáno" msgstr[3] "Účtů smazáno" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importovat domény" @@ -1561,87 +1712,74 @@ msgstr "Importovat domény" msgid "Import identities" msgstr "Importovat identity" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Přeposílání aktualizováno" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "MX records of {}" msgid "Invalid PIN code" msgstr "MX záznamy pro {}" -#: 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 "Lokální" - -#: 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 "Uživatelský profil" - -#: 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 "Neplatná syntaxe" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Neplatný počet cyklů" - -#: 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 "Původní heslo" -#: 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 "Lokální" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Uživatelský profil" + +#: 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 "Neplatná syntaxe" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Neplatný počet cyklů" + +#: 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 "Uživatel '%s' se úspěšně přihlásil" -#: 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 "Chyba v typu hesla. Aktualizace %s hesla" @@ -1651,452 +1789,501 @@ msgstr "Chyba v typu hesla. Aktualizace %s hesla" 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 "Ověření" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Typ ověření" -#: 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 "Rozhraní pro ověřování přístupu" -#: 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 "Výchozí schéma hesel" -#: 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 "Použité schéma pro šifrování hesel schránek" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Počet cyklů" -#: 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 "Počet cyklů (použije se pouze u sha256crypt a sha512crypt). Hodnota musí být mezi 1000 a 999999999 včetně." +#: 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 "" +"Počet cyklů (použije se pouze u sha256crypt a sha512crypt). Hodnota musí být" +" mezi 1000 a 999999999 včetně." -#: 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 "Zadejte nové heslo pro užití nového typu hesla" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Výchozí heslo" -#: 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 "Výchozí heslo pro automaticky vytvořené účty." -#: 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 "Délka náhodného hesla" -#: 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 "Počet znaků náhodně vygenerovaných hesel." -#: 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 "Nastavení 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 "Adresa serveru" -#: 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 "IP adresa DNS jména LDAP serveru" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Port serveru" -#: 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 "Port TCP, který používá LDAP server" -#: 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 "Použít zabezpečené připojení" -#: 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 "Použít SSL/STARTTLS připojení pro přístup k LDAP serveru" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "Volba určující, jestli je nebo není LDAP server serverem Active Directory" +msgstr "" +"Volba určující, jestli je nebo není LDAP server serverem Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Správcovské skupiny" -#: 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 "Členové těchto LDAP Posix skupin budou automaticky vytvořeni jako správci domény. Pro oddělení skupin použijte ';'." +#: 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 "" +"Členové těchto LDAP Posix skupin budou automaticky vytvořeni jako správci " +"domény. Pro oddělení skupin použijte ';'." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Typ skupiny" -#: 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 "Typ LDAP skupiny " -#: 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 "Základna struktury skupin" -#: 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 "Rozlišovací jméno základny struktury používané pro hledání skupin" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atribut hesla" -#: 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 "Atribut používaný pro ukládání hesel uživatelů" -#: 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 "Metoda ověření" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Vyhledat a spojit" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Přímé spojení" -#: 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 "Zvolte si metodu ověření, která se použije" -#: 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 "Spojení pomocí 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 "Rozlišovací jméno, které se použije při spojování s LDAP serverem. Ponechejte prázdné pro anonymní spojení." +#: 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 "" +"Rozlišovací jméno, které se použije při spojování s LDAP serverem. " +"Ponechejte prázdné pro anonymní spojení." -#: 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 "Heslo spojení" -#: 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 "Heslo, které se použije při spojování s LDAP serverem (při výběru DN spojení)." +msgstr "" +"Heslo, které se použije při spojování s LDAP serverem (při výběru DN " +"spojení)." -#: 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 "Základna struktury uživatelů" -#: 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 "Rozlišovací jméno základny struktury používané pro hledání uživatelů" -#: 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 "Vyhledávací filtr" -#: 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 "Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je nezbytné jen uzavřít do závorek." +#: 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 "" +"Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je " +"nezbytné jen uzavřít do závorek." -#: 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 "Šablona uživatelského 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 "Šablona použitá pro tvorbu uživatelského rozlišovacího jména (DN). Měla by obsahovat jeden zástupný řetězec (tj. %(user)s)." +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Šablona použitá pro tvorbu uživatelského rozlišovacího jména (DN). Měla by " +"obsahovat jeden zástupný řetězec (tj. %(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 "Plocha" -#: 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 "Vlastní RSS zdroj" -#: 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 "Zobrazit vlastní RSS zdroj distributorům a správcům domény" -#: 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 "Skrýt widget funkcí" -#: 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 "Skrýt widget funkcí pro distributory a správce domény" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Oznámení" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Adresy odesílatele" -#: 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 "Emailová adresa používaná k zasílání upozornění" -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Veřejné API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Povolit komunikaci" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Povolit komunikaci s veřejným Modoboa API rozhraním" -#: 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 "Zkontrolovat verzi" -#: 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 "Automaticky kontrolovat dostupnost nové verze" -#: 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 "Odoslat statistiky" -#: 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 "Zasílat statistické údaje na veřejné Modoboa API rozhraní (počítadla a použité rozšíření)" +msgstr "" +"Zasílat statistické údaje na veřejné Modoboa API rozhraní (počítadla a " +"použité rozšíření)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Různé" -#: 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 "Počet dnů pro neaktivní účet" -#: 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 "Počet dnů pro neaktivní účet" -#: 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 "Účet s datem posledního přihlášení starším než práh (ve dnech) bude považován za neaktivní" +#: 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 "" +"Účet s datem posledního přihlášení starším než práh (ve dnech) bude " +"považován za neaktivní" -#: 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 "Interval aktualizací upozornění" -#: 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 "Interval mezi aktualizacemi upozornění na stránce (v sekundách)" -#: 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 "Maximální stáří záznamu" -#: 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 "Maximální stáří záznamu ve dnech" -#: 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 "Položek na stránce" -#: 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 "Počet zobrazených položek na stránce" -#: 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 "Výchozí přesměrování aplikace" -#: 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 "Výchozí přesměrování, které se použije, pokud není žádná aplikace specifikována" +msgstr "" +"Výchozí přesměrování, které se použije, pokud není žádná aplikace " +"specifikována" -#: 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 "Hodnota USE_TZ je Vypnutá, toto může způsobit problémy při přechodu mezi letním a zimním časem (např. stejný čas dvakrát během změny času)." +#: 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 "" +"Hodnota USE_TZ je Vypnutá, toto může způsobit problémy při přechodu mezi " +"letním a zimním časem (např. stejný čas dvakrát během změny času)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Nastavte `USE_TZ = True` v settings.py" @@ -2128,31 +2315,31 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Původní heslo" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nové heslo" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Původní heslo se neshoduje" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Hesla se neshodují" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Povolit API přístup" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "" @@ -2169,20 +2356,20 @@ msgstr "upraveno" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s uživatelem %(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 pomocí " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "smazáno" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "uživatel {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "příkaz managementu" @@ -2190,65 +2377,65 @@ msgstr "příkaz managementu" msgid "You can't delete your own account" msgstr "Nemůžete smazat vlastní účet" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "K dispozici je jedna, nebo více, aktualizací" -#: 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 "Povolit přístup do poštovních schránek" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Povolit správci přístup do uživatelských poštovních schránek" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "heslo" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "jazyk" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Preferovaný jazyk pro zobrazení stránek" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "Alternativní e-mailová adresa, může být použita pro účely obnovy." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Nebylo možné změnit heslo: LDAP modul není instalován" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "účet" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Neznámý" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Nemůžete importvat účet s vyšším oprávněním, než máte vy sám" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Běžný uživatel '%s' musí mít nastavenou platnou emailovou adresu" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "pole uživatelského jména a emailu se nesmí pro '%s' lišit" -#: 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] "Heslo musí obsahovat alespoň {} číslo." @@ -2256,7 +2443,7 @@ msgstr[1] "Heslo musí obsahovat alespoň {} číslice." msgstr[2] "Heslo musí obsahovat alespoň {} číslic." msgstr[3] "Heslo musí obsahovat alespoň {} číslic." -#: 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] "Heslo musí obsahovat alespoň {} malé písmeno." @@ -2264,7 +2451,7 @@ msgstr[1] "Heslo musí obsahovat alespoň {} malé písmena." msgstr[2] "Heslo musí obsahovat alespoň {} malých písmen." msgstr[3] "Heslo musí obsahovat alespoň {} malých písmen." -#: 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] "Heslo musí obsahovat alespoň {} velké písmeno." @@ -2272,7 +2459,7 @@ msgstr[1] "Heslo musí obsahovat alespoň {} velká písmena." msgstr[2] "Heslo musí obsahovat alespoň {} velkých písmen." msgstr[3] "Heslo musí obsahovat alespoň {} velkých písmen." -#: 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] "Heslo musí obsahovat alespoň {} speciální znak." @@ -2280,55 +2467,57 @@ msgstr[1] "Heslo musí obsahovat alespoň {} speciální znaky." msgstr[2] "Heslo musí obsahovat alespoň {} speciálních znaků." msgstr[3] "Heslo musí obsahovat alespoň {} speciálních znaků." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Vaše heslo musí obsahovat kombinaci malých a velkých písmen, číslic a speciálních znaků." +msgstr "" +"Vaše heslo musí obsahovat kombinaci malých a velkých písmen, číslic a " +"speciálních znaků." -#: 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" @@ -2355,8 +2544,12 @@ msgid "Latest news" msgstr "Poslední zprávy" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Pro více informací navštivte oficiální blog ." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Pro více informací navštivte oficiální blog ." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2368,8 +2561,12 @@ msgstr "Ovládat svůj přístup k Modoboa API rozhraní" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Dokumentace k API je dostupná zde." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Dokumentace k API je dostupná zde." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2380,7 +2577,7 @@ msgstr "API přístupový token" msgid "Hello %(user)s." msgstr "Ahoj %(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 "Informace" @@ -2394,7 +2591,9 @@ msgstr "K dispozici je jedna, nebo více, aktualizací!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Zkontrolujte následující seznam pro nalezení komponentu(ů), které mohou být aktualizovány." +msgstr "" +"Zkontrolujte následující seznam pro nalezení komponentu(ů), které mohou být " +"aktualizovány." #: core/templates/core/information.html:10 msgid "Applications" @@ -2412,7 +2611,7 @@ msgstr "Poslední verze" msgid "Active users" msgstr "Aktivní uživatelé" -#: 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 "Záznamy" @@ -2440,7 +2639,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 "Parametry" @@ -2457,12 +2656,12 @@ msgstr "Uložit" msgid "Modoboa settings" msgstr "Nastavení 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 "Nastavení" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Možnosti" @@ -2482,7 +2681,7 @@ msgstr "Aktualizovat osobní informace" 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 #, fuzzy #| msgid "Security options" msgid "Security" @@ -2495,7 +2694,9 @@ msgid "Two-Factor authentication" msgstr "Rozhraní pro ověřování přístupu" #: 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 @@ -2507,18 +2708,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" @@ -2526,12 +2736,18 @@ msgstr "" msgid "Disable 2FA" msgstr "Zákázáno" +#: 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 @@ -2550,69 +2766,76 @@ msgstr "Nenalezeny žádné DNS záznamy pro %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 "Zašifrovat hesla" + #: 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 "Odhlásit se" -#: 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 "Hlavní část Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parametry uloženy" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Vaše uživatelské jméno nebo heslo se neshodují. Zkuste to prosím znovu." +msgstr "" +"Vaše uživatelské jméno nebo heslo se neshodují. Zkuste to prosím znovu." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Uživatel '{}' byl úspěšně odhlášen" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil aktualizován" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Možnosti uloženy" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Přístup aktualizován" -#: 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 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "DMARC nástroje" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Zobrazit DMARC zprávu pro {}" -#: 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 "" @@ -2648,11 +2871,11 @@ msgstr "Dočasná chyba" msgid "Permanent error" msgstr "Permanentní chyba" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Politika" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Selhání bez odmítnutí" @@ -2728,95 +2951,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Neznáme zdroje / Hrozby" -#: 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 "" @@ -2845,7 +3068,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 @@ -2861,7 +3086,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2869,151 +3094,159 @@ 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 "Přístup aktualizován" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "IMAP migrace" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "IMAP migrace" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "Nastavení OfflineIMAP" -#: 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 "Souběžné synchronizační úkoly" -#: 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 "Maximální počet souběžných synchronizačních úkolů" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "Nastavení OfflineIMAP" -#: 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 "Nastavení OfflineIMAP" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "Nastavení OfflineIMAP" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "IMAP migrace" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Spojení se serverem IMAP selhalo: %s" -#: 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 "IMAP migrace" -#: 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 "Povolit komunikaci s veřejným Modoboa API rozhraním" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Připojení k databázi %s není nastaveno" -#: 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 "Nelze určit kódování textu." -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Přístup zamítnut: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Přístup zamítnut" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Vložte platné doménové jméno" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Vložte platnou emailovou adresu." @@ -3023,163 +3256,195 @@ msgstr "Vložte platnou emailovou adresu." msgid "Submit" msgstr "Uložit" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Nebylo možné změnit heslo: {}" -#: 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 "Předmět" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 #, fuzzy #| msgid "Default limits" msgid "Default per-admin limits" msgstr "Výchozí omezení" -#: 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 "Správci domén" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: limits/app_settings.py:29 limits/app_settings.py:163 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet správců domény (nastavení nového správce)" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: limits/app_settings.py:39 limits/app_settings.py:175 #, fuzzy #| msgid "Maximum number of allowed domains for a new administrator" -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet domén (nastavení nového správce)" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: limits/app_settings.py:48 limits/app_settings.py:186 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet doménových aliasů (nastavení nového správce)" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: limits/app_settings.py:58 limits/app_settings.py:198 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet schránek (nastavení nového správce)" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: limits/app_settings.py:67 limits/app_settings.py:210 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet aliasů (nastavení nového správce)" -#: 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 #, fuzzy #| msgid "Default limits" msgid "Default per-domain limits" msgstr "Výchozí omezení" -#: 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 +#: limits/app_settings.py:94 limits/app_settings.py:248 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet správců domény (nastavení nového správce)" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: limits/app_settings.py:104 limits/app_settings.py:260 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet doménových aliasů (nastavení nového správce)" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: limits/app_settings.py:114 limits/app_settings.py:272 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximální povolený počet schránek (nastavení nového správce)" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: limits/app_settings.py:123 limits/app_settings.py:283 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" msgstr "Maximální povolený počet aliasů (nastavení nového správce)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Omezení" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Maximální povolený počet domén, které může tento uživatel vytvořit" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "Maximální povolený počet doménových aliasů, které může tento uživatel vytvořit" +msgstr "" +"Maximální povolený počet doménových aliasů, které může tento uživatel " +"vytvořit" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Maximální povolený počet schránek, které může tento uživatel vytvořit" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Maximální povolený počet aliasů chránek, které může tento uživatel vytvořit" +msgstr "" +"Maximální povolený počet aliasů chránek, které může tento uživatel vytvořit" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Maximální povolený počet správců domény, které může tento uživatel vytvořit" +msgstr "" +"Maximální povolený počet správců domény, které může tento uživatel vytvořit" -#: 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 #, fuzzy #| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." -msgstr "Maximální povolený počet doménových aliasů, které může tento uživatel vytvořit" +msgstr "" +"Maximální povolený počet doménových aliasů, které může tento uživatel " +"vytvořit" -#: limits/constants.py:46 +#: limits/constants.py:85 #, fuzzy #| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." msgstr "Maximální povolený počet schránek, které může tento uživatel vytvořit" -#: limits/constants.py:50 +#: limits/constants.py:93 #, fuzzy #| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Maximální povolený počet aliasů chránek, které může tento uživatel vytvořit" +msgstr "" +"Maximální povolený počet aliasů chránek, které může tento uživatel vytvořit" -#: limits/constants.py:55 +#: limits/constants.py:102 #, fuzzy #| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." -msgstr "Maximální povolený počet správců domény, které může tento uživatel vytvořit" +msgstr "" +"Maximální povolený počet správců domény, které může tento uživatel vytvořit" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Neplatné omezení" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Zdroje" @@ -3192,11 +3457,11 @@ msgstr "%s: limit byl dosažen" msgid "Not enough resources" msgstr "Nedostatek zdrojů" -#: 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 "Nemáte oprávnění nastavovat neomezené hodnoty" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "neomezeno" @@ -3205,99 +3470,100 @@ msgstr "neomezeno" msgid "Resources usage" msgstr "Využití zdrojů" -#: 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 "Cesta k souboru záznamů" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" -msgstr "Cesta k souboru záznamů, který se používá pro sběr statistických informací" +msgstr "" +"Cesta k souboru záznamů, který se používá pro sběr statistických informací" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Adresář pro RRD soubory" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Cesta k adresáři, ve kterém budou ukládány RRD soubory" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" msgid "Show greylisted messages" msgstr "odmítnuté zprávy" -#: 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 "Statistiky" -#: 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 "Průměrný provoz (zprávy/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "odeslané zprávy" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "přijaté zprávy" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "nedoručené zprávy" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "odmítnuté zprávy" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "odeslané zprávy" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "odeslané zprávy" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "odmítnuté zprávy" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Průměrná velikost provozu (bajtů/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "doručená velikost" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "odeslaná velikost" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Provoz emailů" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3325,183 +3591,193 @@ msgstr "Uložit" msgid "No statistics available" msgstr "Žádné statistiky nejsou dostupné" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Den" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Týden" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Měsíc" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Rok" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Vlastní" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Nastaveno neznámé zobrazení" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Nastaveno neznámé zobrazení" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Neplatně nastavený vlastní časový interval" -#: 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 "Informace osobního účtu" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Složka nenalezena." -#: 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 "Pro tohoto uživatele není k dispozici žáden dokument" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "PDF přístupové údaje" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." msgstr "Vytvářet dokumenty pouze při vytváření účtu" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Úložný prostor pro dokumenty" -#: 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 "Adresář pro uložení dokumentů" -#: 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 "Cesta k adresáři kde budou uloženy PDF dokumenty" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Možnosti zabezpečení" -#: 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 "Smazat dokumenty po prvním stažení" -#: 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 "Automaticky smazat dokument ihned po prvním stažení cez toto rozhraní" -#: 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 "Vytvářet dokumenty pouze při vytváření účtu" -#: 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." -msgstr "Vytvářet nové dokumenty pouze při vytvoření účtu. Je-li nastaveno na hodnotu ne, bude nový dokument vytvořen pokaždé, když dojde ke změne hesla." +#: 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 "" +"Vytvářet nové dokumenty pouze při vytvoření účtu. Je-li nastaveno na hodnotu" +" ne, bude nový dokument vytvořen pokaždé, když dojde ke změne hesla." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Možnosti vlastních úprav" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Název" -#: 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 "Název dokumentu" -#: 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 "URL web panelu" -#: 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 "URL adresa Modoboa web panelu" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Vlastní zpráva" -#: 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 "Vlastní zpráva, která se zobrazí na konci dokumentu." -#: 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 "Zahrnout nastavení mailového klienta" -#: 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" -msgstr "Zahrnout vyžadovaná nastavení SMTP a IMAP připojení pri konfiguraci mailového klienta, tabletu či telefonu" +#: 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 "" +"Zahrnout vyžadovaná nastavení SMTP a IMAP připojení pri konfiguraci " +"mailového klienta, tabletu či telefonu" -#: 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 "Adresa SMTP serveru" -#: 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 "Adresa SMTP serveru (hostname nebo IP)" -#: 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 "Port SMTP serveru" -#: 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 "Port SMTP serveru" -#: 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 "Zabezpečení SMTP připojení" -#: 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 "Zabezpečení připojení" -#: 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 "Adresa IMAP serveru" -#: 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 "Adresa IMAP serveru (hostname nebo IP)" -#: 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 "Port IMAP serveru" -#: 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 "Port IMAP serveru" -#: 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 "Zabezpečení IMAP připojení" @@ -3509,17 +3785,17 @@ msgstr "Zabezpečení IMAP připojení" msgid "PDF credentials" msgstr "PDF přístupové údaje" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "PDF přístupové údaje" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Běží na Modoboa - Poštovní hosting zjednodušeně" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3532,11 +3808,11 @@ msgstr "" "pro pripojení do rozhraní Modoboa. Zapamatujte si je a smazte\n" "tento dokument hned, jakmile to bude možné.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Webový panel:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3545,31 +3821,38 @@ msgstr "" "\n" "Zde si kdykoliv můžete prohlédnout své emaily, vytvořit filtry nebo spravovat Vaše kontakty.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Prosím změňte si své heslo!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "Nastavení PC/Tabletu/Smartphonu:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "Použijte tato nastavení ve svém počítači, tabletu či telefonu." -#: 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 "Získat přístupové údaje uživatele ako PDF dokument" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "PDF přístupové údaje" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "Vytváření adresáře pro uložení PDF dokumentů (%s) selhalo " @@ -3578,33 +3861,193 @@ msgstr "Vytváření adresáře pro uložení PDF dokumentů (%s) selhalo " msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "Vytváření adresáře pro uložení PDF dokumentů (%s) selhalo " -#: 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: limit byl dosažen" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: limit byl dosažen" + +#: 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 "Zvolené datum je v minulosti" + +#: 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 "Musí být větší než datum začátku" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Automatické odpovědi" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Aktivovat automatickou odpověď od uvedeného data. Formát: YYYY-MM-DD " +"HH:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Do" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Aktivovat automatickou odpověď až do uvedeného data. Formát: YYYY-MM-DD " +"HH:mm:ss" + +#: 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 "" +"Obsah Vaší odpovědi. Můžete použít následující proměnné, které budou " +"automaticky nahrazeny příslušnou hodnotou: %(name)s, %(fromdate)s, " +"%(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Interval automatické odpovědi" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Interval v sekundách mezi dvěmi automatickými odpověďmi stejnému příjemci" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Výchozí předmět" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Jsem nedostupný" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" +"Výchozí předmět, který se použije u nově vytvořených automatických odpovědí" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Výchozí obsah" + +#: 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 "" +"V současné době nejsem dostupný. Odpovím Vám ihned, jakmile se vrátím zpět.\n" +"\n" +"S pozdravem,\n" +"%(name)s\n" + +#: 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 "" +"Výchozí obsah, který se použije u nově vytvořených automatických odpovědí. " +"Token '%(name)s' bude automaticky nahrazen celým jménem uživatele." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Automatická odpověď" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Automatická odpověď" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "předmět" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Předmět, který se vloží do odesílaných emailů" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "obsah" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Obsah, který se vloží do odesílaných emailů" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Aktivovat/Deaktivovat automatickou odpověď" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "Vložte zprávu, která se během vaší nepřítomnosti automaticky odešle" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Automatická odpověď byla aktualizována." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 #, fuzzy #| msgid "Relay domains" msgid "Transport settings" msgstr "Relay domény" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 #, fuzzy #| msgid "target host" msgid "target host address" msgstr "cílový server" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 #, fuzzy #| msgid "target host" msgid "target host port" msgstr "cílový server" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "ověřit příjemce" @@ -3674,16 +4117,23 @@ msgstr "Zapomenuté heslo?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Vaše heslo bylo nastaveno. Nyní se můžete přihlásit." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Vaše heslo bylo nastaveno. Nyní se můžete přihlásit." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Změnit heslo" #: 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 "Odkaz pro resetování hesla je neplatný, nejspíše proto, že byl již použit. Prosím, vyžádejte si nový odkaz." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Odkaz pro resetování hesla je neplatný, nejspíše proto, že byl již použit. " +"Prosím, vyžádejte si nový odkaz." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3694,19 +4144,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 "

      Zaslali jsme vám instrukce pro nastavení Vašeho hesla, pokud účet se zadaným emailem existuje. Měl by brzy dorazit.

      Pokud žádný email nedorazil, zkontrolujte prosím, že jste správně zadali Vaši primární emailovou adresu a zkontrolujte složku Spam." +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 "" +"

      Zaslali jsme vám instrukce pro nastavení Vašeho hesla, pokud účet se " +"zadaným emailem existuje. Měl by brzy dorazit.

      Pokud žádný email " +"nedorazil, zkontrolujte prosím, že jste správně zadali Vaši primární " +"emailovou adresu a zkontrolujte složku Spam." #: 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 "Klikněte na odkaz níže pro resetování hesla vašeho Modoboa účtu %(username)s:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Klikněte na odkaz níže pro resetování hesla vašeho Modoboa účtu " +"%(username)s:" #: 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 "Pokud odkaz výše nefunguje, prosím zkopírujte URL a vložte do nového okna prohlížeče." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Pokud odkaz výše nefunguje, prosím zkopírujte URL a vložte do nového okna " +"prohlížeče." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3725,22 +4191,21 @@ msgstr "Reset Modoboa hesla" msgid "Invalid value" msgstr "Neplatná hodnota" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "vzor" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "služba" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "následující skok" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: limit byl dosažen" +#~ msgid "An alias with this name already exists." +#~ msgstr "Alias s tímto názvem již existuje" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Sada nástrojů pro zjednodušení integrace DMARC" @@ -3749,7 +4214,6 @@ msgstr "následující skok" #~ msgstr "Vytvářet PDF dokumenty obsahující přístupové údaje uživatele" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "IMAP migrace" @@ -3775,12 +4239,10 @@ msgstr "následující skok" #~ msgstr "Název služby" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote address (hostname or IP) of this domain" #~ msgstr "Vzdálený cíl této domény" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote port of this domain" #~ msgstr "Vzdálený cíl této domény" @@ -3794,15 +4256,10 @@ msgstr "následující skok" #~ msgstr "Prohledat" #, fuzzy -#~| msgid "The domain name" #~ msgid "The relay domain name" #~ msgstr "Doménové jméno" #, fuzzy -#~| msgid "" -#~| "\n" -#~| "

    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" -#~| "
    • relaydomainalias; name; target; enabled
    • \n" #~ msgid "" #~ "\n" #~ "
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po index d890928e1..05d04c83c 100644 --- a/modoboa/locale/de/LC_MESSAGES/django.po +++ b/modoboa/locale/de/LC_MESSAGES/django.po @@ -32,7 +32,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: 2022-02-17 15:08+0000\n" "Last-Translator: Manfred Mueller\n" "Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n" @@ -42,494 +42,592 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 "Von Postfächern gemeinsam genutzte Quota/Speicherplatz. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu verwenden." +#: 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 "" +"Von Postfächern gemeinsam genutzte Quota/Speicherplatz. Kann in KB, MB " +"(Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu " +"verwenden." -#: 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 "Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet unlimitiertes Kontingent." +msgstr "" +"Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet" +" unlimitiertes Kontingent." -#: 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 "Kein autorisierter MX-Eintrag für diese Domain gefunden." -#: 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 "Kann nicht größer als Domain Kontingent sein" -#: 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 "Zugriff verweigert." -#: 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 "Dieses Feld ist erforderlich" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." -#: 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 "Nicht erlaubt für diese Rolle." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Muss mit mailbox full_address übereinstimmen" -#: 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 "Dieses Feld ist erforderlich" -#: 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 "Lokale Domain {} existiert nicht." -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Eine Liste der Empfänger" -#: 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 "Benutzer %s existiert bereits" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Sie haben keinen Zugriff auf diese Domain." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Sie haben keinen Zugriff auf diese Mailbox." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Hier ist Ihr neues Modoboa Passwort: {}" -#: 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 "Benutzer %s existiert bereits" -#: 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 "Muss eine positive Ganzzahl sein" -#: 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 "Verzeichnis nicht gefunden." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Verzeichnis nicht gefunden." -#: 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 nicht gefunden, bitte sicherstellen, dass es installiert ist" -#: 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 "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein" -#: 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 "Ein Postfach ist erforderlich" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Unbekannt" -#: 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 "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" -#: 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 "Sie können Ihre eigene Domain nicht löschen" -#: 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 "Domains" -#: 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 "Aktiviere MX Prüfungen" -#: 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 "Überprüfe jede Domain auf einen gültigen MX Eintrag" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Gültige MX-Einträge" -#: 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 "Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht wird, andere Einträge zu verwenden." +#: 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 "" +"Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht " +"wird, andere Einträge zu verwenden." -#: 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 "gültige MX-Einträge für neue Domains erforderlich" -#: 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 "Verwendung gültiger MX-Einträge wird für neue Domains erzwungen." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Aktiviere SPF-Prüfungen" + +#: 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 "Aktiviere SPF-Prüfungen" -#: 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 "Überprüfe jede Domain auf einen gültigen SPF Eintrag" -#: 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 "Aktiviere DKIM-Prüfungen" -#: 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 "Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS Eintrag" +msgstr "" +"Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS" +" Eintrag" -#: 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 "Aktiviere DMARC-Prüfungen" -#: 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 "Überprüfe jede Domain auf einen gültigen DMARC Eintrag" -#: 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 "Aktiviere autoconfig-Prüfungen" -#: 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 "Überprüfe jede Domain auf einen gültigen autoconfiguration Eintrag" -#: 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 "Aktiviere DNSBL-Prüfungen" -#: 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 "Prüfe jede Domain gegen die wichtigsten DNSBL-Anbieter" -#: 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 "Benutzerdefinierter 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 "eigener DNS-Server umgeht die lokale Namensauflösung" -#: 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 "Verzeichnis für DKIM-Keys" -#: 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 "Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das Verzeichnis sollte nur dem root-User zugänglich sein." +#: 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 "" +"Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das " +"Verzeichnis sollte nur dem root-User zugänglich sein." -#: 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 "voreingestellte DKIM Schlüssellänge" -#: 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 "Voreingestellte Länge in Bits neu zu generierender DKIM-Keys." -#: 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 "Standard-Domainquota" -#: 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 "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine 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 "" +"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " +"Der Wert 0 bedeutet „Keine Quota“" -#: 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 "Standard-Domainquota" -#: 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 "Postfächer" -#: 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 "Postfächer im Dateisystem verwalten" -#: 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 "Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa umbenannt oder entfernt werden" +#: 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 "" +"Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa" +" umbenannt oder entfernt werden" -#: 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 "Standard Postfach Kontingent" -#: 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." -msgstr "Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine 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 "" +"Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe." +" Der Wert 0 bedeutet „Keine Quota“" -#: 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 "Standard Postfach Kontingent" -#: 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 "Automatische Konto-Entfernung" -#: 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 "Beim Löschen des Postfachs auch das Konto entfernen." -#: 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 "Automatische Domain- /Postfach-Erstellung" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt wurde." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt " +"wurde." -#: admin/app_settings.py: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 "Erzeuge Alias, wenn Mailbox umbenannt wird." -#: 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 "Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." +msgstr "" +"Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." -#: admin/app_settings.py:407 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine Quota“" +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "" +"Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe." +" Der Wert 0 bedeutet „Keine Quota“" -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Verwaltung" -#: 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 "Domain" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Relay-Domain" -#: 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 "Schließen" -#: 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 "Benutzername" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." -msgstr "Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' oder Administratoren mit einer Mailbox sein." +#: 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 "" +"Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' " +"oder Administratoren mit einer Mailbox sein." -#: 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 "Rolle" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Auswählen" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Rechte, die der Benutzer haben wird" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Zufälliges Passwort" -#: 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 "Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und diese Checkbox aktivierst, wird ein neues Passwort generiert" +#: 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 "" +"Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und " +"diese Checkbox aktivierst, wird ein neues Passwort generiert" -#: 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 "Passwort" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Bestätigung" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Passwort bestätigen" -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Aktiviert" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Nur Super-Administratoren dürfen diesen Modus benutzen." -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Die angegebenen Passwörter stimmen nicht überein" -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Sie können Ihr eigenes Konto nicht deaktivieren" -#: 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 "Erzeuge Alias mit der bisherigen Adresse" -#: 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 "Quota" -#: 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 "Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-Administratoren)." +#: admin/forms/account.py: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 "" +"Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben " +"werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden " +"lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-" +"Administratoren)." -#: admin/forms/account.py: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(e)" -#: 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(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu erstellen. " +#: admin/forms/account.py: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(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für " +"eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu " +"erstellen. " -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Ab­sen­der­ad­res­sen " -#: 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 "Zusätzliche Absenderadresse(n) für dieses Postfach. Der Benutzer darf diese Adresse(n) verwenden, selbst wenn diese nicht lokal vorhanden sind. Jeweils eine Adresse eingeben, ENTER drücken für weitere." +#: admin/forms/account.py: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 "" +"Zusätzliche Absenderadresse(n) für dieses Postfach. Der Benutzer darf diese " +"Adresse(n) verwenden, selbst wenn diese nicht lokal vorhanden sind. Jeweils " +"eine Adresse eingeben, ENTER drücken für weitere." -#: admin/forms/account.py: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 "Domain existiert nicht" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Lokale Domain existiert nicht" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domain(s)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domain(s), die dieser Benutzer administriert" -#: 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 "Allgemein" -#: 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 "E-Mail" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Berechtigungen" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Konto aktualisiert" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Neues Konto" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Konto erstellt" @@ -542,69 +640,86 @@ msgid "Email address" msgstr "E-Mail Adresse" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen Catchall-Alias anzulegen." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen" +" Catchall-Alias anzulegen." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Empfänger" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein und bestätigen Sie mit ENTER." +#: 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 "" +"Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein" +" und bestätigen Sie mit ENTER." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Keine Empfänger angegeben" -#: 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(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu erhalten." +#: admin/forms/domain.py:38 +msgid "" +"Alias(es) of this domain. Indicate only one name per input, press ENTER to " +"add a new input." +msgstr "" +"Alias(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro " +"Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu " +"erhalten." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "DKIM Selector" -#: admin/forms/domain.py:52 -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu verwenden." +#: admin/forms/domain.py:57 +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB " +"angegeben werden. 0 eingeben, um keine Quota zu verwenden." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "Domain-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 "Ein %s mit diesem Namen existiert bereits" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Verzeichnis für DKIM-Keys nicht konfiguriert." -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Ein unlimitiertes Kontingent ist nicht möglich." -#: 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 "Domain" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Domain-Administrator erstellen" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Automatisch Administrator für diese Domain anlegen" -#: 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 @@ -613,51 +728,55 @@ msgstr "Automatisch Administrator für diese Domain anlegen" msgid "Name" msgstr "Name" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird automatisch angehängt." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird " +"automatisch angehängt." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Zufällig generiertes Passwort für den Administrator verwenden." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Mit einem Postfach" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Erzeuge Postfach für den Administrator." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Aliase erstellen" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Automatisch Standard-Aliase für Domain anlegen" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Ungültiges Format" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domain verändert" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Optionen" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Neue Domain" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domain erstellt." -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Separator" @@ -665,23 +784,23 @@ msgstr "Separator" msgid "Recipient(s)" msgstr "Empfänger" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Geben sie einen oder mehrere, durch ',' separierte Empfänger an" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Lokale Kopien behalten" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Wählen Sie eine Datei" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Bei Fehler fortfahren" @@ -689,7 +808,7 @@ msgstr "Bei Fehler fortfahren" msgid "Don't treat duplicated objects as error" msgstr "Doppelte Objekte nicht als Fehler behandeln" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Passwörter verschlüsseln" @@ -697,93 +816,95 @@ msgstr "Passwörter verschlüsseln" msgid "Check this option if passwords contained in your file are not crypted" msgstr "Auswählen, wenn Kennwörter in Datei nicht verschlüsselt sind" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Postfach {} existiert bereits" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Konto Import fehlgeschlagen (%s): ungültiger Quota-Wert" -#: 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 "Identitäten" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Weiterleiten" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Ein Postfach ist erforderlich" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" -msgstr "Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren." +msgstr "" +"Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren." -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." -msgstr "Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." +msgstr "" +"Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." -#: admin/lib.py: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 "Kein DNS Eintrag für %s gefunden" -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Kein %(type)s Eintrag für %(name)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 "Keine funktionierenden Namensserver gefunden" -#: 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 "DNS Error bei der Auflösung, konnte %s nicht auflösen" -#: 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 "Fehlerhaftes IP-Adressformat für {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Objekt existiert bereits: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d Objekte erfolgreich importiert" -#: 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 "CSV Datei nicht in UTF-8 enkodiert, versuche das Encoding zu erraten" -#: 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 "Lese CSV Datei mit %(encoding)s Enkodierung" -#: 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 "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren" @@ -792,27 +913,27 @@ msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren" 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 "Domain {} hat keinen MX-Eintrag" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Domain {} hat keinen MX-Eintrag" -#: 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 Einträge für {}" -#: 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-Eingrag für Domain {0} ist ungültig: {1}" @@ -821,160 +942,160 @@ msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX Problem(e) für Domain {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL Problem(e) für Domain {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domain nicht gefunden." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Ein Alias mit diesem Namen existiert bereits" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "Adresse" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Die Alias-Adresse" -#: 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 "aktiviert" -#: 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 "Auswählen, um den Alias zu aktivieren" -#: 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 "Beschreibung" -#: 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 "Läuft ab am" -#: 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 "Ungültige Adresse" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Lokaler Empfänger {}@{} nicht gefunden" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Ungültige Zeile: %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 "Name" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Name der Domain" -#: 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 "Auswählen, um diese Domain zu aktivieren" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Aktiviere DNS Prüfungen" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" -msgstr "Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain" +msgstr "" +"Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Aktiviere DKIM Signierung" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese Domain aktiviert." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese " +"Domain aktiviert." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Schlüssel-Länge" -#: 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 "Ungültige Zeile" -#: 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 "Kein autorisierter MX Eintrag für die Domain {} gefunden" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Fehlerhafter Kontingentwert für die Domain '{}'" -#: 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 "Fehlerhafter Standardwert für das Mailboxkontingent der Domain '{}'" -#: 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 "Der Standardkontingentwert einer Mailbox kann nicht größer als der Standardkontingentwert der domain sein" +msgstr "" +"Der Standardkontingentwert einer Mailbox kann nicht größer als der " +"Standardkontingentwert der domain sein" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Der Alias-Name" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "Ziel" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Domain, auf die dieser Alias verweist" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Unbekannte Domain %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Postfach-Adresse (ohne den '@domain.tld' Teil)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Der Speicherort des Postfachs (%s) konnte nicht bestimmt werden" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Ein Quota ist erforderlich" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -984,8 +1105,9 @@ msgstr "Domain Kontingent überschritten" #: 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 "Schließen" @@ -1034,9 +1156,9 @@ msgstr "Anzahl" #: 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 "Domain-Aliase" @@ -1071,7 +1193,7 @@ msgstr "Erstellt" msgid "Last login" msgstr "Letzte Anmeldung" -#: 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äre E-Mail-Adresse" @@ -1080,7 +1202,7 @@ msgstr "Sekundäre E-Mail-Adresse" msgid "Not defined" msgstr "Nicht definiert" -#: 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 "Telefonnummer" @@ -1158,7 +1280,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" @@ -1184,9 +1306,9 @@ msgstr "Erstellungsdatum" msgid "Last modification date" msgstr "Datum der letzten Änderung" -#: 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 "Postfach-Aliase" @@ -1245,11 +1367,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 "Nein" @@ -1257,7 +1380,7 @@ msgstr "Nein" msgid "Generate new key" msgstr "Neuen Schlüssel generieren" -#: 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 "Ja" @@ -1270,7 +1393,7 @@ msgid "Administrators" msgstr "Administratoren" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Diese Berechtigung entfernen" @@ -1307,13 +1430,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 "Von" #: 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 "An" @@ -1344,9 +1467,10 @@ msgstr "deaktiviert" msgid "Automatically forward emails to another address" msgstr "Nachrichten automatisch an andere Adresse weiterleiten" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Aktualisieren" @@ -1363,11 +1487,24 @@ msgid "Fullname/Recipient" msgstr "Name/Empfänger" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1396,7 +1533,9 @@ msgstr "Aktualisieren" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Die IP-Adressen passen zu keinem der in den Parametern definierten MX-Einträge" +msgstr "" +"Die IP-Adressen passen zu keinem der in den Parametern definierten MX-" +"Einträge" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1404,108 +1543,126 @@ msgstr "Kein MX Eintrag für diese Domain gefunden." #: admin/templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format -msgid "Modoboa detected that domain %(domain)s is listed by the following DNSBL providers:" -msgstr "Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden DNSBL-Anbieter aufgelistet ist:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden " +"DNSBL-Anbieter aufgelistet ist:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." -msgstr "Die Reputation der Domain wird betroffen sein. Es kann sein, dass von ihr kommende E-Mails als Spam betrachtet werden. Sie sollten diese Anbieter kontaktieren und darum bitten, ihre erfasste(n) IP-Adresse(n) zu entfernen." +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 "" +"Die Reputation der Domain wird betroffen sein. Es kann sein, dass von ihr " +"kommende E-Mails als Spam betrachtet werden. Sie sollten diese Anbieter " +"kontaktieren und darum bitten, ihre erfasste(n) IP-Adresse(n) zu entfernen." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag vorliegt:" +msgstr "" +"Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag " +"vorliegt:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Suchen" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "aktiviert_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "aktiviert_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Domain-Liste" -#: 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 "Quota-Liste" -#: 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 "Import" -#: 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 "Export" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Identitäten-Liste" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Domain-Identitäten anzeigen" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "Domain-Alias" -#: 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 "{} bearbeiten" -#: 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 "%s löschen?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Kein MX Eintrag für %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 "Ferhlerhaftes IP-Adressformat für %(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 "Kein MX Eintrag für %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Ein Alias mit diesem Namen existiert bereits" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Erstellen" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Neuer Alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias erstellt" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias verändert" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias gelöscht" @@ -1515,36 +1672,36 @@ msgstr[1] "Aliase gelöscht" msgid "MX records of {}" msgstr "MX Einträge für {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL Zusammenfassung für {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domain gelöscht" msgstr[1] "Domains gelöscht" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Identitäten exportieren" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Domains exportieren" -#: 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 "Ungültige Anfrage" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto gelöscht" msgstr[1] "Konten gelöscht" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Domains importieren" @@ -1552,85 +1709,74 @@ msgstr "Domains importieren" msgid "Import identities" msgstr "Identitäten importieren" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Weiterleitung aktualisiert" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Ungültiger Pincode" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA ist bereits aktiviert" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" -msgstr "2-Faktor-Authentifizierung ist nicht aktiviert" - -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Lokal" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" +#: 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: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 "Benutzername" - -#: 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 "Ungültiger Syntax" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Ungültige Zahl für Runden" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "Dieser Code ist Falsch" - -#: 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 "Altes Passwort" -#: core/api/v2/serializers.py:328 core/views/auth.py:180 core/views/auth.py:235 -msgid "Please use the following code to recover your Modoboa password: {}" -msgstr "Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen: {}" +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 +msgid "2FA is not enabled" +msgstr "2-Faktor-Authentifizierung ist nicht aktiviert" -#: core/api/v2/views.py:54 +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Lokal" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Benutzername" + +#: 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 "Ungültige Syntax" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Ungültige Zahl für Runden" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "Dieser Code ist Falsch" + +#: 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 "" +"Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen:" +" {}" + +#: 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 "Benutzer '%s' hat sich erfolgreich angemeldet" -#: 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 "Fehlanpassung des Passwortschemas. Passwort von %s wird aktualisiert" @@ -1640,452 +1786,524 @@ msgstr "Fehlanpassung des Passwortschemas. Passwort von %s wird aktualisiert" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Passwort-Hash Parameter Unterschied. Aktualisiere %s Passwort" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Authentifizierung" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Authentifizierungstyp" -#: 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 "Backend für die Authentifizierung" -#: 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 "Standard-Passwortschema" -#: 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 "Verschlüsselungsschema der Postfach-Passwörter" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Runden" -#: 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 "Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl muss zwischen 1000 und 999999999 liegen." +#: 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 "" +"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl " +"muss zwischen 1000 und 999999999 liegen." -#: 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 "Aktualisiere das Passwortschema beim Anmelden" -#: 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 "Aktualisieren Sie das Benutzerkennwort bei der Anmeldung, um das Standard-Passwortschema zu verwenden." +msgstr "" +"Aktualisieren Sie das Benutzerkennwort bei der Anmeldung, um das Standard-" +"Passwortschema zu verwenden." -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Standardpasswort" -#: 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 "Standardpasswort für automatisch erstellte Accounts." -#: 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 "Zufällige Passwortlänge" -#: 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 "Länge von zufällig generierten Passwörtern" -#: 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 "Aktualisiere Passwort-Service-URL" -#: 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)." -msgstr "Die URL der externen Webseite wo Benutzer ihr Kennwort aktualisieren können. Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer die nach erfolgreicher externer Authentifizierung angelegt wurden (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 "" +"Die URL der externen Webseite wo Benutzer ihr Kennwort aktualisieren können." +" Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer " +"die nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, " +"SMTP)." -#: 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 "Ankündigung zur Passwort-Wiederherstellung" -#: 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 "Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite angezeigt wird." +msgstr "" +"Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite " +"angezeigt wird." -#: 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 "Aktiviere die Passwortwiederherstellung per SMS" -#: 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 "Aktiviere die Passwortwiederherstellung per SMS für Benutzer mit einer Telefonnummer." +msgstr "" +"Aktiviere die Passwortwiederherstellung per SMS für Benutzer mit einer " +"Telefonnummer." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "SMS Anbieter" -#: 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 "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "LDAP-Einstellungen" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Server-Adresse" -#: 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 "IP-Adresse oder Hostname des LDAP-Servers" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Server-Port" -#: 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 "Der TCP Port des LDAP-Servers" -#: 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 "Aktiviere Ausfallsserver (Fallback)" -#: 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" -msgstr "Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste nicht erreichbar ist" +#: 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 "" +"Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste " +"nicht erreichbar ist" -#: 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 "Ausfallsserver-Adresse" -#: 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 "Die IP-Adresse oder den DNS-Namen des zweiten LDAP-Servers" -#: 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 "Ausfallsserver-Port" -#: 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 "Der TCP Port des sekundären LDAP-Servers" -#: 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 "Gesicherte Verbindung verwenden" -#: 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 "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "Auswählen wenn der LDAP-Server ein Active Directory ist." -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Administrator-Gruppen" -#: 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 "Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." +#: 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 "" +"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren " +"angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Gruppentyp" -#: 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 "Der LDAP Gruppentyp welcher mit diesem Verzeichnis benutzt werden soll." +msgstr "" +"Der LDAP Gruppentyp welcher mit diesem Verzeichnis benutzt werden soll." -#: 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 "Gruppen Search Base" -#: 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 "Der DN der Search Base mit der Gruppen gefunden werden" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Passwort-Attribut" -#: 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 "Das Attribut für Benutzerpasswörter" -#: 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 "LDAP Authentifizierungseinstellungen" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Authentifizierungsmethode" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Suchen und Bind anwenden" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Direkter Bind" -#: 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 "Wählen Sie die Authentifizierungsmethode" -#: 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 "Bind 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 "Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen 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 "" +"Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." -#: 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 "Bind Passwort" -#: 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 "Das Passwort wenn mit dem Bind DN angemeldet wird." -#: 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 "Benutzer Search Base" -#: 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 "Der DN der Search Base mit der Benutzerkonten gefunden werden" -#: 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 "Suchfilter" -#: 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 "Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss entsprechend der LDAP-Konvention in Klammern gesetzt werden." +#: 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 "" +"Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss " +"entsprechend der LDAP-Konvention in Klammern gesetzt werden." -#: 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 "Vorlage für User 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 "Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s enthalten." +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s " +"enthalten." -#: 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 "LDAP Synchronisations Einstellungen" -#: 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 "Export zu LDAP aktivieren" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" -msgstr "Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis aktivieren" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" +msgstr "" +"Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis" +" aktivieren" -#: 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 "Remote LDAP Benutzer entfernen wenn lokaler Benutzer gelöscht wird" -#: 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." -msgstr "Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten wird der Benutzer deaktiviert." +#: 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 "" +"Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten " +"wird der Benutzer deaktiviert." -#: 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 "Vorlage für User DN" -#: 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)" -msgstr "Die Vorlage die verwendet wird um das User DN zu generieren. Es sollte mindestens einen Platzhalter beinhalten (z.B. %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Die Vorlage die verwendet wird um das User DN zu generieren. Es sollte " +"mindestens einen Platzhalter beinhalten (z.B. %(user)s)" -#: 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 "Import von LDAP aktivieren" -#: 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 "Automatische Kontensynchronisation vom LDAP Verzeichnis in die lokale Datenbank aktivieren" +msgstr "" +"Automatische Kontensynchronisation vom LDAP Verzeichnis in die lokale " +"Datenbank aktivieren" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Benutzernamenattribut" -#: 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 "Das LDAP-Attribut, in dem der Benutzername gefunden werden kann." -#: 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 "Dovecot LDAP-Synchronisation aktivieren" -#: 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 "LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration angewendet." +msgstr "" +"LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration " +"angewendet." -#: 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 "Dovecot LDAP-Konfigurationsdatei" -#: 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 "Speicherort der Dovecot-Konfigurationsdatei für LDAP-Einstellungen." -#: 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 "Dashboard" -#: 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 "Benutzerdefinierter RSS Feed" -#: 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 "Zeige benutzerdefinierten RSS-Feed für Wiederverkäufer und Domain-Administratoren." +msgstr "" +"Zeige benutzerdefinierten RSS-Feed für Wiederverkäufer und Domain-" +"Administratoren." -#: 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 "Verberge Funktionen Werkzeug" -#: 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 "Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." +msgstr "" +"Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Benachrichtigungen" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Absenderadresse" -#: 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 "E-Mail Adresse für das Senden von Benachrichtigungen." -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Öffentliche API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Verbindung aktivieren" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Verbindung mit Modoboa public API aktivieren" -#: 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 "Prüfe auf neue Versionen" -#: 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 "Prüft automatisch ob eine neuere Version verfügbar ist." -#: 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 "Sende eine Email wenn eine neue Version gefunden wurde" -#: 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 "Sende eine Email um die Administratoren über eine neue Version zu benachrichtigen" +msgstr "" +"Sende eine Email um die Administratoren über eine neue Version zu " +"benachrichtigen" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Empfänger" -#: 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 "Empfänger für die Benachrichtigungsemail für eine neue Version" -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Sende Statistiken" -#: 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 "Statistiken über die Modoboa public API senden (Zähler und Nutzungs Erweiterungen)" +msgstr "" +"Statistiken über die Modoboa public API senden (Zähler und Nutzungs " +"Erweiterungen)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Verschiedenes" -#: 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 "Schwellwert für inaktive Konten" -#: 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 "Schwellwert für inaktive Konten" -#: 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 "Ein Konto mit einem Datum des letzten Logins, das größer als dieser Schwellenwert ist (in Tagen), wird als inaktiv betrachtet." +#: 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 "" +"Ein Konto mit einem Datum des letzten Logins, das größer als dieser " +"Schwellenwert ist (in Tagen), wird als inaktiv betrachtet." -#: 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 "Benachrichtigungs-Prüfintervall" -#: 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 "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" -#: 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 "Maximales Alter für Log-Einträge" -#: 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 "Das maximale Alter eines Log-Eintrags (in Tagen)" -#: 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 "Einträge pro Seite" -#: 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 "Anzahl dargestellter Einträge pro Seite" -#: 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 "Standardumleitung" -#: 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 "Die Standardumleitung wenn kein Programm angegeben wurde" -#: 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 "Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel zwischen Sommer- und Winterzeit führen (z.B. das Auftauchen derselben lokalen Zeit zweimal aufgrund der Zeitumstellung)." +#: 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 "" +"Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel " +"zwischen Sommer- und Winterzeit führen (z.B. das Auftauchen derselben " +"lokalen Zeit zweimal aufgrund der Zeitumstellung)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Setze 'USE_TZ = True' in settings.py" @@ -2117,31 +2335,31 @@ msgstr "Platzhalter" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Altes Passwort" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Neues Passwort" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Altes Passwort stimmt nicht überein" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Passwörter stimmen nicht überein" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "API Zugriff aktivieren" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Bestätigungscode" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Ungültiger Code" @@ -2158,20 +2376,20 @@ msgstr "verändert" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s der Identität %(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 von " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "entfernt" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "Benutzer {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "Administrationsbefehl" @@ -2179,137 +2397,140 @@ msgstr "Administrationsbefehl" msgid "You can't delete your own account" msgstr "Sie können Ihr eigenes Konto nicht entfernen" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Eine oder mehrere Aktualisierungen sind verfügbar" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Update(s) verfügbar" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Erlaube den Postfach-Zugriff" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "Passwort" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "Sprache" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Bevorzugte Anzeigesprache für Seiten." -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Eine alternative E-Mail-Adresse welche Wiederherstellungszwecken dient." +msgstr "" +"Eine alternative E-Mail-Adresse welche Wiederherstellungszwecken dient." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "Konto" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Unbekannt" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" -msgstr "Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren" +msgstr "" +"Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden" -#: 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] "Das Passwort muss mindestens {} Ziffer enthalten." msgstr[1] "Das Passwort muss mindestens {} Ziffern enthalten." -#: 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] "Das Passwort muss mindestens {} Kleinbuchstaben enthalten." msgstr[1] "Das Passwort muss mindestens {} Kleinbuchstaben enthalten." -#: 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] "Das Passwort muss mindestens {} Großbuchstaben enthalten." msgstr[1] "Das Passwort muss mindestens {} Großbuchstaben enthalten." -#: 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] "Das Passwort muss mindestens {} Sonderzeichen enthalten." msgstr[1] "Das Passwort muss mindestens {} Sonderzeichen enthalten." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Ihr Passwort muss eine Kombination verschiedener Zeichentypen enthalten." +msgstr "" +"Ihr Passwort muss eine Kombination verschiedener Zeichentypen enthalten." -#: 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 "API-Endpunkt" -#: 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 "OVH Europa" -#: 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 "OVH US" -#: 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 "OVH Nordamerika" -#: 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 "So you Start Europa" -#: 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 "So you Start Amerika" -#: 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 "Kimsufi Europa" -#: 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 "Kimsufi Nordamerika" -#: 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 "Applikationsschlüssel" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Applikationsgeheimnis" -#: 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 "Verbraucherschlüssel" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2336,8 +2557,12 @@ msgid "Latest news" msgstr "Neuste Nachrichten" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Besuchen Sie den offiziellen Weblog für weitere Informationen." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Besuchen Sie den offiziellen Weblog für weitere Informationen." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2349,8 +2574,12 @@ msgstr "Verwalten Sie Ihren Zugriff auf die Modoboa API" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Eine Dokumentation der API ist hier verfügbar." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Eine Dokumentation der API ist hier verfügbar." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2361,7 +2590,7 @@ msgstr "API access token" msgid "Hello %(user)s." msgstr "Hallo %(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 "Information" @@ -2375,7 +2604,9 @@ msgstr "Eine oder mehrere Aktualisierungen sind verfügbar!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Überprüfen Sie die folgende Liste auf Komponenten, die aktualisiert werden können." +msgstr "" +"Überprüfen Sie die folgende Liste auf Komponenten, die aktualisiert werden " +"können." #: core/templates/core/information.html:10 msgid "Applications" @@ -2393,7 +2624,7 @@ msgstr "Aktuellste Version" msgid "Active users" msgstr "Aktive Benutzer" -#: 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 "Logs" @@ -2423,7 +2654,7 @@ msgstr[1] "" "\n" "Die folgenden Aktualisierungen sind verfügbar:\n" -#: 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 "Parameter" @@ -2440,12 +2671,12 @@ msgstr "Speichern" msgid "Modoboa settings" msgstr "Modoboa-Einstellungen" -#: 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 "Einstellungen" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Einstellungen" @@ -2465,7 +2696,7 @@ msgstr "Aktualisieren Sie Ihre persönlichen Daten" msgid "Click here to update your password" msgstr "Hier klicken um das Passwort zu aktualisieren" -#: 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 "Sicherheit" @@ -2474,8 +2705,12 @@ msgid "Two-Factor authentication" msgstr "Zwei-Faktor-Authentifizierung" #: 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." -msgstr "Installiere ein soft-token Authenticator, wie FreeOTP oder Google Authenticator vom Appstore und scannen Sie den 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 "" +"Installiere ein soft-token Authenticator, wie FreeOTP oder Google " +"Authenticator vom Appstore und scannen Sie den QR-Code." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2486,28 +2721,49 @@ msgid "Register" msgstr "Registrieren" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account aktiviert." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." +msgstr "" +"Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account " +"aktiviert." #: 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." -msgstr "Die folgenden Wiederherstellungscodes können einmalig benutzt werden, um den Zugriff auf ihr Konto wiederherzustellen, wenn sie zum Beispiel ihr Mobiltelefon verlieren. Achten sie darauf diese sicher aufzubewahren, sonst werden sie keine Möglichkeit mehr haben auf den Account zuzugreifen" +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 "" +"Die folgenden Wiederherstellungscodes können einmalig benutzt werden, um den" +" Zugriff auf ihr Konto wiederherzustellen, wenn sie zum Beispiel ihr " +"Mobiltelefon verlieren. Achten sie darauf diese sicher aufzubewahren, sonst " +"werden sie keine Möglichkeit mehr haben auf den Account zuzugreifen" #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." +#: 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 "Deaktiviere 2-Faktor-Authentifizierung" +#: 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 "Setze Wiederherstellungscodes zurück" #: 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 "" "Zwei-Faktor-Authentifizierung (2FA) ist noch nicht für diesen Account aktiviert.\n" "Aktiviere dieses Feature, um die Account-Sicherheit zu erhöhen." @@ -2524,69 +2780,77 @@ msgstr "Neue Wiederherstellungscodes" msgid "Here are your new recovery codes. " msgstr "Hier sind Ihre neuen Wiederherstellungscodes." +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Passwörter verschlüsseln" + #: 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 "Logout" -#: 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 "Der Kern von Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parameter gespeichert" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es noch einmal." +msgstr "" +"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es " +"noch einmal." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Benutzer '{}' erfolgreich abgemeldet" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil aktualisiert" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Einstellungen gespeichert" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Zugriff aktualisiert" -#: 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 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "DMARC-Tools" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "DMARC-Bericht für {} anzeigen" -#: 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 "" @@ -2622,11 +2886,11 @@ msgstr "Temporärer Fehler" msgid "Permanent error" msgstr "Permanenter Fehler" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Richtlinie" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Schwacher Fehler" @@ -2702,95 +2966,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Unbekannte Quellen / Bedrohungen" -#: 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 "" @@ -2819,7 +3083,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 @@ -2835,7 +3101,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2843,151 +3109,159 @@ 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 "Zugriff aktualisiert" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "IMAP-Migration" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "IMAP-Migration" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "OfflineIMAP-Einstellungen" -#: 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 "Gleichzeitige Synchronisierungsaufgaben" -#: 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 "Die maximale Anzahl von gleichzeitigen Synchronisierungsaufgaben" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "OfflineIMAP-Einstellungen" -#: 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 "OfflineIMAP-Einstellungen" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "OfflineIMAP-Einstellungen" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "IMAP-Migration" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Verbindung zu IMAP-Server fehlgeschlagen: %s" -#: 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 "IMAP-Migration" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "LDAP-Account konnte nicht angelegt werden: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "LDAP-Account konnte nicht aktualisiert werden: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "LDAP-Account konnte nicht gelöscht werden: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "LDAP-Account konnte nicht deaktiviert werden: {}" -#: 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 "Verbindung mit Modoboa public API aktivieren" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Verbindung zu Datenbank %s nicht konfiguriert" -#: 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 "Kodierung der Zeichenkette konnte nicht bestimmt werden" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Zugriff verweigert: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Zugriff verweigert" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Geben Sie einen gültigen Domain-Namen an" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Geben Sie eine gültige E-Mail-Adresse ein." @@ -2997,163 +3271,193 @@ msgstr "Geben Sie eine gültige E-Mail-Adresse ein." msgid "Submit" msgstr "Abschicken" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Ändern des Passworts fehlgeschlagen: {}" -#: 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 "Betreff" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 #, fuzzy #| msgid "Default limits" msgid "Default per-admin limits" msgstr "Standard-Grenzwerte" -#: 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 "Domain-Administratoren" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: limits/app_settings.py:29 limits/app_settings.py:163 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl der Domain-Administratoren, die ein neuer Administrator erstellen darf" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" +msgstr "" +"Maximale Anzahl der Domain-Administratoren, die ein neuer Administrator " +"erstellen darf" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: limits/app_settings.py:39 limits/app_settings.py:175 #, fuzzy #| msgid "Maximum number of allowed domains for a new administrator" -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximale Anzahl Domains, die ein neuer Administrator erstellen darf" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: limits/app_settings.py:48 limits/app_settings.py:186 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Domain-Aliase, die ein neuer Administrator erstellen darf" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Maximale Anzahl Domain-Aliase, die ein neuer Administrator erstellen darf" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: limits/app_settings.py:58 limits/app_settings.py:198 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximale Anzahl Mailboxen, die ein neuer Administrator erstellen darf" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: limits/app_settings.py:67 limits/app_settings.py:210 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximale Anzahl Aliase, die ein neuer Administrator erstellen darf" -#: 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 #, fuzzy #| msgid "Default limits" msgid "Default per-domain limits" msgstr "Standard-Grenzwerte" -#: 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 +#: limits/app_settings.py:94 limits/app_settings.py:248 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl der Domain-Administratoren, die ein neuer Administrator erstellen darf" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Maximale Anzahl der Domain-Administratoren, die ein neuer Administrator " +"erstellen darf" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: limits/app_settings.py:104 limits/app_settings.py:260 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Domain-Aliase, die ein neuer Administrator erstellen darf" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Maximale Anzahl Domain-Aliase, die ein neuer Administrator erstellen darf" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: limits/app_settings.py:114 limits/app_settings.py:272 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximale Anzahl Mailboxen, die ein neuer Administrator erstellen darf" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: limits/app_settings.py:123 limits/app_settings.py:283 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" msgstr "Maximale Anzahl Aliase, die ein neuer Administrator erstellen darf" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Grenzwerte" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Maximale Anzahl Domains, die dieser Benutzer erstellen darf" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Maximale Anzahl Domain Aliase, die dieser Benutzer erstellen darf" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Maximale Anzahl Mailboxen, die dieser Benutzer erstellen darf" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Maximale Anzahl Mailbox-Aliase, die dieser Benutzer erstellen darf" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" msgstr "Maximale Anzahl Domains, die ein Administrator erstellen darf" -#: 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 #, fuzzy #| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." msgstr "Maximale Anzahl Domain Aliase, die dieser Benutzer erstellen darf" -#: limits/constants.py:46 +#: limits/constants.py:85 #, fuzzy #| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." msgstr "Maximale Anzahl Mailboxen, die dieser Benutzer erstellen darf" -#: limits/constants.py:50 +#: limits/constants.py:93 #, fuzzy #| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Maximale Anzahl Mailbox-Aliase, die dieser Benutzer erstellen darf" -#: limits/constants.py:55 +#: limits/constants.py:102 #, fuzzy #| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." msgstr "Maximale Anzahl Domains, die ein Administrator erstellen darf" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Ungültiger Grenzwert" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Ressourcen" @@ -3166,11 +3470,13 @@ msgstr "%s: Grenze erreicht" msgid "Not enough resources" msgstr "Nicht ausreichend Ressourcen" -#: 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 "Sie verfügen nicht über die erforderlichen Rechte, um unbegrenzte Werte anzugeben" +msgstr "" +"Sie verfügen nicht über die erforderlichen Rechte, um unbegrenzte Werte " +"anzugeben" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "unbegrenzt" @@ -3179,99 +3485,99 @@ msgstr "unbegrenzt" msgid "Resources usage" msgstr "Ressourcen-Verbrauch" -#: 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 "Pfad zur Log-Datei" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Pfad zur Log-Datei, um Statistiken zu sammeln" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Ablageverzeichnis für RRD-Dateien" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Pfad zum Verzeichnis in dem die RRD-Dateien abgelegt werden" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" msgid "Show greylisted messages" msgstr "Abgewiesene Nachrichten" -#: 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 "Statistiken" -#: 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 "Durchschnittlicher Traffic (Nachrichten/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "Gesendete Nachrichten" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "Empfangene Nachrichten" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "Zurückgeworfene Nachrichten" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "Abgewiesene Nachrichten" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "Gesendete Nachrichten" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "Gesendete Nachrichten" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "Abgewiesene Nachrichten" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Durchschnittliche Traffic-Menge (Bytes/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "Empfangsgröße" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "Versendegröße" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Mailverkehr" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3299,183 +3605,196 @@ msgstr "Antworten" msgid "No statistics available" msgstr "Keine Statistik-Daten verfügbar" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Tag" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Woche" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Monat" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Jahr" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Benutzerdefiniert" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Unbekanntes graphisches Set" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Unbekanntes graphisches Set" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Ungültiger individueller Zeitraum" -#: 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 "Persönliche Kontoinformationen" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Verzeichnis nicht gefunden." -#: 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 "Kein Dokument für diesen Benutzer verfügbar" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "PDF Anmeldeinformationen" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." msgstr "Erzeuge Dokumente nur wenn ein Konto angelegt wurde" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Dokumentenablage" -#: 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 "Speicherpfad für Dokumente" -#: 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 "Dateipfad in dem die PDF-Dokumente abgelegt werden" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Sicherheitseinstellungen" -#: 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 "Lösche Dokumente nach dem ersten Download" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" -msgstr "Löscht automatisch das Dokument, wenn es das erste Mal über dieses Oberfläche heruntergeladen wurde" +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +msgid "" +"Automatically delete a document just after its first download from this " +"interface" +msgstr "" +"Löscht automatisch das Dokument, wenn es das erste Mal über dieses " +"Oberfläche heruntergeladen wurde" -#: 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 "Erzeuge Dokumente nur wenn ein Konto angelegt wurde" -#: 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." -msgstr "Erzeuge ein neues Dokument nur wenn ein neues Konto erstellt wurde. Wenn die Option auf Nein steht wird jedes Mal ein neues Dokument erstellt, wenn ein Passwort aktualisiert wurde." +#: 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 "" +"Erzeuge ein neues Dokument nur wenn ein neues Konto erstellt wurde. Wenn die" +" Option auf Nein steht wird jedes Mal ein neues Dokument erstellt, wenn ein " +"Passwort aktualisiert wurde." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Individuell angepasste Optionen" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Titel" -#: 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 "Titel des Dokuments" -#: 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 "URL der Webanwendung" -#: 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 "URL der Modoboa Webanwendung" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Eigener Nachrichtentext" -#: 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 "Eine eigene Nachricht, die am Ende des Dokuments angezeigt wird" -#: 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 "Verbindungseinstellungen für Mailprogramme einschließen" -#: 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" -msgstr "Erforderliche SMTP und IMAP Einstellungen zur Konfiguration von Mailprogramme, Tablets oder Telefonen" +#: 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 "" +"Erforderliche SMTP und IMAP Einstellungen zur Konfiguration von " +"Mailprogramme, Tablets oder Telefonen" -#: 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 "SMTP Serveradresse" -#: 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 "Adresse des SMTP-Servers (Hostname oder IP)" -#: 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 "SMTP Server-Port" -#: 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 "Port, auf dem der SMTP-Server erreicht werden kann" -#: 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 "SMTP-Verbindungssicherheit" -#: 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 "Mechanismus zur Verbindungssicherung" -#: 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 "IMAP Serveradresse" -#: 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 "Adresse des IMAP-Servers (Hostname oder IP)" -#: 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 "IMAP Server-Port" -#: 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 "Port, auf dem der IMAP-Servier erreicht werden kann" -#: 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 "IMAP Verbindungssicherheit" @@ -3483,17 +3802,17 @@ msgstr "IMAP Verbindungssicherheit" msgid "PDF credentials" msgstr "PDF Anmeldeinformationen" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "PDF Anmeldeinformationen" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Powered by Modoboa - Mail hosting made simple" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3504,11 +3823,11 @@ msgstr "" "\n" "Liebe/r %s, dieses Dokument enthält die Anmeldeinformationen, die Du benötigst um Dich mit Modoboa zu verbinden. Präge Dir bitte die Informationen ein und lösche anschliessend dieses Dokument.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Webanwendung:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3517,66 +3836,239 @@ msgstr "" "\n" "Hier können Sie Ihre Emails online ansehen, Filter oder Kontakte erstellen.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Bitte ändern Sie Ihr Passwort!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "PC/Tablet/Smartphone Konfiguration:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." -msgstr "Verwenden Sie diese Einstellungen für Ihren Computer, Ihr Tablet oder Telefon" +msgstr "" +"Verwenden Sie diese Einstellungen für Ihren Computer, Ihr Tablet oder " +"Telefon" -#: 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 "Erhalte die Anmeldeinformationen des Benutzer als ein PDF-Dokument" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "PDF Anmeldeinformationen" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" -msgstr "Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) enthält, aufgetreten. " +msgstr "" +"Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) " +"enthält, aufgetreten. " #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" -msgstr "Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) enthält, aufgetreten. " +msgstr "" +"Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) " +"enthält, aufgetreten. " -#: 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: Grenze erreicht" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: Grenze erreicht" + +#: 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 code is invalid" +msgid "This date is over" +msgstr "Das Datum liegt in der Vergangenheit" + +#: 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 "Muss größer als der Wert des Startdatums sein" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Automatische Antworten" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Automatische Antwort ab diesem Datum aktivieren. Format: YYYY-MM-DD" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Bis" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Automatische Antwort bis zu diesem Datum aktivieren. Format: YYYY-MM-DD" + +#: 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 "" +"Der Inhalt Ihrer Antwort: Sie können die folgenden Variablen benutzen, die " +"automatisch mit dem zugehörigen Wert ersetzt werden: %(name)s, %(fromdate)s," +" %(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Zeit zwischen automatische Antworten" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Zeit zwischen zwei automatisierten Antworten an denselben Empfänger (in " +"Sekunden)" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Standard-Betreff" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Ich bin weg" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" +"Standard-Betreff wenn eine Antwortnachricht automatisch generiert wird" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Standard-Inhalt" + +#: 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 "" +"Ich bin im Moment weg und werde antworten sobald ich zurück bin.\n" +"\n" +"Mit freundlichen Grüßen\n" +"%(name)s\n" + +#: 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 "" +"Standard-Inhalt wenn eine Antwort automatisch erstellt wird. Das '%(name)s' " +"Makro wird gegen den vollen Benutzernamen ersetzt." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Automatische Antwort" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Automatische Antwort" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Betreff" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Der Betreff, der in den versendeten Nachrichten verwendet wird" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "Inhalt" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Der Inhalt, der in den versendeten Nachrichten verwendet wird" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Aktivieren/Deaktivieren Sie die automatisierte Antwort" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "" +"Geben Sie eine Nachricht an, die gesendet werden soll, wenn Sie nicht " +"erreichbar sind." + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Automatische Antwort erfolgreich aktualisiert." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 #, fuzzy #| msgid "Relay domains" msgid "Transport settings" msgstr "Relaydomain" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 #, fuzzy #| msgid "target host" msgid "target host address" msgstr "Ziel-Host" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 #, fuzzy #| msgid "target host" msgid "target host port" msgstr "Ziel-Host" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "Empfänger verifizieren" @@ -3646,16 +4138,24 @@ msgstr "Passwort vergessen?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Ihr Passwort wurde geändert. Sie können sich jetzt anmelden ." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Ihr Passwort wurde geändert. Sie können sich jetzt anmelden ." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Passwort ändern" #: 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 "Der Link zum Zurücksetzen des Passwortes war ungültig, möglicherweise wurde er schon verwendet. Bitte fordern Sie einen neuen Link an." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Der Link zum Zurücksetzen des Passwortes war ungültig, möglicherweise wurde " +"er schon verwendet. Bitte fordern Sie einen neuen Link an." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3666,19 +4166,36 @@ msgid "Resend code" msgstr "Code erneut senden" #: 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 "

      Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse vorhanden ist. Sie sollten sie in Kürze erhalten.

      Wenn Sie keine E-Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse eingegeben haben und überprüfen Sie Ihren Spamordner.

      " +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 "" +"

      Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts" +" geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse " +"vorhanden ist. Sie sollten sie in Kürze erhalten.

      Wenn Sie keine " +"E-Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse " +"eingegeben haben und überprüfen Sie Ihren Spamordner.

      " #: 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 "Um das Passwort für Ihr %(username)s Modoboa Konto zurück zu setzen, klicken Sie bitte auf den folgenden Link:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Um das Passwort für Ihr %(username)s Modoboa Konto zurück zu setzen, klicken" +" Sie bitte auf den folgenden Link:" #: 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 "Falls der Link oben nicht funktioniert, kopieren Sie diesen bitte in ein neues Browser-Fenster." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Falls der Link oben nicht funktioniert, kopieren Sie diesen bitte in ein " +"neues Browser-Fenster." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3699,22 +4216,21 @@ msgstr "Modoboa Passwort zurücksetzen" msgid "Invalid value" msgstr "Ungültige Zeile" -#: 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 "" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: Grenze erreicht" +#~ msgid "An alias with this name already exists." +#~ msgstr "Ein Alias mit diesem Namen existiert bereits" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Ein Set von Tools um die DMARC-Integration zu vereinfachen" @@ -3723,7 +4239,6 @@ msgstr "" #~ msgstr "Erzeuge PDF-Dokumente welche die Benutzeranmeldeinformationen enthält" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "IMAP-Migration" @@ -3749,12 +4264,10 @@ msgstr "" #~ msgstr "Der 'Service'-Name" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote address (hostname or IP) of this domain" #~ msgstr "Entfernte Destination für diese Domain" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote port of this domain" #~ msgstr "Entfernte Destination für diese Domain" @@ -3768,15 +4281,10 @@ msgstr "" #~ msgstr "Scanne" #, fuzzy -#~| msgid "The domain name" #~ msgid "The relay domain name" #~ msgstr "Name der Domain" #, fuzzy -#~| msgid "" -#~| "\n" -#~| "
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" -#~| "
    • relaydomainalias; name; target; enabled
    • \n" #~ msgid "" #~ "\n" #~ "
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" @@ -3789,7 +4297,9 @@ msgstr "" #~ msgstr "Postfach-Besitzer" #~ msgid "The UNIX account who owns mailboxes on the filesystem" -#~ msgstr "UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und Nachrichten im Dateisystem ist." +#~ msgstr "" +#~ "UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und " +#~ "Nachrichten im Dateisystem ist." #, python-format #~ msgid "Domain '%s' does not exist" diff --git a/modoboa/locale/de_DE/LC_MESSAGES/django.po b/modoboa/locale/de_DE/LC_MESSAGES/django.po index f40122163..d65e839ee 100644 --- a/modoboa/locale/de_DE/LC_MESSAGES/django.po +++ b/modoboa/locale/de_DE/LC_MESSAGES/django.po @@ -10,540 +10,598 @@ 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: 2011-07-01 08:15+0000\n" "Last-Translator: bdaniel93, 2023\n" -"Language-Team: German (Germany) (http://www.transifex.com/tonio/modoboa/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/tonio/modoboa/" +"language/de_DE/)\n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/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 #, fuzzy #| msgid "Permission denied" msgid "Permission denied." msgstr "Zugriff verweigert" -#: 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 "Dieses Feld ist erforderlich" -#: admin/api/v1/serializers.py:186 +#: admin/api/v1/serializers.py:235 #, fuzzy #| msgid "Hide features widget for resellers and domain administrators" -msgid "List of administered domains (resellers and domain administrators only)." +msgid "" +"List of administered domains (resellers and domain administrators only)." msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" -#: 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 #, fuzzy #| msgid "This field is required" msgid "This field is required." msgstr "Dieses Feld ist erforderlich" -#: 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 +#, fuzzy +#| msgid "Enter a valid email address." +msgid "This alias already exists" +msgstr "Geben Sie eine gültige E-Mail-Adresse ein." + +#: 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory non-writable" msgstr "Ablageverzeichnis für RRD-Dateien" -#: 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 #, fuzzy #| msgid "Unknown tag {}" msgid "Unknown status" msgstr "Unbekanntes Tag {}" -#: 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 #, fuzzy #| msgid "You can't delete your own account" msgid "You can't delete your own domain" msgstr "Sie können Ihr eigenes Konto nicht löschen" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable MX checks" msgstr "API-Zugriff aktivieren" -#: 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 +#, fuzzy +#| msgid "Enable API access" +msgid "Enable IPV6 checks" +msgstr "API-Zugriff aktivieren" + +#: 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 API access" msgid "Enable SPF checks" msgstr "API-Zugriff aktivieren" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DKIM checks" msgstr "API-Zugriff aktivieren" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DMARC checks" msgstr "API-Zugriff aktivieren" -#: admin/app_settings.py:74 admin/app_settings.py:341 +#: admin/app_settings.py:74 admin/app_settings.py:360 #, fuzzy #| msgid "Not a valid DMARC record" msgid "Check if every domain has a valid DMARC record" msgstr "Kein gültiger DMARC-Eintrag" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DNSBL checks" msgstr "API-Zugriff aktivieren" -#: 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 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom DNS server" msgstr "Benutzerdefinierter RSS-Feed" -#: 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 #, fuzzy #| msgid "Inactive account threshold" msgid "Automatic account removal" msgstr "Schwellwert für inaktive Konten" -#: 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 +#: 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 #, fuzzy #| msgid "Administrator groups" msgid "Administration" msgstr "Administratorgruppen" -#: 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 #, fuzzy #| msgid "Search a domain" msgid "Relay domain" msgstr "Suche eine Domäne" -#: 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 "Schließen" -#: 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 "Benutzername" -#: 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 "Rolle" -#: 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 #, fuzzy #| msgid "Random password length" msgid "Random password" msgstr "Zufällige Passwortlänge" -#: 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 "Passwort" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Neues Passwort wiederholen" -#: 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 #, fuzzy #| msgid "Enable 2FA" msgid "Enabled" msgstr "2FA aktivieren" -#: 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 #, fuzzy #| msgid "You can't delete your own account" msgid "You can't disable your own account" msgstr "Sie können Ihr eigenes Konto nicht löschen" -#: 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 #, fuzzy #| msgid "Sender address" msgid "Sender addresses" msgstr "Absenderadresse" -#: 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 #, fuzzy #| msgid "Domain administrator" msgid "Domain(s) that user administrates" msgstr "Domain-Administrator" -#: 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 "Allgemein" -#: 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 "" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 #, fuzzy #| msgid "Permission denied" msgid "Permissions" msgstr "Zugriff verweigert" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 #, fuzzy #| msgid "Access updated" msgid "Account updated" msgstr "Zugang aktualisiert" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 #, fuzzy #| msgid "New accounts" msgid "New account" msgstr "Neue Konten" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 #, fuzzy #| msgid "Account DN template" msgid "Account created" @@ -562,7 +620,9 @@ msgid "Email address" msgstr "Absender-Adresse" #: 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 @@ -571,66 +631,72 @@ msgstr "" msgid "Recipients" msgstr "Empfänger" -#: 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 #, fuzzy #| msgid "Unknown domain" msgid "domain" msgstr "Unbekannte Domäne" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 #, fuzzy #| msgid "Domain administrator" msgid "Create a domain administrator" msgstr "Domain-Administrator" -#: 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 @@ -639,59 +705,61 @@ msgstr "" msgid "Name" msgstr "Name" -#: 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 #, fuzzy #| msgid "Invalid code" msgid "Invalid format" msgstr "Ungültiger Code" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 #, fuzzy #| msgid "modified" msgid "Domain modified" msgstr "geändert" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 #, fuzzy #| msgid "Applications" msgid "Options" msgstr "Applikationen" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 #, fuzzy #| msgid "Unknown domain" msgid "New domain" msgstr "Unbekannte Domäne" -#: 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 "" @@ -701,25 +769,25 @@ msgstr "" msgid "Recipient(s)" msgstr "Empfänger" -#: 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 #, fuzzy #| msgid "Search filter" msgid "Select a file" msgstr "Suchfilter" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "" @@ -727,7 +795,7 @@ msgstr "" msgid "Don't treat duplicated objects as error" msgstr "" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 #, fuzzy #| msgid "Forgot password?" msgid "Crypt passwords" @@ -737,95 +805,95 @@ msgstr "Passwort vergessen?" 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 #, fuzzy #| msgid "This field is required" msgid "A mailbox is required" msgstr "Dieses Feld ist erforderlich" -#: 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 #, fuzzy, python-format #| msgid "unable to determine encoding of string" msgid "Unable to decode CSV file using %(encoding)s encoding" @@ -835,27 +903,27 @@ msgstr "Codierung der Zeichenkette konnte nicht bestimmt werden" 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 "Not an SPF record" msgid "Domain has no MX record" msgstr "Kein SPF-Eintrag" -#: 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 #, fuzzy #| msgid "Invalid code" msgid "Invalid MX record: {}" msgstr "Ungültiger Code" -#: 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 "" @@ -864,165 +932,162 @@ 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 #, fuzzy #| msgid "From address" msgid "address" msgstr "Absender-Adresse" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 #, fuzzy #| msgid "Enter a valid email address." msgid "The alias address." msgstr "Geben Sie eine gültige E-Mail-Adresse ein." -#: 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 "Beschreibung" -#: 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 #, fuzzy #| msgid "Invalid code" msgid "Invalid address" msgstr "Ungültiger Code" -#: 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 #, fuzzy #| msgid "Invalid line" msgid "Invalid line: {}" msgstr "Ungültige Zeile" -#: admin/models/domain.py:26 admin/models/domain_alias.py:33 +#: admin/models/domain.py:27 admin/models/domain_alias.py:33 #, fuzzy #| msgid "Username" msgid "name" msgstr "Benutzername" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 #, fuzzy #| msgid "Enter a valid domain name" msgid "The domain name" msgstr "Geben Sie einen gültigen Domänennamen ein" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DNS checks" msgstr "API-Zugriff aktivieren" -#: 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 "Ungültige Zeile" -#: 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 #, fuzzy, python-format #| msgid "Unknown domain" msgid "Unknown domain %s" msgstr "Unbekannte Domäne" -#: 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 #, fuzzy #| msgid "This field is required" msgid "A quota is required" msgstr "Dieses Feld ist erforderlich" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" msgstr "" @@ -1084,9 +1149,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 "" @@ -1123,7 +1188,7 @@ msgstr "" msgid "Last login" msgstr "Letzte Anmeldung" -#: 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äre E-Mail-Adresse" @@ -1132,7 +1197,7 @@ msgstr "Sekundäre E-Mail-Adresse" 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 "Telefonnummer" @@ -1224,7 +1289,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" @@ -1252,9 +1317,9 @@ msgstr "Bestätigungscode" msgid "Last modification date" msgstr "Bestätigungscode" -#: 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 "" @@ -1316,7 +1381,7 @@ 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 "Nein" @@ -1324,7 +1389,7 @@ msgstr "Nein" 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 "Ja" @@ -1339,7 +1404,7 @@ msgid "Administrators" msgstr "Administratorgruppen" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "" @@ -1382,13 +1447,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 "Von" #: 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 "An" @@ -1421,9 +1486,10 @@ msgstr "2FA deaktivieren" 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 "Aktualisieren" @@ -1444,11 +1510,24 @@ msgid "Fullname/Recipient" msgstr "Empfänger" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1491,11 +1570,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 @@ -1509,94 +1593,100 @@ msgstr "" msgid "Search" msgstr "Suchen ..." -#: 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 #, fuzzy #| msgid "Message" msgid "Message logs" msgstr "Nachricht" -#: 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 +#, fuzzy, python-format +#| msgid "No mechanism found" +msgid "No AAAA record for %s" +msgstr "Kein Mechanismus gefunden" + #: 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 #, fuzzy #| msgid "modified" msgid "Alias modified" msgstr "geändert" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 #, fuzzy #| msgid "deleted" msgid "Alias deleted" @@ -1610,11 +1700,11 @@ msgstr[1] "gelöscht" msgid "MX records of {}" msgstr "{} Eintrag von {}" -#: 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 #, fuzzy #| msgid "deleted" msgid "Domain deleted" @@ -1622,20 +1712,20 @@ msgid_plural "Domains deleted" msgstr[0] "gelöscht" msgstr[1] "gelöscht" -#: 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 "Ungültige Anfrage" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 #, fuzzy #| msgid "Account DN template" msgid "Account deleted" @@ -1643,7 +1733,7 @@ msgid_plural "Accounts deleted" msgstr[0] "Konto-DN-Vorlage" msgstr[1] "Konto-DN-Vorlage" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1651,87 +1741,75 @@ msgstr "" msgid "Import identities" msgstr "" -#: admin/views/user.py:52 +#: admin/views/user.py:51 #, fuzzy #| msgid "Profile updated" msgid "Forward updated" msgstr "Profil aktualisiert" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Ungültiger PIN-Code" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA ist bereits aktiviert" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" -msgstr "2FA ist nicht aktiviert" - -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Lokal" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" +#: 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: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 "Benutzerprofil" - -#: 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 "Ungültige Syntax" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Ungültige Anzahl Runden" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "Dieser Code ist ungültig" - -#: 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 "Altes Passwort" -#: core/api/v2/serializers.py:328 core/views/auth.py:180 core/views/auth.py:235 -msgid "Please use the following code to recover your Modoboa password: {}" -msgstr "Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort wiederherzustellen: {}" +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 +msgid "2FA is not enabled" +msgstr "2FA ist nicht aktiviert" -#: core/api/v2/views.py:54 +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Lokal" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Benutzerprofil" + +#: 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 "Ungültige Syntax" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Ungültige Anzahl Runden" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "Dieser Code ist ungültig" + +#: 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 "" +"Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort " +"wiederherzustellen: {}" + +#: 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 "Benutzer '%s' erfolgreich angemeldet" -#: 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 "Kennwortschema stimmt nicht überein. Aktualisiere %s Passwort" @@ -1739,454 +1817,532 @@ msgstr "Kennwortschema stimmt nicht überein. Aktualisiere %s Passwort" #: core/api/v2/views.py:93 core/views/auth.py:75 #, python-format msgid "Password hash parameter missmatch. Updating %s password" -msgstr "Passwort-Hash-Parameter stimmen nicht überein. Aktualisiere %s Passwort" +msgstr "" +"Passwort-Hash-Parameter stimmen nicht überein. Aktualisiere %s Passwort" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Authentifizierung" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Authentifizierungstyp" -#: 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 "Das Backend für Authentifizierung" -#: 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 "Voreingestelltes Passwort-Schema" -#: 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 "Schema zur Verschlüsselung von Postfach-Passwörtern" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Runden" -#: 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 "Anzahl an Runden (nur von sha256crypt und sha512crypt genutzt). Muss zwischen 1000 und 999999999 liegen, inklusive." +#: 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 "" +"Anzahl an Runden (nur von sha256crypt und sha512crypt genutzt). Muss " +"zwischen 1000 und 999999999 liegen, inklusive." -#: 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 "Passwort-Schema beim Login updaten" -#: 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 "Aktualisiere das Benutzerkennwort bei der Anmeldung, um das Standardkennwortschema zu verwenden" +msgstr "" +"Aktualisiere das Benutzerkennwort bei der Anmeldung, um das " +"Standardkennwortschema zu verwenden" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Standardpasswort" -#: 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 "Standardpasswort für automatisch kreierte Konten" -#: 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 "Zufällige Passwortlänge" -#: 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 "Länge der zufällig generierten Passwörter." -#: 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 "URL des Kennwortdienstes aktualisieren" -#: 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)." -msgstr "Die URL einer externen Seite, auf der Benutzer ihr Passwort aktualisieren können. Betrifft nur nicht lokale Benutzer, die nach einer erfolgreichen externen Authentifizierung (LDAP, SMTP) automatisch erstellt wurden." +#: 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 "" +"Die URL einer externen Seite, auf der Benutzer ihr Passwort aktualisieren " +"können. Betrifft nur nicht lokale Benutzer, die nach einer erfolgreichen " +"externen Authentifizierung (LDAP, SMTP) automatisch erstellt wurden." -#: 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 "Ankündigung zur Passwortwiederherstellung" -#: 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 "Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite angezeigt wird." +msgstr "" +"Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite " +"angezeigt wird." -#: 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 "Passwortwiederherstellung per SMS aktivieren" -#: 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 "Aktiviere die Kennwortwiederherstellung per SMS für Benutzer, die eine Telefonnummer angegeben haben." +msgstr "" +"Aktiviere die Kennwortwiederherstellung per SMS für Benutzer, die eine " +"Telefonnummer angegeben haben." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "SMS-Anbieter" -#: 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 "Wählen Sie einen Anbieter für den Versand von SMS zur Kennwortwiederherstellung" +msgstr "" +"Wählen Sie einen Anbieter für den Versand von SMS zur " +"Kennwortwiederherstellung" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "LDAP-Einstellungen" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Serveradresse" -#: 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 "IP-Adresse oder Hostname des LDAP-Servers" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Server Port" -#: 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 "Der TCP Port des LDAP-Servers" -#: 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 "Aktiviere Ausfallserver (Fallback)" -#: 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" -msgstr "Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste nicht erreichbar ist" +#: 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 "" +"Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste " +"nicht erreichbar ist" -#: 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 "Ausfallserver-Adresse" -#: 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 "IP-Adresse oder Hostname des zweiten LDAP-Servers" -#: 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 "Ausfallserver-Port" -#: 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 "Der TCP Port des zweiten LDAP-Servers" -#: 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 "Verwende eine gesicherte Verbindung" -#: 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 "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "Auswählen, wenn der LDAP-Server ein Active Directory ist." -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Administratorgruppen" -#: 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 "Mitglieder dieser LDAP-POSIX-Gruppen werden als Domänenadministratoren erstellt. Nutze ';' um Gruppen zu trennen." +#: 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 "" +"Mitglieder dieser LDAP-POSIX-Gruppen werden als Domänenadministratoren " +"erstellt. Nutze ';' um Gruppen zu trennen." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Gruppentyp" -#: 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 "Der LDAP-Gruppentyp, der mit Ihrem Verzeichnis verwendet werden soll." -#: 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 "Suchbasis für Gruppen" -#: 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 "Der Distinguished Name der Suchbasis, die zum Suchen von Gruppen verwendet wird" +msgstr "" +"Der Distinguished Name der Suchbasis, die zum Suchen von Gruppen verwendet " +"wird" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Kennwortattribut" -#: 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 "Das Attribut, das zum Speichern von Benutzerpasswörtern verwendet wird" -#: 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 "LDAP-Authentifizierungseinstellungen" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Authentifizierungsmethode" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Suchen und Bind anwenden" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Direktbindung" -#: 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 "Wählen Sie die Authentifizierungsmethode" -#: 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 "Bind 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 "Der Distinguished Name, der beim Binden an den LDAP-Server verwendet werden soll. Für eine anonyme Bindung leer lassen" +#: 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 "" +"Der Distinguished Name, der beim Binden an den LDAP-Server verwendet werden " +"soll. Für eine anonyme Bindung leer lassen" -#: 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 "Bind Passwort" -#: 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 "Das Kennwort, das beim Binden an den LDAP-Server verwendet werden soll (mit 'Bind DN')" +msgstr "" +"Das Kennwort, das beim Binden an den LDAP-Server verwendet werden soll (mit " +"'Bind 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 "Suchbasis für Benutzer" -#: 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 "Der Distinguished Name der Suchbasis, die zum Suchen von Benutzern verwendet wird" +msgstr "" +"Der Distinguished Name der Suchbasis, die zum Suchen von Benutzern verwendet " +"wird" -#: 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 "Suchfilter" -#: 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 "Ein optionaler Filter (z.B. '(objectClass=person)'). Der Filter muss entsprechend der LDAP-Konvention in Klammern gesetzt werden." +#: 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 "" +"Ein optionaler Filter (z.B. '(objectClass=person)'). Der Filter muss " +"entsprechend der LDAP-Konvention in Klammern gesetzt werden." -#: 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 "Benutzer-DN-Vorlage" -#: 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 "Die Vorlage, die verwendet wird, um den DN eines Benutzers zu erstellen. Es sollte einen Platzhalter enthalten (z. B. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Die Vorlage, die verwendet wird, um den DN eines Benutzers zu erstellen. Es " +"sollte einen Platzhalter enthalten (z. B. %(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 "LDAP-Synchronisationseinstellungen" -#: 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 "Export zu LDAP aktivieren" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" -msgstr "Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-Verzeichnis aktivieren" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" +msgstr "" +"Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-" +"Verzeichnis aktivieren" -#: 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 "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird" -#: 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." -msgstr "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird, ansonsten wird es deaktiviert." +#: 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 "" +"Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird, ansonsten wird " +"es deaktiviert." -#: 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 "Konto-DN-Vorlage" -#: 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)" -msgstr "Die Vorlage, die verwendet wird, um den DN eines Kontos zu erstellen. Es sollte einen Platzhalter enthalten (z. B. %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Die Vorlage, die verwendet wird, um den DN eines Kontos zu erstellen. Es " +"sollte einen Platzhalter enthalten (z. B. %(user)s)" -#: 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 "Import von LDAP aktivieren" -#: 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 "Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren" +msgstr "" +"Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Benutzername-Attribut" -#: 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 "Das LDAP-Attribut, in dem der Benutzername gefunden werden kann." -#: 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 "Dovecot LDAP-Synchronisation aktivieren" -#: 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 "LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration angewendet." +msgstr "" +"LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration " +"angewendet." -#: 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 "Dovecot LDAP-Konfigurationsdatei" -#: core/app_settings.py:384 core/app_settings.py:1004 -msgid "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "Speicherort der Konfigurationsdatei, die Dovecot-LDAP-Einstellungen enthält." +#: core/app_settings.py:374 core/app_settings.py:1134 +msgid "" +"Location of the configuration file which contains Dovecot LDAP settings." +msgstr "" +"Speicherort der Konfigurationsdatei, die Dovecot-LDAP-Einstellungen enthält." -#: 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 "Dashboard" -#: 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 "Benutzerdefinierter RSS-Feed" -#: 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 "Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren" +msgstr "" +"Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren" -#: 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 "Funktionen-Widget ausblenden" -#: 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 "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Benachrichtigungen" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Absenderadresse" -#: 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 "E-Mail-Adresse, die zum Senden von Benachrichtigungen verwendet wird." -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Öffentliche API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Verbindung aktivieren" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von 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 "Prüfe auf neue Versionen" -#: 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 "Prüft automatisch, ob eine neuere Version verfügbar ist" -#: 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 "Sende eine E-Mail, wenn eine neue Version gefunden wurde" -#: 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 "Sendet eine E-Mail, um Administratoren über neue Versionen zu benachrichtigen" +msgstr "" +"Sendet eine E-Mail, um Administratoren über neue Versionen zu benachrichtigen" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Empfänger" -#: 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 "Empfänger von Benachrichtigungs-E-Mails über neue Version." -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Sende Statistiken" -#: 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 "Sendet Statistiken an die öffentliche API von Modoboa (Zähler und verwendete Erweiterungen)" +msgstr "" +"Sendet Statistiken an die öffentliche API von Modoboa (Zähler und verwendete " +"Erweiterungen)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Verschiedenes" -#: 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 "Schwellwert für inaktive Konten" -#: 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 "Schwellwert für inaktive Konten" -#: 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 "Ein Konto mit einem letzten Login-Datum über diesem Schwellenwert (in Tagen) wird als inaktiv betrachtet" +#: 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 "" +"Ein Konto mit einem letzten Login-Datum über diesem Schwellenwert (in Tagen) " +"wird als inaktiv betrachtet" -#: 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 "Prüfintervall für Benachrichtigungen" -#: 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 "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" -#: 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 "Maximales Alter eines Log-Eintrags" -#: 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 "Das maximale Alter eines Protokollsatzes in Tagen" -#: 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 "Einträge pro Seite" -#: 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 "Anzahl der angezeigten Einträge pro Seite" -#: 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 "Standardumleitung" -#: 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 "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben wurde" +msgstr "" +"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " +"wurde" -#: 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 "Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel zwischen Sommer- und Winterzeit führen (z. B. das Auftauchen derselben lokalen Zeit zweimal aufgrund der Zeitumstellung)." +#: 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 "" +"Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel " +"zwischen Sommer- und Winterzeit führen (z. B. das Auftauchen derselben " +"lokalen Zeit zweimal aufgrund der Zeitumstellung)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Setze 'USE_TZ = True' in settings.py" @@ -2218,31 +2374,31 @@ msgstr "Platzhalter" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Altes Passwort" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Neues Passwort" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Altes Passwort stimmt nicht überein" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Passwörter stimmen nicht überein" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "API-Zugriff aktivieren" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Bestätigungscode" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Ungültiger Code" @@ -2259,20 +2415,20 @@ msgstr "geändert" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s von Benutzer %(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 von " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "gelöscht" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "Benutzer {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "Administrationsbefehl" @@ -2280,137 +2436,142 @@ msgstr "Administrationsbefehl" msgid "You can't delete your own account" msgstr "Sie können Ihr eigenes Konto nicht löschen" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Ein oder mehrere Updates sind verfügbar" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Update(s) verfügbar" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Postfachzugriff zulassen" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Gewähren Sie diesem Administrator Zugriff auf Benutzerpostfächer" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "Passwort" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "Sprache" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Bevorzugte Anzeigesprache für Seiten." -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Eine alternative E-Mail-Adresse kann für die Wiederherstellung verwendet werden." +msgstr "" +"Eine alternative E-Mail-Adresse kann für die Wiederherstellung verwendet " +"werden." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" -msgstr "Kennwort konnte nicht aktualisiert werden: LDAP-Modul nicht installiert" +msgstr "" +"Kennwort konnte nicht aktualisiert werden: LDAP-Modul nicht installiert" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "Konto" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Unbekannt" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" -msgstr "Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren" +msgstr "" +"Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden" -#: 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] "Das Passwort muss mindestens {} Ziffer enthalten." msgstr[1] "Das Passwort muss mindestens {} Ziffern enthalten." -#: 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] "Das Passwort muss mindestens {} Kleinbuchstaben enthalten." msgstr[1] "Das Passwort muss mindestens {} Kleinbuchstaben enthalten." -#: 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] "Das Passwort muss mindestens {} Großbuchstaben enthalten." msgstr[1] "Das Passwort muss mindestens {} Großbuchstaben enthalten." -#: 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] "Das Passwort muss mindestens {} Sonderzeichen enthalten." msgstr[1] "Das Passwort muss mindestens {} Sonderzeichen enthalten." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Ihr Passwort muss eine Kombination verschiedener Zeichentypen enthalten." +msgstr "" +"Ihr Passwort muss eine Kombination verschiedener Zeichentypen enthalten." -#: 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 "API-Endpunkt" -#: 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 "OVH Europa" -#: 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 "OVH US" -#: 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 "OVH Nordamerika" -#: 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 "So you Start Europa" -#: 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 "So you Start Nord-Amerika" -#: 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 "Kimsufi Europa" -#: 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 "Kimsufi Nordamerika" -#: 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 "Anwendungsschlüssel" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Anwendungsgeheimnis" -#: 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 "Verbraucherschlüssel" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2437,8 +2598,12 @@ msgid "Latest news" msgstr "Neueste Nachrichten" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Besuchen Sie den offiziellen Weblog für weitere Informationen." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Besuchen Sie den offiziellen Weblog für weitere Informationen." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2450,8 +2615,12 @@ msgstr "Verwalten Sie Ihren Zugriff auf die Modoboa API" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Eine Dokumentation der API ist hier verfügbar." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Eine Dokumentation der API ist hier verfügbar." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2462,7 +2631,7 @@ msgstr "API-Zugriffstoken" msgid "Hello %(user)s." msgstr "Hallo %(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 "Information" @@ -2476,7 +2645,9 @@ msgstr "Ein oder mehrere Updates sind verfügbar" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Überprüfen Sie die folgende Liste auf Komponenten, die aktualisiert werden können." +msgstr "" +"Überprüfen Sie die folgende Liste auf Komponenten, die aktualisiert werden " +"können." #: core/templates/core/information.html:10 msgid "Applications" @@ -2494,7 +2665,7 @@ msgstr "Aktuellste Version" msgid "Active users" msgstr "Aktive Benutzer" -#: 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 "Logs" @@ -2524,7 +2695,7 @@ msgstr[1] "" "\n" " Folgende Updates sind verfügbar:\n" -#: 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 "Parameter" @@ -2541,12 +2712,12 @@ msgstr "Speichern" msgid "Modoboa settings" msgstr "Modoboa-Einstellungen" -#: 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 "Einstellungen" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Einstellungen" @@ -2566,7 +2737,7 @@ msgstr "Aktualisieren Sie Ihre persönlichen Daten" msgid "Click here to update your password" msgstr "Klicken Sie hier, um Ihr Passwort zu aktualisieren" -#: 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 "Sicherheit" @@ -2575,8 +2746,12 @@ msgid "Two-Factor authentication" msgstr "Zwei-Faktor-Authentifizierung" #: 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." -msgstr "Installieren Sie einen Soft-Token-Authentifikator wie FreeOTP oder Google Authenticator aus dem App-Store und scannen Sie den 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 "" +"Installieren Sie einen Soft-Token-Authentifikator wie FreeOTP oder Google " +"Authenticator aus dem App-Store und scannen Sie den QR-Code." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2587,29 +2762,53 @@ msgid "Register" msgstr "Registrieren" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account aktiviert." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." +msgstr "" +"Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account " +"aktiviert." #: 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." -msgstr "Die folgenden Wiederherstellungscodes können jeweils einmal verwendet werden, um den Zugriff auf Ihr Konto wiederherzustellen, falls Sie beispielsweise Ihr Telefon verlieren. Achten Sie darauf, diese sicher aufzubewahren, da Sie sonst nicht mehr auf Ihr Konto zugreifen können." +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 "" +"Die folgenden Wiederherstellungscodes können jeweils einmal verwendet " +"werden, um den Zugriff auf Ihr Konto wiederherzustellen, falls Sie " +"beispielsweise Ihr Telefon verlieren. Achten Sie darauf, diese sicher " +"aufzubewahren, da Sie sonst nicht mehr auf Ihr Konto zugreifen können." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "Die Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." +#: 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 "2FA deaktivieren" +#: 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 "Wiederherstellungscodes zurücksetzen" #: 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." -msgstr "Die Zwei-Faktor-Authentifizierung (2FA) ist für diesen Account noch nicht aktiviert. Die Aktivierung dieser Funktion erhöht die Sicherheit des Accounts." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." +msgstr "" +"Die Zwei-Faktor-Authentifizierung (2FA) ist für diesen Account noch nicht " +"aktiviert. Die Aktivierung dieser Funktion erhöht die Sicherheit des " +"Accounts." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2623,69 +2822,76 @@ msgstr "Neue Wiederherstellungscodes" msgid "Here are your new recovery codes. " msgstr "Hier sind Ihre neuen Wiederherstellungscodes." +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Forgot password?" +msgid "Confirm your password" +msgstr "Passwort vergessen?" + #: 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 "Ausloggen" -#: 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 "Der Kern von Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parameter gespeichert" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Benutzername und Passwort stimmen nicht überein. Bitte versuche es erneut." +msgstr "" +"Benutzername und Passwort stimmen nicht überein. Bitte versuche es erneut." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Benutzer '{}' erfolgreich abgemeldet" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil aktualisiert" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Einstellungen gespeichert" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Zugang aktualisiert" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "LDAP-Einstellungen" -#: 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 "" @@ -2727,11 +2933,11 @@ msgstr "Ausfallserver-Port" 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 "" @@ -2803,95 +3009,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "Falsche Syntax des IP4-Mechanismus" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "Falsches IPv4-Adressformat" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "Falsche Syntax des IP6-Mechanismus" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "Falsches IPv6-Adressformat" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "Ungültige Syntax für {}-Mechanismus" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "Ungültige Maske gefunden {}" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "Kein SPF-Eintrag" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "Unbekannter Mechanismus {}" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "Unbekannter Modifikator {}" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "Doppelter Modifikator {} gefunden" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "Kein Mechanismus gefunden" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "Kein gültiger DKIM-Eintrag" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "Ungültiger Tag {}" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "Kein Schlüssel im Datensatz gefunden" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "Falscher Wert {} für Tag {}" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "Falscher Wert {} für Tag {}:" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr "Keine ganze Zahl" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr "weniger als {}" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr "größer als {}" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "Kein gültiger DMARC-Eintrag" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "Unbekanntes Tag {}" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "Erforderliches p-Tag fehlt" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "Öffentlicher Schlüssel stimmt nicht überein" @@ -2920,8 +3126,12 @@ msgid "A DNS record has been found but its syntax is not valid:" msgstr "Ein DNS-Eintrag wurde gefunden, aber seine Syntax ist ungültig:" #: 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." -msgstr "Hier ist ein Beispiel für die DNS-Konfiguration (Bind-Format). Ersetzen Sie den Wert zwischen [ ] durch die entsprechenden Werte." +msgid "" +"Here is an example of DNS configuration (bind format). Replace value between " +"[ ] by the appropriate ones." +msgstr "" +"Hier ist ein Beispiel für die DNS-Konfiguration (Bind-Format). Ersetzen Sie " +"den Wert zwischen [ ] durch die entsprechenden Werte." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" @@ -2936,7 +3146,7 @@ msgstr "Automatische Konfiguration" msgid "hostname of your automx server" msgstr "Hostname Ihres Automx-Servers" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "{} Eintrag von {}" @@ -2944,95 +3154,103 @@ msgstr "{} Eintrag von {}" msgid "Auto configuration records for {}" msgstr "Automatische Konfigurationseinträge für {}" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "DNS-Konfiguration für {}" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 #, fuzzy #| msgid "Access updated" msgid "Access denied" msgstr "Zugang aktualisiert" -#: 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 communication" msgid "Enable IMAP Migration" msgstr "Verbindung aktivieren" -#: 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 communication" msgid "Enable IMAP Migration." msgstr "Verbindung aktivieren" -#: 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 #, fuzzy #| msgid "LDAP settings" msgid "OfflineIMAP settings" msgstr "LDAP-Einstellungen" -#: 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 #, fuzzy #| msgid "Auto configuration" msgid "IMAP Migration" msgstr "Automatische Konfiguration" -#: 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 @@ -3041,52 +3259,52 @@ msgstr "" msgid "IMAP migration" msgstr "Automatische Konfiguration" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "LDAP-Konto konnte nicht erstellt werden: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "LDAP-Konto konnte nicht aktualisiert werden: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Fehler beim Löschen des LDAP-Kontos: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Fehler beim Deaktivieren des LDAP-Kontos: {}" -#: 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 "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Verbindung zur Datenbank %s nicht konfiguriert" -#: 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 "Codierung der Zeichenkette konnte nicht bestimmt werden" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Zugriff verweigert: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Zugriff verweigert" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Geben Sie einen gültigen Domänennamen ein" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Geben Sie eine gültige E-Mail-Adresse ein." @@ -3096,137 +3314,157 @@ msgstr "Geben Sie eine gültige E-Mail-Adresse ein." msgid "Submit" msgstr "Abschicken" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Passwort konnte nicht aktualisiert werden: {}" -#: 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 "Betreff" -#: 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 #, fuzzy #| msgid "Domain administrator" msgid "Domain admins" msgstr "Domain-Administrator" -#: 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 #, fuzzy #| msgid "Invalid line" msgid "Invalid limit" msgstr "Ungültige Zeile" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "" @@ -3239,11 +3477,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 "" @@ -3252,91 +3490,92 @@ 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 "Pfad zur Protokolldatei" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" -msgstr "Pfad zur Protokolldatei, die zum Sammeln von Statistiken verwendet wird" +msgstr "" +"Pfad zur Protokolldatei, die zum Sammeln von Statistiken verwendet wird" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Ablageverzeichnis für RRD-Dateien" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Pfad zum Verzeichnis, in dem RRD-Dateien gespeichert sind" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Zeige Greylisted E-Mails" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Unterscheide zwischen Hard- und Soft-Rejects (Greylisting)" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "Statistiken" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "rrdtool-Binärdatei konnte nicht gefunden werden." -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Durchschnittlicher Datenverkehr (Nachrichten/Min.)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "Gesendete Nachrichten" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "Empfangene Nachrichten" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "Unzustellbare Nachrichten" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "Abgewiesene Nachrichten" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "Virus E-Mails" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "Spam E-Mails" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "Greylisted E-Mails" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Durchschnittlicher Datenverkehr (Bytes/Min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "Empfangene Daten" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "Gesendete Daten" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Mailverkehr" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Durchschnittlich erstelle Konten (Konten/Stunde)" @@ -3364,197 +3603,203 @@ msgstr "Anwenden" msgid "No statistics available" msgstr "Keine Statistiken verfügbar" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Tag" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Woche" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Monat" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Jahr" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Benutzerdefiniert" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Unbekannter Grafiksatz" -#: maillog/views.py:69 +#: maillog/views.py:71 msgid "Unknown domain" msgstr "Unbekannte Domäne" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Ungültiger benutzerdefinierter Zeitraum" -#: 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 "Aktualisieren Sie Ihre persönlichen Daten" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory is not writable" msgstr "Ablageverzeichnis für RRD-Dateien" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable PDF credentials" msgstr "API-Zugriff aktivieren" -#: 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory to save documents into" msgstr "Ablageverzeichnis für RRD-Dateien" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 #, fuzzy #| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" msgstr "Pfad zum Verzeichnis, in dem RRD-Dateien gespeichert sind" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 #, fuzzy #| msgid "Security" msgid "Security options" msgstr "Sicherheit" -#: 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 "spam messages" msgid "Custom message" msgstr "Spam E-Mails" -#: 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 "Serveradresse" -#: 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 "Server Port" -#: 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 "Serveradresse" -#: 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 "Server Port" -#: 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 "" @@ -3562,15 +3807,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" @@ -3579,42 +3824,48 @@ 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 "Passwort ändern" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 #, fuzzy #| msgid "Auto configuration" msgid "PC/Tablet/Smartphone configuration:" msgstr "Automatische Konfiguration" -#: 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 "" @@ -3623,31 +3874,168 @@ 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 +#, fuzzy +#| msgid "This code is invalid" +msgid "This date is over" +msgstr "Dieser Code ist ungültig" + +#: 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 +#, fuzzy +#| msgid "Inactive account threshold" +msgid "Automatic replies" +msgstr "Schwellwert für inaktive Konten" + +#: 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 +#, fuzzy +#| msgid "spam messages" +msgid "Auto-reply message" +msgstr "Spam E-Mails" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Betreff" + +#: 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 #, fuzzy #| msgid "Update password service URL" msgid "Unsupported service" msgstr "URL des Kennwortdienstes aktualisieren" -#: 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 #, fuzzy #| msgid "From address" msgid "target host address" msgstr "Absender-Adresse" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 #, fuzzy #| msgid "Recipient" msgid "verify recipients" @@ -3717,16 +4105,24 @@ msgstr "Passwort vergessen?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Ihr Passwort wurde geändert. Sie können sich jetzt anmelden." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Ihr Passwort wurde geändert. Sie können sich jetzt anmelden." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Passwort ändern" #: 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 "Der Link zum Zurücksetzen des Passwortes war ungültig, möglicherweise wurde er schon verwendet. Bitte fordern Sie einen neuen Link an." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Der Link zum Zurücksetzen des Passwortes war ungültig, möglicherweise wurde " +"er schon verwendet. Bitte fordern Sie einen neuen Link an." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3737,19 +4133,36 @@ msgid "Resend code" msgstr "Code erneut senden" #: 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 "

      Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse vorhanden ist. Sie sollten sie in Kürze erhalten.

      Wenn Sie keine E-Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse eingegeben haben und überprüfen Sie Ihren Spam-Ordner.

      " +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 "" +"

      Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts " +"geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse " +"vorhanden ist. Sie sollten sie in Kürze erhalten.

      Wenn Sie keine E-" +"Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse " +"eingegeben haben und überprüfen Sie Ihren Spam-Ordner.

      " #: 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 "Um den Vorgang zum Zurücksetzen des Passworts für Ihr %(username)s Modoboa-Konto zu beginnen, klicken Sie auf folgenden Link:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Um den Vorgang zum Zurücksetzen des Passworts für Ihr %(username)s Modoboa-" +"Konto zu beginnen, klicken Sie auf folgenden Link:" #: 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 "Falls der obere Link nicht funktioniert, kopieren Sie diesen bitte in ein neues Browser-Fenster." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Falls der obere Link nicht funktioniert, kopieren Sie diesen bitte in ein " +"neues Browser-Fenster." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3770,14 +4183,14 @@ msgstr "Modoboa Passwort zurücksetzen" msgid "Invalid value" msgstr "Ungültige Zeile" -#: 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/el_GR/LC_MESSAGES/django.po b/modoboa/locale/el_GR/LC_MESSAGES/django.po index d400f7c9e..73a1191f0 100644 --- a/modoboa/locale/el_GR/LC_MESSAGES/django.po +++ b/modoboa/locale/el_GR/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: 2017-10-12 19:37+0000\n" "Last-Translator: Kostas Moumouris \n" "Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/language/el_GR/)\n" @@ -19,520 +19,627 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 σημαίνει ότι δεν υπάρχει quota. " +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." +msgstr "" +"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 " +"σημαίνει ότι δεν υπάρχει quota. " -#: admin/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 "Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 σημαίνει ότι δεν υπάρχει quota. " +msgstr "" +"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 " +"σημαίνει ότι δεν υπάρχει quota. " -#: 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 "Δεν υπάρχουν ΜΧ έγραφες για αυτό το domain " -#: 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 "Δεν μπορεί να είναι μεγαλύτερο από το domain quota." -#: 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)." -msgstr "Λίστα διαχειριζόμενων domains (αφορά μόνο μεταπωλητές και διαχειριστές domain)" +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Λίστα διαχειριζόμενων domains (αφορά μόνο μεταπωλητές και διαχειριστές " +"domain)" -#: 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 "Πρέπει να είναι ίσο με την full_address του γραμματοκιβωτίου" -#: 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 "Το τοπικός domain {} δεν υπάρχει" -#: 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 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "Ο χρήστης '%s' υπάρχει ήδη" + +#: admin/api/v1/serializers.py:565 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this domain." msgstr "Δεν έχετε πρόσβαση σε αυτό το domain" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this mailbox." msgstr "Δεν έχετε πρόσβαση σε αυτό το domain" -#: 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 "Ο χρήστης '%s' υπάρχει ήδη" -#: 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 #, fuzzy #| msgid "Domain not found." msgid "Directory not found." msgstr "To domain δεν βρέθηκε." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Domain not found." msgid "Directory non-writable" msgstr "To domain δεν βρέθηκε." -#: 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 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Απαιτείται γραμματοκιβώτιο" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" 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 "Δεν έχετε πρόσβαση σε αυτό το domain" -#: 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 "Δεν μπορείτε να σβήσετε το δικό σας domain" -#: 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 "Domains" -#: 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 "Ενεργοποίηση ελέγχου 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 "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Έγκυρα MXς" -#: 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 "Μια λίστα από IP ή δικτυακές διευθύνσεις που κάθε εγράφη MX πρέπει να ταιριάζει. " +#: 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 "" +"Μια λίστα από IP ή δικτυακές διευθύνσεις που κάθε εγράφη MX πρέπει να " +"ταιριάζει. " -#: 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 "Τα νέα domain πρέπει να χρησιμοποιούν εξουσιοδοτημένους MX(s)" -#: 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 "Αποτροπή δημιουργίας νέου domain, εάν η εγράφη MX χρησιμοποιεί μια από τις είδη ορισμένες διευθύνσεις." +#: 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 "" +"Αποτροπή δημιουργίας νέου domain, εάν η εγράφη MX χρησιμοποιεί μια από τις" +" είδη ορισμένες διευθύνσεις." -#: 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 "Ενεργοποίση ελέγχου 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 "Ενεργοποίση ελέγχου 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 "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX" -#: 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 "Ενεργοποίηση ελέγχου 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 "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX" -#: 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 "Ενεργοποίηση ελέγχου 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 "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX" -#: 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 "Ενεργοποίηση ελέγχου 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 "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX" -#: 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 "Ενεργοποίηση ελέγχου 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 "Έλεγχος κάθε domain κατά κύριους DNSBL πάροχους" -#: 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 "Προκαθορισμένο domain quota" -#: 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 "Προκαθορισμένο quota (σε MB) που εφαρμόζεται στα νέα domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει 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 "" +"Προκαθορισμένο quota (σε MB) που εφαρμόζεται στα νέα domains χωρίς " +"προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. " -#: 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 "Προκαθορισμένο domain quota" -#: 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" -msgstr "Μετονομασία και διαγραφή γραμματοκιβωτίων στο σύστημα αρχείων, όταν μετονομάζονται ή διαγράφονται από το Medaboa " +#: 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 "" +"Μετονομασία και διαγραφή γραμματοκιβωτίων στο σύστημα αρχείων, όταν " +"μετονομάζονται ή διαγράφονται από το Medaboa " -#: 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 "Προκαθορισμένο quota γραμματοκιβωτίου " -#: 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 "Προκαθορισμένο quota γραμματοκιβωτίου (σε MB) που εφαρμόζεται στα νέα domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. " +#| 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 "" +"Προκαθορισμένο quota γραμματοκιβωτίου (σε MB) που εφαρμόζεται στα νέα " +"domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota." +" " -#: 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 "Προκαθορισμένο quota γραμματοκιβωτίου " -#: 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 "Όταν αφαιρείται ένα γραμματοκιβώτιο, να αφαιρείται και ο σχετικός λογαριασμός" +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 "Αυτόματη δημιουργία domain/γραμματοκιβωτίων" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Δημιουργία domain και γραμματοκιβωτίου κατά την αυτόματη δημιουργία λογαριασμού" +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Δημιουργία domain και γραμματοκιβωτίου κατά την αυτόματη δημιουργία " +"λογαριασμού" -#: 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 "Δημιουργήστε ένα ψευδώνυμο χρησιμοποιώντας την παλιά διεύθυνση όταν μετονομάζεται ένα γραμματοκιβώτιο." +msgstr "" +"Δημιουργήστε ένα ψευδώνυμο χρησιμοποιώντας την παλιά διεύθυνση όταν " +"μετονομάζεται ένα γραμματοκιβώτιο." -#: 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 "Προκαθορισμένο quota γραμματοκιβωτίου (σε MB) που εφαρμόζεται στα νέα domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. " +#| 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 "" +"Προκαθορισμένο quota γραμματοκιβωτίου (σε MB) που εφαρμόζεται στα νέα " +"domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota." +" " -#: 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 "Domain" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Relay domain" -#: 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." -msgstr "Το όνομα του χρήστη. Πρέπει να είναι μια έγκυρη e-mail διεύθυνση για απλούς χρήστες ή διαχειριστές με γραμματοκιβώτιο." +#: 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 "" +"Το όνομα του χρήστη. Πρέπει να είναι μια έγκυρη e-mail διεύθυνση για απλούς " +"χρήστες ή διαχειριστές με γραμματοκιβώτιο." -#: 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." -msgstr "Δημιουργία ενός τυχαίου κωδικού. Εάν ενημερώνεται αυτό το λογαριασμό και επιλέξετε το box, ένας νέος τυχαίος κωδικός θα δημιουργηθεί. " +#: 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 "" +"Δημιουργία ενός τυχαίου κωδικού. Εάν ενημερώνεται αυτό το λογαριασμό και " +"επιλέξετε το box, ένας νέος τυχαίος κωδικός θα δημιουργηθεί. " -#: 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 "Μόνο σε super διαχειριστές επιτρέπεται αυτή η λειτουργία. " -#: 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 "E-mail" -#: 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 "Quota" -#: admin/forms/account.py:236 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgstr "Quota σε ΜΒ για γραμματοκιβώτια. Ορίστε μια προσαρμοσμένη τιμή ή χρησιμοποιήστε την προεπιλεγμένη του τομέα. Αφήστε το κενό για να μη βάλετε όριο (δεν επιτρέπεται για διαχειριστές domain)." +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "" +"Quota σε ΜΒ για γραμματοκιβώτια. Ορίστε μια προσαρμοσμένη τιμή ή " +"χρησιμοποιήστε την προεπιλεγμένη του τομέα. Αφήστε το κενό για να μη βάλετε " +"όριο (δεν επιτρέπεται για διαχειριστές domain)." -#: admin/forms/account.py: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)." -msgstr "Ψευδώνυμο(μα) αυτού του mailbox. Εισάγεται μόνο μια διεύθυνση τη φορά, πατήστε ENTER για να προσθέσετε επιπλέον. Για να δημιουργήσετε ένα catchall ψευδώνυμο, εισάγετε το όνομα τομέα (@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 "" +"Ψευδώνυμο(μα) αυτού του mailbox. Εισάγεται μόνο μια διεύθυνση τη φορά, " +"πατήστε ENTER για να προσθέσετε επιπλέον. Για να δημιουργήσετε ένα catchall" +" ψευδώνυμο, εισάγετε το όνομα τομέα (@domain.tld)." -#: 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." -msgstr "Επιπρόσθετη(τες) διεύθυνση(σεις) αποστολέα για αυτό το λογαριασμό. Ο χρήστης επιτρέπεται να αποστέλλει email χρησιμοποιώντας αυτή την διεύθυνση, ακόμη και εάν αυτή δεν υπάρχει τοπικά στον server. Εισάγετε μόνο μια διεύθυνση ανά γραμμή. Πιέστε ENTER για να εισάγεται επιπλέον διευθύνσεις. " +#: 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 "" +"Επιπρόσθετη(τες) διεύθυνση(σεις) αποστολέα για αυτό το λογαριασμό. Ο " +"χρήστης επιτρέπεται να αποστέλλει email χρησιμοποιώντας αυτή την διεύθυνση, " +"ακόμη και εάν αυτή δεν υπάρχει τοπικά στον server. Εισάγετε μόνο μια " +"διεύθυνση ανά γραμμή. Πιέστε ENTER για να εισάγεται επιπλέον διευθύνσεις. " -#: 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 "Το domain δεν υπάρχει" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "To τοπικό domain δεν υπάρχει" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domain(s)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Τα domains που ο χρήστης διαχειρίζεται" -#: 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 "Ο λογαριασμός δημιουργήθηκε" @@ -545,71 +652,88 @@ msgid "Email address" msgstr "Διεύθυνση Email" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Διεύθυνση ψευδώνυμου. Για να δημιουργήσεις catchall ψευδώνυμα, απλός εισάγεται το όνομα του domain (@domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Διεύθυνση ψευδώνυμου. Για να δημιουργήσεις catchall ψευδώνυμα, απλός " +"εισάγεται το όνομα του domain (@domain.tld)." #: 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." -msgstr "Οι διευθύνσεις στις οποίες το ψευδώνυμο θα δείχνει. Εισάγεται μόνο μία διεύθυνση ανά εγράφη, πατήστε ENTER για να εισάγεται επιπλέον." +#: 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 "" +"Οι διευθύνσεις στις οποίες το ψευδώνυμο θα δείχνει. Εισάγεται μόνο μία " +"διεύθυνση ανά εγράφη, πατήστε ENTER για να εισάγεται επιπλέον." -#: 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." -msgstr "Ψευδώνυμο(μα) από το domain. Εισάγεται μόνο ένα όνομα ανά γραμμή, πατήστε 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 "" +"Ψευδώνυμο(μα) από το domain. Εισάγεται μόνο ένα όνομα ανά γραμμή, πατήστε " +"ENTER για να εισάγεται επιπλέον. " -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:52 +#: admin/forms/domain.py:57 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 σημαίνει ότι δεν υπάρχει quota. " +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 " +"σημαίνει ότι δεν υπάρχει quota. " -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "Ψευδώνυμα (alias) domain " -#: 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' με αυτό το όνομα υπάρχει ήδη" -#: 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 "Δεν μπορείτε να ορίσετε ένα απεριόριστο quota." -#: 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 "domain" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Δημιουργία διαχειριστή domain" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Αυτόματη δημιουργία διαχειριστή για αυτό το domain" -#: 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 @@ -618,51 +742,55 @@ 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." -msgstr "Το όνομα του διαχειριστή. Μην συμπεριλάβετε το όνομα του domain, γιατί θα προσαρτηθεί αυτόματα στο τέλος." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Το όνομα του διαχειριστή. Μην συμπεριλάβετε το όνομα του domain, γιατί θα " +"προσαρτηθεί αυτόματα στο τέλος." -#: 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 "Δημιουργήστε αυτόματα standard ψευδώνυμα για αυτόν το domain" -#: 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 "Το domain άλλαξε" -#: 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 "Νέο domain" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Το domain δημιουργήθηκε" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Διαχωριστικό" @@ -670,23 +798,24 @@ 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 "Προώθηση μηνυμάτων και αποθήκευση αντιγράφων στο τοπικό γραμματοκιβώτιο" +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 "Συνέχεια σε περίπτωση σφάλματος" @@ -694,104 +823,105 @@ msgstr "Συνέχεια σε περίπτωση σφάλματος" msgid "Don't treat duplicated objects as error" msgstr "Μην αντιμετωπίζετε τα διπλότυπα αντικείμενα ως σφάλματα" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Κρυπτογράφηση κωδικών" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Επιλέξτε εάν οι κωδικοί που βρίσκονται στο αρχείο δεν είναι κρυπτογραφημένοι" +msgstr "" +"Επιλέξτε εάν οι κωδικοί που βρίσκονται στο αρχείο δεν είναι κρυπτογραφημένοι" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Η εισαγωγή λογαριασμού απέτυχε (%s): το domain δεν υπάρχει" -#: 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 "Η εισαγωγή του λογαριασμού (%s) απέτυχε: λάθος τιμή στο quota" -#: 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 "Δεν έχετε δικαίωμα εισαγωγής domain" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Δεν επιτρέπεται να εισαγάγετε ψευδώνυμα στο domain." -#: 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 MX record found for this domain." msgid "No DNS record found for %s" msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " -#: admin/lib.py:202 +#: admin/lib.py:204 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No %(type)s record for %(name)s" msgstr "Έγραφες MX από{}" -#: 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 #, fuzzy, python-brace-format #| msgid "Invalid quota value for domain '{}'" msgid "Invalid IP address format for {domain}; {addr}" msgstr "Μη έγκυρη τιμή quota για το domain '{}'" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Το αντικείμενο υπάρχει ήδη: %s'" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d αντικείμενα εισήχθησαν με επιτυχία" -#: 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 "" @@ -800,27 +930,27 @@ 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 #, fuzzy #| msgid "Domain {} has no MX record" msgid "Domain has no MX record" msgstr "Το Domain {} δεν έχει εγγραφή MX " -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Το Domain {} δεν έχει εγγραφή MX " -#: 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 από{}" -#: 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 για το domain {0} δεν είναι έγκυρη: {1} " @@ -829,160 +959,158 @@ msgstr "Η εγγραφή MX για το domain {0} δεν είναι έγκυ msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX ζήτημα(τα) για το domain {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL ζήτημα(τα) για το domain {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "To domain δεν βρέθηκε." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -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 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Λάθος γραμμή: %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 "όνομα" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Το όνομα του domain" -#: 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 "Επιλέξτε για να ενεργοποιηθεί αυτό το domain" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Ενεργοποίση ελέγχου DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Επιλέξτε για να ενεργοποιήσετε τους ελέγχους DNS για αυτόν το domain" -#: 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 #, fuzzy #| msgid "No authorized MX record found for domain {}" msgid "{}: no authorized MX record found for domain" msgstr "Δεν βρέθηκε εξουσιοδοτημένη εγγραφή MX για το domain {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Μη έγκυρη τιμή quota για το domain '{}'" -#: 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 "Μη έγκυρη τιμή quota για το προεπιλεγμένο γραμματοκιβώτιο για το domain '{}'" +msgstr "" +"Μη έγκυρη τιμή quota για το προεπιλεγμένο γραμματοκιβώτιο για το domain '{}'" -#: 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 "Το προεπιλεγμένο quota για το γραμματοκιβώτιο δεν πρέπει να είναι μεγαλύτερο από το domain quota. " +msgstr "" +"Το προεπιλεγμένο quota για το γραμματοκιβώτιο δεν πρέπει να είναι μεγαλύτερο" +" από το domain quota. " -#: 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 "To domain στο οποίο αναφέρεται αυτό το ψευδώνυμο" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Άγνωστο domain %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Διεύθυνση γραμματοκιβωτίου (χωρίς το @domain.tld κομμάτι)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Σφάλμα κατά την ανάκτηση της τοποθεσίας του γραμματοκιβωτίου (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Ένα quota απαιτείται " -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -992,8 +1120,9 @@ msgstr "Υπέρβαση του domain quota" #: 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 "Κλείσιμο" @@ -1044,9 +1173,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 "Ψευδώνυμα domain" @@ -1081,7 +1210,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 "Δευτερεύον email" @@ -1090,7 +1219,7 @@ msgstr "Δευτερεύον email" 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 "Τηλέφωνο" @@ -1168,7 +1297,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 "Ημερομηνία" @@ -1194,9 +1323,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 "Ψευδώνυμο γραμματοκιβωτίου " @@ -1255,11 +1384,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 "Όχι" @@ -1267,7 +1397,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 "Ναι" @@ -1282,7 +1412,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 "Αφαίρεση αυτού του δικαιώματος" @@ -1319,13 +1449,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 "Προς" @@ -1356,9 +1486,10 @@ msgstr "απενεργοποιημένο" msgid "Automatically forward emails to another address" msgstr "Αυτόματη προώθηση των email σε άλλη διεύθυνση" -#: 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 "Ενημέρωση" @@ -1375,14 +1506,34 @@ msgid "Fullname/Recipient" msgstr "Όνομα/Παραλήπτης" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " msgstr "" "Εισάγετε ένα αρχείο CSV όπου οι γραμμές ακολουθούν μία από τις παρακάτω μορφές:
      • \n" "domain; όνομα; quota; προεπιλεγμένο quota γραμματοκιβωτίου;ενεργοποιημένα
      • domains; όνομα; target domain; ενεργοποιημένα
      • relaydomain; όνομα; target host;target port;υπηρεσία; ενεργοποιημένη; επαλήθευση παραληπτών

      Το πρώτο στοιχείο κάθε γραμμής είναι υποχρεωτικό και πρέπει να είναι ίσο με μία από τις προηγούμενες τιμές.

      Μπορείτε να χρησιμοποιήσετε διαφορετικό χαρακτήρα ως διαχωριστικό.

      " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " -msgstr "Εισάγεται ένα αρχείο CSV όπου οι γραμμές ακολουθούν μία από τις ακόλουθες μορφές:
      • account; login name; Κωδικός πρόσβασης; όνομα; επίθετο; ενεργοποιημένος; ομάδα; διεύθυνση; quota; [, domain, ...]
      • ψευδώνυμο; διεύθυνση; ενεργοποιημένος; παραλήπτης; παραλήπτης; ...

      Το πρώτο στοιχείο κάθε γραμμής είναι υποχρεωτικό και πρέπει να είναι ίδιο με μία από τις προηγούμενες τιμές.

      Μπορείτε να χρησιμοποιήσετε διαφορετικό χαρακτήρα ως διαχωριστικό." +msgid "" +"Provide a CSV file where lines respect one of the following formats:

        " +"
      • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " +msgstr "" +"Εισάγεται ένα αρχείο CSV όπου οι γραμμές ακολουθούν μία από τις ακόλουθες " +"μορφές:
      • account; login name; Κωδικός πρόσβασης; όνομα; επίθετο; " +"ενεργοποιημένος; ομάδα; διεύθυνση; quota; [, domain, ...]
      • " +"ψευδώνυμο; διεύθυνση; ενεργοποιημένος; παραλήπτης; παραλήπτης; " +"...

      Το πρώτο στοιχείο κάθε γραμμής είναι υποχρεωτικό και " +"πρέπει να είναι ίδιο με μία από τις προηγούμενες τιμές.

      Μπορείτε να " +"χρησιμοποιήσετε διαφορετικό χαρακτήρα ως διαχωριστικό." #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1410,7 +1561,9 @@ msgstr "Ενημερώθηκε" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Αυτή η διεύθυνση IP δεν αντιστοιχεί σε κανένα από τα έγκυρο MX που ορίζονται στις παραμέτρους" +msgstr "" +"Αυτή η διεύθυνση IP δεν αντιστοιχεί σε κανένα από τα έγκυρο MX που ορίζονται" +" στις παραμέτρους" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1418,109 +1571,127 @@ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " #: 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 ανίχνευσε ότι το domain %(domain)s είναι καταχωρημένος στους ακόλουθους παρόχους DNSBL:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Η Modoboa ανίχνευσε ότι το domain %(domain)s είναι καταχωρημένος στους " +"ακόλουθους παρόχους DNSBL:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." -msgstr "Η φήμη (reputation) του domain θα επηρεαστεί και υπάρχει πιθανότητα τα μηνύματα ηλεκτρονικού ταχυδρομείου που προέρχονται από αυτό να θεωρούνται ανεπιθύμητα. Θα πρέπει να επικοινωνήσετε με αυτούς τους παροχους και να τους ζητήσετε να σας βγάλουν από τη λίστα ανεπιθύμητων διευθύνσεων IP." +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 "" +"Η φήμη (reputation) του domain θα επηρεαστεί και υπάρχει πιθανότητα τα " +"μηνύματα ηλεκτρονικού ταχυδρομείου που προέρχονται από αυτό να θεωρούνται " +"ανεπιθύμητα. Θα πρέπει να επικοινωνήσετε με αυτούς τους παροχους και να τους" +" ζητήσετε να σας βγάλουν από τη λίστα ανεπιθύμητων διευθύνσεων IP." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "To Modoboa ανίχνευσε ότι το domain %(domain)s δεν έχει έγκυρη εγγραφή MX:" +msgstr "" +"To Modoboa ανίχνευσε ότι το domain %(domain)s δεν έχει έγκυρη εγγραφή MX:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Αναζήτηση" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Λίστα domains" -#: 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 "List Quotas" -#: 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 "Εμφάνιση των ταυτοτήτων του domain" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "Ψευδώνυμα (alias) domain " -#: 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 "Διαγραφή %s;" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No MX record for %s" msgstr "Έγραφες MX από{}" -#: 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 +#, fuzzy, python-format +#| msgid "MX records of {}" +msgid "No AAAA record for %s" +msgstr "Έγραφες MX από{}" + #: 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] "Το ψευδώνυμο διαγράφηκε" @@ -1530,36 +1701,36 @@ msgstr[1] "Ψευδώνυμο διαγράφηκε" msgid "MX records of {}" msgstr "Έγραφες MX από{}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Περίληψη DNSBL για{}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Το domain διαφράφηκε" msgstr[1] "Τα domains διαφράφηκαν" -#: 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 "Εξαγωγή των domain" -#: 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] "Ο λογαριασμός διαγράφηκε" msgstr[1] "Οι λογαριασμοί διαγράφηκαν" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Εισαγωγή των domain" @@ -1567,87 +1738,74 @@ msgstr "Εισαγωγή των domain" 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 #, fuzzy #| msgid "Invalid line" 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 -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 "Τοπικός" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (αδύναμο)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (αδύναμο)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (αδύναμο)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (αδύναμο)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "plain (αδύναμο)" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 -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 -msgid "Invalid syntax" -msgstr "Μη έγκυρη σύνταξη" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Λάθος αριθμός επαναλήψεων " - -#: 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 "Παλιός κωδικός" -#: 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 "Τοπικός" + +#: 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: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:557 +msgid "Invalid rounds number" +msgstr "Λάθος αριθμός επαναλήψεων " + +#: 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 "Επιτυχής είσοδος του χρήστη '%s'" -#: 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 "" @@ -1657,475 +1815,529 @@ 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 "Το backend που χρησιμοποιείται για πιστοποίηση" -#: 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 "Σχήμα που θα χρησιμοποιηθεί για την κρυπτογράφηση των κωδικών των λογαριασμών αλληλογραφίας" +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." -msgstr "Αριθμός επαναλήψεων (μόνο για sha256crypt και sha512crypt). Μπορεί να είναι από 1000 έως και 999999999" +#: 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 "" +"Αριθμός επαναλήψεων (μόνο για sha256crypt και sha512crypt). Μπορεί να είναι " +"από 1000 έως και 999999999" -#: core/app_settings.py:67 core/app_settings.py:749 +#: core/app_settings.py:71 core/app_settings.py:752 #, fuzzy #| msgid "Default password scheme" 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 #, fuzzy #| msgid "Default password scheme" 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 "Ρυθμίσεις 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 "Διεύθυνση εξυπηρετητή" -#: 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 "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή 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 "Πόρτα εξυπηρετητή" -#: 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 "Η TCP πόρτα λειτουργίας του εξυπηρετητή 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "The IP address or the DNS name of the LDAP server" msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή LDAP" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 #, fuzzy #| msgid "Server port" 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 #, fuzzy #| msgid "The TCP port number used by the LDAP server" msgid "The TCP port number used by the LDAP secondary server" msgstr "Η TCP πόρτα λειτουργίας του εξυπηρετητή LDAP" -#: 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 "Χρησιμοποιήστε μια σύνδεση SSL / STARTTLS για να συνδεθήκατε στον διακομιστή LDAP" +msgstr "" +"Χρησιμοποιήστε μια σύνδεση SSL / STARTTLS για να συνδεθήκατε στον διακομιστή" +" 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 "Active Directory" -#: 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 "Ο εξυπηρετητής LDAP είναι Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Groups Διαχειριστών" -#: 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 "Τα μέλη αυτών των LDAP Posix ομάδων χρηστών θα δημιουργηθούν ως διαχειριστές domain. Χρησιμοποιείστε τον χαραχτήρα ';' για να ξεχωρίσετε τις ομάδες." +#: 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 "" +"Τα μέλη αυτών των LDAP Posix ομάδων χρηστών θα δημιουργηθούν ως διαχειριστές" +" domain. Χρησιμοποιείστε τον χαραχτήρα ';' για να ξεχωρίσετε τις ομάδες." -#: 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 "Τύπος ομάδας LDAP που χρησιμοποιείται με τον κατάλογο σας." -#: 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 "Base αναζήτησης ομάδων χρηστών" -#: 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 "Το Base DN αναζήτησης ομάδων χρηστών" -#: 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 #, fuzzy #| msgid "Authentication method" 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 "Αναζήτηση χρήστη και bind" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Χρήση Bind DN" -#: 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 "Bind 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 "To distinguished name για το bind στον εξυπηρετητή LDAP. Αφήστε το κενό για anonymous" +#: 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 "" +"To distinguished name για το bind στον εξυπηρετητή LDAP. Αφήστε το κενό για " +"anonymous" -#: 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 "Bind κωδικός " -#: 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 "Ο κωδικός για το bind στον εξυπηρετητή LDAP (αντιστοιχεί στο 'Bind DN')" +msgstr "" +"Ο κωδικός για το bind στον εξυπηρετητή LDAP (αντιστοιχεί στο 'Bind 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 "Base αναζήτησης χρηστών" -#: 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 "Το Base DN αναζήτησης χρηστών" -#: 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." -msgstr "Προαιρετικό φίλτρο (π.χ. '(objectClass=person)'). Για να είναι έγκυρο πρέπει να περικλείεται σε παρενθέσεις." +#: 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 "" +"Προαιρετικό φίλτρο (π.χ. '(objectClass=person)'). Για να είναι έγκυρο πρέπει" +" να περικλείεται σε παρενθέσεις." -#: 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 "Πρότυπο για 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 "Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν placeholder (π.χ. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν " +"placeholder (π.χ. %(user)s)" -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "Ρυθμίσεις LDAP" -#: 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 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "Πρότυπο για DN χρηστών" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, fuzzy, 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 an account's DN. It should contain one placeholder (ie. %(user)s)" -msgstr "Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν placeholder (π.χ. %(user)s)" +#| msgid "" +#| "The template used to construct a user'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 "" +"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν " +"placeholder (π.χ. %(user)s)" -#: 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 #, fuzzy #| msgid "Password attribute" 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 #, fuzzy #| msgid "Enable communication" 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 "Κατά παραγγελία RSS feed" -#: 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 "Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα" +msgstr "" +"Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα" -#: 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 "Κρύβω τις λειτουργίες από τα widget" -#: 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 "Κρύβω τις λειτουργίες από τα widget για τους μεταπωλητές και τους διαχειριστές του τομέα" +msgstr "" +"Κρύβω τις λειτουργίες από τα widget για τους μεταπωλητές και τους " +"διαχειριστές του τομέα" -#: 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 "Email διεύθυνση που χρησιμοποιείται για την αποστολή υπενθυμίσεων " -#: 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" -#: 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 "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa" -#: 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 "Αποστολή στατιστικών στο public API του Motaboa (counters και used extensions)" +msgstr "" +"Αποστολή στατιστικών στο public API του Motaboa (counters και used " +"extensions)" -#: 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 #, fuzzy #| msgid "Inactive account threshold" 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 "Μέγιστος χρόνος καταγραφής των log" -#: 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 "Μέγιστη διάρκεια σε ημέρες καταγραφής των log" -#: 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 "Προκαθορισμένες αναδρομολογήσεις που χρησιμοποιούνται όταν δεν υπάρχουν προκαθορισμένες εφαρμογές" +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 "" @@ -2157,33 +2369,33 @@ 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 "Ενεργοποίηση πρόσβασης API" -#: core/forms.py:152 +#: core/forms.py:170 #, fuzzy #| msgid "Notifications" msgid "Verification code" msgstr "Υπενθύμιση " -#: core/forms.py:163 +#: core/forms.py:181 #, fuzzy #| msgid "Invalid line" msgid "Invalid code" @@ -2202,20 +2414,20 @@ msgstr "άλλαξε" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s του χρήστη %(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 από" -#: 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 "Εντολή διαχείρισης" @@ -2223,143 +2435,153 @@ 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 #, fuzzy #| msgid "One or more updates are available" msgid "[modoboa] Update(s) available" msgstr "Υπάρχουν διαθέσιμες ενημερώσεις" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Να επιτρέπεται η πρόσβαση σε γραμματοκιβώτια" -#: core/models.py:54 -msgid "Allow this administrator to access user mailboxes" -msgstr "Να επιτρέπεται σε αυτόν τον διαχειριστή η πρόσβαση στα γραμματοκιβώτια χρηστών" - #: core/models.py:57 +msgid "Allow this administrator to access user mailboxes" +msgstr "" +"Να επιτρέπεται σε αυτόν τον διαχειριστή η πρόσβαση στα γραμματοκιβώτια " +"χρηστών" + +#: 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 "Μια εναλλακτική e-mail διεύθυνση, μπορεί να χρησιμοποιηθεί για λόγους ανάκτησης." +msgstr "" +"Μια εναλλακτική e-mail διεύθυνση, μπορεί να χρησιμοποιηθεί για λόγους " +"ανάκτησης." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" -msgstr "Σφάλμα κατά την ενημέρωση του κωδικού: το LDAP module δεν είναι εγκατεστημένο" +msgstr "" +"Σφάλμα κατά την ενημέρωση του κωδικού: το LDAP module δεν είναι " +"εγκατεστημένο" -#: 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 "Δεν μπορείτε να εισάγετε έναν λογαριασμό με ρόλο μεγαλύτερο από τον δικό σας" +msgstr "" +"Δεν μπορείτε να εισάγετε έναν λογαριασμό με ρόλο μεγαλύτερο από τον δικό σας" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Ο απλός χρήστης '%s' πρέπει να έχει μια έγκυρη email διεύθυνση" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "Το όνομα χρήστη και το email δεν μπορεί να είναι διαφορετικά για τον '%s'" +msgstr "" +"Το όνομα χρήστη και το email δεν μπορεί να είναι διαφορετικά για τον '%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] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα ψηφίο" msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα ψηφίο" -#: 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] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} μικρά γράμματα." msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} μικρά γράμματα." -#: 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] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} κεφαλαία γράμματα." msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {}  κεφαλαία γράμματα." -#: 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] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα σπέσιαλ χαρακτήρα." msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα σπέσιαλ χαρακτήρα." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Ο κωδικός πρέπει να περιέχει ένα συνδυασμό από διαφορετικούς τύπους χαρακτήρων." +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 #, fuzzy #| msgid "Applications" msgid "Application key" msgstr "Εφαρμογές" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 #, fuzzy #| msgid "Applications" 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" @@ -2386,8 +2608,12 @@ msgid "Latest news" msgstr "Τελευταία νέα" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Επισκέψου τοεπίσιμο weblogγια περισσότερες πληροφορίες" +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Επισκέψου τοεπίσιμο " +"weblogγια περισσότερες πληροφορίες" #: core/templates/core/api_access.html:3 msgid "API access" @@ -2399,8 +2625,12 @@ msgstr "Ρυθμίσεις πρόσβασης στο API του Modoboa" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Οδηγίες για το API είναι διαθέσιμες εδώ" +msgid "" +"A documentation of the API is available here." +msgstr "" +"Οδηγίες για το API είναι διαθέσιμες εδώ" #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2411,7 +2641,7 @@ msgstr "Κωδικός πρόσβασης στο API" msgid "Hello %(user)s." msgstr "Για σου %(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 "Πληροφορίες" @@ -2425,7 +2655,9 @@ msgstr "Υπάρχουν διαθέσιμες ενημερώσεις!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Έλεγχος της ακόλουθης λίστας για εύρεση αρθρώματος(των) που μπορούν να αναβαθμιστούν." +msgstr "" +"Έλεγχος της ακόλουθης λίστας για εύρεση αρθρώματος(των) που μπορούν να " +"αναβαθμιστούν." #: core/templates/core/information.html:10 msgid "Applications" @@ -2443,7 +2675,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 "Καταγραφές" @@ -2471,7 +2703,7 @@ msgid_plural "" msgstr[0] "Υπάρχουν διαθέσιμες ενημερώσεις" msgstr[1] "Υπάρχουν διαθέσιμες ενημερώσεις" -#: 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 "Παράμετροι" @@ -2488,12 +2720,12 @@ msgstr "Αποθήκευση" msgid "Modoboa settings" msgstr "Ρυθμίσεις 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 "Ρυθμίσεις" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Προτιμήσεις" @@ -2515,7 +2747,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 #, fuzzy #| msgid "Security options" msgid "Security" @@ -2528,7 +2760,9 @@ msgid "Two-Factor authentication" msgstr "Το backend που χρησιμοποιείται για πιστοποίηση" #: 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 @@ -2542,18 +2776,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" @@ -2561,12 +2804,18 @@ msgstr "" 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 @@ -2585,69 +2834,75 @@ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Κρυπτογράφηση κωδικών" + #: 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 "Έξοδος" -#: 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 "Το βασικό μέρος του Modoboa" -#: 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 "Ρυθμίσεις DNS" -#: dmarc/forms.py:41 dmarc/forms.py:54 +#: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" msgstr "Ενεργοποίηση ανάστροφης αναζήτησης reverse lookups" -#: 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 "Ενεργοποίηση reverse DNS lookups (η αναφορές θα καθυστερούν)" -#: dmarc/forms.py:69 dmarc/forms.py:71 +#: dmarc/forms.py:74 dmarc/forms.py:78 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "Εργαλεία DMARC" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Εμφάνιση της έκθεσης DMARC του {}" -#: 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 "" @@ -2683,11 +2938,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 "Πρόβλημα Soft" @@ -2763,95 +3018,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 "" @@ -2880,7 +3135,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 @@ -2896,7 +3153,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2904,151 +3161,159 @@ 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 "Το πρόσβαση ενημερώθηκε" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "Μετάβαση IMAP" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "Μετάβαση IMAP" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "Ρυθμίσεις OfflineIMAP" -#: 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 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "Ρυθμίσεις OfflineIMAP" -#: 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 "Ρυθμίσεις OfflineIMAP" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "Ρυθμίσεις OfflineIMAP" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "Μετάβαση IMAP" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Παρουσιάστηκε σφάλμα στη σύνδεση με τον εξυπηρετητή IMAP: %s" -#: 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 "Μετάβαση IMAP" -#: 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 "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Δεν έχει ρυθμιστεί η σύνδεση με την βάση δεδομένων %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 "" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Δεν επιτρέπεται η πρόσβαση: %s" -#: 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 "Εισάγετε ένα έγκυρο όνομα domain" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Εισαγωγή μιας πραγματικής διεύθυνσης email." @@ -3058,133 +3323,186 @@ msgstr "Εισαγωγή μιας πραγματικής διεύθυνσης em msgid "Submit" msgstr "Αποστολή" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Αποτυχία ενημέρωσης κωδικού: {}" -#: 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 "Διαχειριστές domain" -#: 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 "Μέγιστος αριθμός επιτρεπτών διαχειριστών domain ενός νέου διαχειριστή. (0 για καμία δημιουργία, -1 για απεριόριστες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός επιτρεπτών διαχειριστών domain ενός νέου διαχειριστή. (0 " +"για καμία δημιουργία, -1 για απεριόριστες δημιουργίες)" -#: 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 "Μέγιστος αριθμός επιτρεπτών domain ενός νέου διαχειριστή. (0 για καμία δημιουργία, -1 για απεριόριστες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός επιτρεπτών domain ενός νέου διαχειριστή. (0 για καμία " +"δημιουργία, -1 για απεριόριστες δημιουργίες)" -#: 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 "Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα για domain, για νέους διαχειριστές. (Το 0 δεν επιτρέπει κανένα, το -1 επιτρέπει απεριόριστα) " +#: 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 "" +"Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα για domain, για νέους " +"διαχειριστές. (Το 0 δεν επιτρέπει κανένα, το -1 επιτρέπει απεριόριστα) " -#: 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 "Μέγιστος αριθμός επιτρεπτών γραμματοκιβωτίων ενός νέου διαχειριστή. (0 για καμία δημιουργία, -1 για απεριόριστες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός επιτρεπτών γραμματοκιβωτίων ενός νέου διαχειριστή. (0 για " +"καμία δημιουργία, -1 για απεριόριστες δημιουργίες)" -#: 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 "Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα για νέους διαχειριστές. (Το 0 δεν επιτρέπει κανένα, το -1 επιτρέπει απεριόριστα) " +#: 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 "" +"Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα για νέους διαχειριστές. (Το 0 " +"δεν επιτρέπει κανένα, το -1 επιτρέπει απεριόριστα) " -#: 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 "To quota που ένας μεταπωλητής επιτρέπεται να μοιράζει μεταξύ των domains που δημιουργεί. (0 σημαίνει χωρίς 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 "" +"To quota που ένας μεταπωλητής επιτρέπεται να μοιράζει μεταξύ των domains που" +" δημιουργεί. (0 σημαίνει χωρίς quota)" -#: 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 "Προκαθορισμένα ανά domain όρια" -#: 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 "Ενεργοποίηση ορίων ανά domain" -#: 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 "Ενεργοποίηση ή απενεργοποίηση ορίων ανά domain" -#: 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 "Μέγιστος αριθμός από επιτρεπόμενους διαχειριστές domain για ένα νέο domain. (0 απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός από επιτρεπόμενους διαχειριστές domain για ένα νέο domain. " +"(0 απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" -#: 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 "Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα domain για ένα νέο domain. (0 απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα domain για ένα νέο domain. (0 " +"απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" -#: 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 "Μέγιστος αριθμός από επιτρεπόμενα γραμματοκιβώτια για ένα νέο domain. (0 απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός από επιτρεπόμενα γραμματοκιβώτια για ένα νέο domain. (0 " +"απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" -#: 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 "Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα για ένα νέο domain. (0 απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" +#: 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 "" +"Μέγιστος αριθμός από επιτρεπόμενα ψευδώνυμα για ένα νέο domain. (0 " +"απαγορεύει την δημιουργία, -1 επιτρέπει άπειρες δημιουργίες)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Όρια" -#: limits/constants.py:10 -msgid "Maximum number of domains this user can create" -msgstr "Ο μέγιστος αριθμός domain που μπορούν να δημιουργηθούν από αυτόν τον χρήστη" - #: limits/constants.py:14 +msgid "Maximum number of domains this user can create" +msgstr "" +"Ο μέγιστος αριθμός domain που μπορούν να δημιουργηθούν από αυτόν τον χρήστη" + +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "Ο μέγιστος αριθμός από ψευδώνυμα domain που ο συγκεκριμένος χρήστης μπορεί να δημιουργήσει" +msgstr "" +"Ο μέγιστος αριθμός από ψευδώνυμα domain που ο συγκεκριμένος χρήστης μπορεί " +"να δημιουργήσει" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" -msgstr "Ο μέγιστος αριθμός γραμματοκυβωτίων που μπορούν να δημιουργηθούν από αυτόν τον χρήστη" +msgstr "" +"Ο μέγιστος αριθμός γραμματοκυβωτίων που μπορούν να δημιουργηθούν από αυτόν " +"τον χρήστη" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Ο μέγιστος αριθμός από ψευδώνυμα γραμματοκιβώτιον που ο συγκεκριμένος χρήστης μπορεί να δημιουργήσει. " +msgstr "" +"Ο μέγιστος αριθμός από ψευδώνυμα γραμματοκιβώτιον που ο συγκεκριμένος " +"χρήστης μπορεί να δημιουργήσει. " -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Ο μέγιστος αριθμός διαχειριστών domain που μπορούν να δημιουργηθούν από αυτόν τον χρήστη" +msgstr "" +"Ο μέγιστος αριθμός διαχειριστών domain που μπορούν να δημιουργηθούν από " +"αυτόν τον χρήστη" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Διαμοιραζόμενο quota μεταξύ των domains του μεταπωλητή" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." -msgstr "Μέγιστος αριθμός από ψευδώνυμα domain που επιτρέπονται για αυτό το domain" +msgstr "" +"Μέγιστος αριθμός από ψευδώνυμα domain που επιτρέπονται για αυτό το domain" -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." -msgstr "Μέγιστος αριθμός από γραμματοκιβώτια που επιτρέπονται για αυτό το domain." +msgstr "" +"Μέγιστος αριθμός από γραμματοκιβώτια που επιτρέπονται για αυτό το domain." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Μέγιστος αριθμός από ψευδώνυμα γραμματοκιβωτίων που επιτρέπονται για αυτό το domain. " +msgstr "" +"Μέγιστος αριθμός από ψευδώνυμα γραμματοκιβωτίων που επιτρέπονται για αυτό το" +" domain. " -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "Μέγιστος αριθμός διαχειριστών domain για αυτό το domain" -#: 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 "Πόροι" @@ -3197,11 +3515,11 @@ msgstr "%s: χρήση ορίου" 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 "χωρίς περιορισμούς" @@ -3210,95 +3528,97 @@ 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 "Κατάλογος αρχείων για την αποθήκευση των αρχείων RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Διαδρομή προς τον κατάλογο αρχείων για την αποθήκευση αρχείων RRD" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Εμφάνιση μηνυμάτων greylisted" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" -msgstr "Διαφοροποίηση μεταξύ σκληρών (hard) και μαλακών (soft) απορρίψεων (greylisting)" +msgstr "" +"Διαφοροποίηση μεταξύ σκληρών (hard) και μαλακών (soft) απορρίψεων " +"(greylisting)" -#: 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 "Αδυναμία εύρεσης του εκτελέσουμε rrdtool." -#: 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 "Μηνύματα bounced " -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "απορριφθέντα μηνύματα" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "" "Μηνύματα με ιούς \n" " " -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "Διαφημιστικά μηνύματα" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "" "Μηνύματα που είναι greylisted\n" " " -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Μέσος όρος φυσιολογικού traffic (bytes/min) " -#: 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 "Κίνηση Mail" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Μέσος όρος δημιουργίας λογαριασμών (λογαριασμοί/ώρα)" @@ -3326,183 +3646,194 @@ 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 #, fuzzy #| msgid "Unknown graphic set" 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 #, fuzzy #| msgid "Domain not found." msgid "Directory is not writable" msgstr "To domain δεν βρέθηκε." -#: 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 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "Διαπιστευτήρια PDF" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" 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 "Κατάλογος αρχείων για την αποθήκευση PDF εγγράφων" -#: 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." -msgstr "Δημιουργία νέου εγγράφου μόνο κατά την δημιουργία νέου λογαριασμού. Εάν επιλέξετε όχι, ένα νέο έγγραφο θα δημιουργείται κάθε φορά που ο κωδικός χρήστη ενημερώνεται." +#: 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 "Διεύθυνση Web panel" -#: 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 "URL του Modoboa web panel" -#: 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" -msgstr "Συμπεριέλαβε της απαιτούμενες ρυθμίσης SMTP και IMAP για διασύνδεση με προγράμματα emai, τάμπλετ και τηλέφωνα" +#: 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 "" +"Συμπεριέλαβε της απαιτούμενες ρυθμίσης SMTP και IMAP για διασύνδεση με " +"προγράμματα emai, τάμπλετ και τηλέφωνα" -#: 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 "Διεύθυνση SMTP Server" -#: 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 "Διεύθυνση από τον SMTP server (hostname ή IP)" -#: 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 "Θύρα SMTP server" -#: 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 "Οι θύρες που ακούει ό SMTP Server" -#: 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 "Ασφάλεια σύνδεσης SMTP" -#: 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 "Διεύθυνση IMAP server" -#: 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 "Διεύθυνση του IMAP server (hostname ή IP)" -#: 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 "θύρα IMAP Server" -#: 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 "Η θύρα που ακούει ο IMAP Server" -#: 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 "Ασφάλεια σύνδεσης IMAP" @@ -3510,17 +3841,17 @@ msgstr "Ασφάλεια σύνδεσης IMAP" msgid "PDF credentials" msgstr "Διαπιστευτήρια PDF" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "Διαπιστευτήρια PDF" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Powered by Modoboa - Mail hosting made simple" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3534,11 +3865,11 @@ msgstr "" "Αποστηθίστε το περιεχόμενο και διαγράψτε το έγγραφο\n" "το συντομότερο δυνατόν.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Web panel:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3548,62 +3879,234 @@ msgstr "" "Εδώ μπορείτε να προβάλετε τα ηλεκτρονικά σας μηνύματα σε πραγματικό χρόνο, να δημιουργήσετε φίλτρα ή να διαχειριστείτε\n" " τις επαφές σας.\n" -#: 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 "Ρυθμίσεις: PC/Tablet/Smartphone " -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." -msgstr "Χρησιμοποιήστε αυτές τις ρυθμίσεις για τον υπολογιστή, το tablet ή το τηλέφωνό σας." +msgstr "" +"Χρησιμοποιήστε αυτές τις ρυθμίσεις για τον υπολογιστή, το tablet ή το " +"τηλέφωνό σας." -#: 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 "Ανάκτηση διαπιστευτηρίων χρήστη σε αρχείο PDF" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "Διαπιστευτήρια PDF" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" -msgstr "Σφάλμα στην δημιουργία του καταλόγου αρχείων για την αποθήκευση PDF εγγράφων (%s)" +msgstr "" +"Σφάλμα στην δημιουργία του καταλόγου αρχείων για την αποθήκευση PDF εγγράφων" +" (%s)" #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" -msgstr "Σφάλμα στην δημιουργία του καταλόγου αρχείων για την αποθήκευση PDF εγγράφων (%s)" +msgstr "" +"Σφάλμα στην δημιουργία του καταλόγου αρχείων για την αποθήκευση PDF εγγράφων" +" (%s)" -#: 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: χρήση ορίου" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: χρήση ορίου" + +#: 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 "Αυτή η ημερομηνία έχει παρέλθει" + +#: 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 "Πρέπει να είναι μεγαλύτερη από την ημερομηνία έναρξης" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +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 "" +"Ενεργοποίηση της αυτόματης απάντησης από αυτήν την ημερομηνία. Μορφή : " +"YYYY-MM-DD HH:mm:ss" + +#: 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 "" +"Ενεργοποίηση της αυτόματης απάντησης μέχρι αυτήν την ημερομηνία. Μορφή : " +"YYYY-MM-DD HH:mm:ss" + +#: 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 "Προεπιλεγμένο περιεχόμενο" + +#: 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 "" +"Αυτή την στιγμή είμαι εκτός γραφείου. Θα σας απαντήσω μόλις επιστρέψω.\n" +"\n" +"Φιλικά,\n" +"%(name)s\n" + +#: 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 "" +"Το προεπιλεγμένο κείμενο που θα χρησιμοποιείται στις αυτόματες απαντήσεις. " +"Το macro '%(name)s' αντικαθίσταται από το όνομα του χρήστη. " + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Κείμενο αυτόματης απάντησης" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Αυτόματη απάντηση" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "τίτλος" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Ο τίτλος που θα φαίνεται στα απεσταλμένα email" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "περιεχόμενο" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Το κείμενο που θα φαίνεται στα απεσταλμένα email" + +#: 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 #, fuzzy #| msgid "Relay settings" msgid "Transport settings" msgstr "Ρυθμίσεις Relay" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "Διεύθυνση κεντρικού host" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "Θύρα κεντρικού host" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "επιβεβαίωση παραληπτών" @@ -3673,16 +4176,24 @@ msgstr "Ξέχασα των κωδικό;" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Ο κωδικός σου έχει οριστεί. Για να εισαγωγή πηγαίνετε στο ." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Ο κωδικός σου έχει οριστεί. Για να εισαγωγή πηγαίνετε στο ." #: templates/registration/password_reset_confirm.html:7 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." -msgstr "Ο σύνδεσμος για την επαναφορά του κωδικού ήταν άκυρος, πιθανότατα γιατί είχε είδη χρησιμοποιηθεί. Παρακαλώ ζητήστε μια νέα επαναφορά κωδικού." +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 msgid "Enter the code you've just received by SMS" @@ -3693,19 +4204,36 @@ 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 "Σας έχουμε αποστείλει με ηλεκτρονικό ταχυδρομείο οδηγίες για να ορίσετε των κωδικό σας, εφόσον υπάρχει ένας λογαριασμός με το διεύθυνση ηλεκτρονικής αλληλογραφίας που καταχωρήσατε. Θα πρέπει να το λάβετε σύντομα.

      Εάν δεν λάβατε το email, παρακαλώ συγουρευτείτε ότι εισάγατε σωστά την διεύθυνση σας και ελέγξτε τον φάκελο τον Spam σας.

      " +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 "" +"Σας έχουμε αποστείλει με ηλεκτρονικό ταχυδρομείο οδηγίες για να ορίσετε των " +"κωδικό σας, εφόσον υπάρχει ένας λογαριασμός με το διεύθυνση ηλεκτρονικής " +"αλληλογραφίας που καταχωρήσατε. Θα πρέπει να το λάβετε σύντομα.

      Εάν " +"δεν λάβατε το email, παρακαλώ συγουρευτείτε ότι εισάγατε σωστά την διεύθυνση" +" σας και ελέγξτε τον φάκελο τον Spam σας.

      " #: 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 "Για να ενεργοποιήσετε την διαδικασία επαναφοράς κωδικού για το λογαριασμό του Modaboa %(username)s, παρακαλώ πατήστε στον ακόλουθο σύνδεσμο:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Για να ενεργοποιήσετε την διαδικασία επαναφοράς κωδικού για το λογαριασμό " +"του Modaboa %(username)s, παρακαλώ πατήστε στον ακόλουθο σύνδεσμο:" #: 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 "Εφόσον ο παρακάτω σύνδεσμος δεν λειτουργεί, αντιγράψτε και επικολλήστε το σύνδεσμο URL σε ένα νέο παράθυρο φύλλομετρητή. " +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Εφόσον ο παρακάτω σύνδεσμος δεν λειτουργεί, αντιγράψτε και επικολλήστε το " +"σύνδεσμο URL σε ένα νέο παράθυρο φύλλομετρητή. " #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3724,22 +4252,36 @@ msgstr "Ο κωδικός του Μοdaboa επαναφέρθηκε" msgid "Invalid value" msgstr "Διεύθυνση κεντρικού υπολογιστή target host" -#: 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 "" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: χρήση ορίου" +#~ msgid "An alias with this name already exists." +#~ msgstr "Υπάρχει είδη αυτό το ψευδώνυμο" + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (αδύναμο)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (αδύναμο)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (αδύναμο)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (αδύναμο)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (αδύναμο)" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Ένα σετ εργαλείων για την απλοποίηση της ενσωμάτωσης του DMARC" @@ -3748,7 +4290,6 @@ msgstr "" #~ msgstr "Δημιουργία PDF εγγράφων που να περιέχουν τα διαπιστευτήρια χρηστών" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "Μετάβαση IMAP" @@ -3756,13 +4297,16 @@ msgstr "" #~ msgstr "Μετάβαση IMAP με χρήση του OfflineIMAP" #~ msgid "Migrate existing mailboxes using IMAP and OfflineIMAP" -#~ msgstr "Μετάβαση υπαρχόντων γραμματοκιβωτίων με χρήση IMAP και του OfflineIMAP" +#~ msgstr "" +#~ "Μετάβαση υπαρχόντων γραμματοκιβωτίων με χρήση IMAP και του OfflineIMAP" #~ msgid "Secret key" #~ msgstr "Μυστικό κλειδί" #~ msgid "Key used to encrypt/decrypt passwords" -#~ msgstr "Το κλειδί που χρησιμοποιείται για την κρυπτογράφηση/αποκρυπτογράφηση των κωδικών" +#~ msgstr "" +#~ "Το κλειδί που χρησιμοποιείται για την κρυπτογράφηση/αποκρυπτογράφηση των " +#~ "κωδικών" #~ msgid "Key must be either 16, 24, or 32 bytes long" #~ msgstr "Το κλειδί πρέπει να είναι μεγέθους 16, 24 ή 32 bytes" @@ -3801,14 +4345,15 @@ msgstr "" #~ msgstr "Ο ιδιοκτήτης των γραμματοκιβωτίων" #~ msgid "The UNIX account who owns mailboxes on the filesystem" -#~ msgstr "Ο UNIX λογαριασμός που είναι ιδιοκτήτης των γραμματοκιβωτίων στο σύστημα αρχείων" +#~ msgstr "" +#~ "Ο UNIX λογαριασμός που είναι ιδιοκτήτης των γραμματοκιβωτίων στο σύστημα " +#~ "αρχείων" #, python-format #~ msgid "Domain '%s' does not exist" #~ msgstr "Το domain '%s' δεν υπάρχει" #, fuzzy -#~| msgid "Invalid format" #~ msgid "Raw format" #~ msgstr "Λάθος μορφοποίηση" @@ -3819,30 +4364,27 @@ msgstr "" #~ msgstr "Όνομα αρχείου" #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No {type} record found for MX {mx}" #~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No A record found for MX %(domain)s" #~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No AAAA record found for MX %(domain)s" #~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " #~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota." -#~ msgstr "Κοινόχρηστο quota σε MB μεταξύ γραμματοκιβωτίων. Μια τιμή 0 σημαίνει ότι δεν υπάρχει quota. " +#~ msgstr "" +#~ "Κοινόχρηστο quota σε MB μεταξύ γραμματοκιβωτίων. Μια τιμή 0 σημαίνει ότι δεν" +#~ " υπάρχει quota. " #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No DNS records found without MX for %s" #~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No DNS records found without MX for %(domain)s" #~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " diff --git a/modoboa/locale/en/LC_MESSAGES/django.po b/modoboa/locale/en/LC_MESSAGES/django.po index cb76e9e19..234071268 100644 --- a/modoboa/locale/en/LC_MESSAGES/django.po +++ b/modoboa/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,480 +17,533 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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 +#: 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 "" @@ -503,69 +556,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 @@ -574,51 +635,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 "" @@ -626,23 +689,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 "" @@ -650,7 +713,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 "" @@ -658,93 +721,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 "" @@ -753,23 +816,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 "" @@ -778,148 +841,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 "" @@ -975,9 +1035,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 "" @@ -1012,7 +1072,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 "" @@ -1021,7 +1081,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 "" @@ -1099,7 +1159,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 "" @@ -1123,9 +1183,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,7 +1245,7 @@ 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 "" @@ -1193,7 +1253,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 "" @@ -1206,7 +1266,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 "" @@ -1243,13 +1303,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 "" @@ -1280,9 +1340,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 "" @@ -1299,11 +1360,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:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1340,11 +1414,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 @@ -1356,90 +1435,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] "" @@ -1449,36 +1533,36 @@ msgstr[1] "" 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1486,83 +1570,69 @@ 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 "" @@ -1572,450 +1642,477 @@ 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 "" @@ -2047,31 +2144,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 "" @@ -2088,20 +2185,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 "" @@ -2109,137 +2206,137 @@ 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 msgid "Failed to update password: LDAP module not installed" msgstr "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 "" @@ -2264,7 +2361,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 @@ -2277,7 +2376,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 @@ -2289,7 +2390,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 "" @@ -2321,7 +2422,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 "" @@ -2347,7 +2448,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: 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 "" @@ -2364,12 +2465,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 "" @@ -2389,7 +2490,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 "" @@ -2398,7 +2499,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 @@ -2410,28 +2513,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 @@ -2446,67 +2564,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 "" @@ -2542,11 +2664,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 "" @@ -2618,95 +2740,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 "" @@ -2735,7 +2857,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 @@ -2751,7 +2875,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2759,136 +2883,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 "" -#: 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 #, 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 "" @@ -2898,133 +3030,153 @@ msgstr "" msgid "Submit" msgstr "" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "" -#: 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 "" @@ -3037,11 +3189,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 "" @@ -3050,91 +3202,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 "" @@ -3162,175 +3314,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 "" @@ -3338,15 +3496,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" @@ -3355,38 +3513,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 "" @@ -3395,27 +3559,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 "" @@ -3483,7 +3776,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 @@ -3491,7 +3786,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 @@ -3503,18 +3800,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 @@ -3534,14 +3839,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/es/LC_MESSAGES/django.po b/modoboa/locale/es/LC_MESSAGES/django.po index 02f8a17df..433a4cb9e 100644 --- a/modoboa/locale/es/LC_MESSAGES/django.po +++ b/modoboa/locale/es/LC_MESSAGES/django.po @@ -16,7 +16,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: Spanish (http://www.transifex.com/tonio/modoboa/language/es/)\n" @@ -26,525 +26,620 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." +msgstr "" +"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." -#: admin/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 "Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." +msgstr "" +"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." -#: admin/api/v1/serializers.py:73 admin/forms/domain.py:108 +#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 #, fuzzy #| msgid "No MX record found for this domain." msgid "No authorized MX record found for this domain" msgstr "No se encontró ningún registro MX para este dominio." -#: admin/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 "No puede superar la cuota de dominio" -#: 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 "Permiso denegado." -#: 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 "Este campo es obligatorio" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Lista de dominios administrados (sólo distribuidores y administradores de dominio)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Lista de dominios administrados (sólo distribuidores y administradores de " +"dominio)." -#: 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 "No estás autorizado para esta función." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Debe ser igual a la dirección completa del buzón" -#: 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 "Este campo es obligatorio." -#: 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 "El dominio local {} no existe" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Lista de destinatarios" -#: 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 "El usuario '%s' ya existe" + +#: admin/api/v1/serializers.py:565 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this domain." msgstr "No tienes acceso a este dominio" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this mailbox." msgstr "No tienes acceso a este dominio" -#: 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 "El usuario '%s' ya existe" -#: 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 "Debe ser un entero positivo" -#: 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 #, fuzzy #| msgid "Domain not found." msgid "Directory not found." msgstr "Dominio no encontrado." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Domain not found." msgid "Directory non-writable" msgstr "Dominio no encontrado." -#: 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 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Es obligatorio un buzón" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Desconocido" -#: 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 "No tienes acceso a este dominio" -#: 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 "No puedo eliminar su propio dominio" -#: 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 "Dominios" -#: 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 "Habilitar comprobación 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 "Compruebe que cada dominio tenga un registro MX válido" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "MX Validos" -#: 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 "Una lista de IP o dirección de red, cada registro MX debe coincidir. Se enviará una advertencia si un registro no la respeta." +#: admin/app_settings.py: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 "" +"Una lista de IP o dirección de red, cada registro MX debe coincidir. Se " +"enviará una advertencia si un registro no la respeta." -#: admin/app_settings.py: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 +#, fuzzy +#| msgid "Enable DNS checks" +msgid "Enable IPV6 checks" +msgstr "Activar comprobación de 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 "Activar comprobación de 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 "Compruebe que cada dominio tenga un registro MX válido" -#: 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 "Habilitar comprobación 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 "Compruebe que cada dominio tenga un registro MX válido" -#: 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 "Habilitar comprobación 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 "Compruebe que cada dominio tenga un registro MX válido" -#: 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 "Habilitar comprobación 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 "Compruebe que cada dominio tenga un registro MX válido" -#: 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 "Habilitar comprobación 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 "Compruebe cada dominio con los principales proveedores de DNSBL" -#: 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 "Cuota del dominio por defecto" -#: 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 "Cuota por defecto (en MB) que se aplica a la creación de nuevos dominios que no tuvieran un valor especificado. Un valor de 0 significa que no hay cuota." +#: admin/app_settings.py: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 "" +"Cuota por defecto (en MB) que se aplica a la creación de nuevos dominios que" +" no tuvieran un valor especificado. Un valor de 0 significa que no hay " +"cuota." -#: admin/app_settings.py: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 "Cuota del dominio por defecto" -#: 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 "Mailboxes" -#: 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 "Manejar mailboxes en el sistema de fichero" -#: 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 "Renombrar o eliminar mailboxes en el sistema de ficheros cuando sean renombrados o eliminados dentro de 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 "" +"Renombrar o eliminar mailboxes en el sistema de ficheros cuando sean " +"renombrados o eliminados dentro de 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 "Cuota de mailbox por defecto" -#: 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 "La cuota de mailbox por defecto (en MB) se aplica a los dominios nuevos que no especifican este valor. Un valor de 0 significa ningún limite." +#| 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 "" +"La cuota de mailbox por defecto (en MB) se aplica a los dominios nuevos que " +"no especifican este valor. Un valor de 0 significa ningún limite." -#: admin/app_settings.py: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 "Cuota de mailbox por defecto" -#: 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 "Elminar cuentas automáticamente" -#: 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 "Cuando un mailbox es eliminado, también lo es su cuenta asociada." -#: 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 "Creación automática de dominio/buzón" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Crear un dominio y un buzón cuando se cree automáticamente una cuenta." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Crear un dominio y un buzón cuando se cree automáticamente una cuenta." -#: admin/app_settings.py: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 +#: 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 "La cuota de mailbox por defecto (en MB) se aplica a los dominios nuevos que no especifican este valor. Un valor de 0 significa ningún limite." +#| 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 "" +"La cuota de mailbox por defecto (en MB) se aplica a los dominios nuevos que " +"no especifican este valor. Un valor de 0 significa ningún limite." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administración" -#: 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 "Dominio" -#: admin/constants.py:29 +#: admin/constants.py:24 #, fuzzy msgid "Relay domain" msgstr "Nuevo dominio" -#: 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 "Nombre de usuario" -#: 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 "El nombre del usuario. Debe ser una dirección de 'e-mail' válida para usuarios simples o administradores con un buzón." +#: admin/forms/account.py:31 +msgid "" +"The user's name. Must be a valid e-mail address for simple users or " +"administrators with a mailbox." +msgstr "" +"El nombre del usuario. Debe ser una dirección de 'e-mail' válida para " +"usuarios simples o administradores con un buzón." -#: admin/forms/account.py: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 "Función" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Elija" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Qué nivel de permiso tendrá este usuario" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 #, fuzzy #| msgid "Random address" msgid "Random password" msgstr "Dirección aleatoria" -#: 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 "Contraseña" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Confirmación" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Introduzca la misma contraseña que arriba, para verificación." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Activado" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Sólo se permiten superadministradores para este modo" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Las contraseñas no concuerdan" -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "No puede deshabilitar su propia cuenta" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "Email" -#: 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 "Cuota" -#: admin/forms/account.py:236 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgstr "Cuota en MB para este mailbox. Defina un valor por defecto o use el del dominio por defecto. Déjelo vacío para definir un valor ilimitado (no permitido para los administradores del dominio)" +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "" +"Cuota en MB para este mailbox. Defina un valor por defecto o use el del " +"dominio por defecto. Déjelo vacío para definir un valor ilimitado (no " +"permitido para los administradores del dominio)" -#: admin/forms/account.py: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" -#: 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(es) de este buzón. Indique sólo una dirección por entrada, presione ENTER para agregar una nueva entrada. Para crear un alias catchall, simplemente ingrese el nombre de dominio (@ 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(es) de este buzón. Indique sólo una dirección por entrada, presione " +"ENTER para agregar una nueva entrada. Para crear un alias catchall, " +"simplemente ingrese el nombre de dominio (@ domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Direcciónes de remitente" -#: 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 "Dirección(es) adicional (es) del remitente para esta cuenta. El usuario podrá enviar correos electrónicos utilizando esta dirección, aunque no exista localmente. Indique una dirección por entrada. Presione ENTER para agregar una nueva entrada." +#: 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 "" +"Dirección(es) adicional (es) del remitente para esta cuenta. El usuario " +"podrá enviar correos electrónicos utilizando esta dirección, aunque no " +"exista localmente. Indique una dirección por entrada. Presione ENTER para " +"agregar una nueva entrada." -#: 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 "El dominio no existe" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "El dominio no existe" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Dominio(s)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Dominio(s) que el usuario administra" -#: 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 "General" -#: 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 "Perfil" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Correo" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Permisos" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Cuenta actualizada" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nueva cuenta" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Cuenta creada" @@ -557,71 +652,87 @@ msgid "Email address" msgstr "Dirección de email" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "La dirección del alias. Para crear un alias catchall, simplemente ingrese el nombre de dominio (@ domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"La dirección del alias. Para crear un alias catchall, simplemente ingrese el" +" nombre de dominio (@ domain.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Destinatarios" -#: 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 "Las direcciones a las que apunta este alias. Indique sólo una dirección por entrada, presione ENTER para agregar una nueva entrada." +#: admin/forms/alias.py:34 +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Las direcciones a las que apunta este alias. Indique sólo una dirección por " +"entrada, presione ENTER para agregar una nueva entrada." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "No ha puesto destinatario" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Tipo" -#: 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 "Alia(s) de este dominio. Indique únicamente un nombre por entrada, presione ENTER para añadir una nueva entrada." +#: 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 "" +"Alia(s) de este dominio. Indique únicamente un nombre por entrada, presione " +"ENTER para añadir una nueva entrada." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:52 +#: admin/forms/domain.py:57 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias del dominio" -#: 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 "Ya existe un %s con ese nombre" -#: 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 "No puede definir una cuota ilimitada." -#: 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 "dominio" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Crear un administrador del dominio" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Automáticamente crear una administrador para este dominio" -#: 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 @@ -630,53 +741,57 @@ msgstr "Automáticamente crear una administrador para este dominio" msgid "Name" msgstr "Nombre" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "El nombre del administrador. No incluya el nombre del dominio aquí, será añadido automáticamente." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"El nombre del administrador. No incluya el nombre del dominio aquí, será " +"añadido automáticamente." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 #, fuzzy #| msgid "Create a mailbox for the administrator." msgid "Generate a random password for the administrator." msgstr "Crear mailbox para el administrador." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Con una mailbox" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Crear mailbox para el administrador." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Crear alias" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Automáticamente crear alias estándar para este dominio" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Formato inválido" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Dominio modificado" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opciones" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Nuevo dominio" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Dominio creado" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Separador" @@ -684,23 +799,23 @@ msgstr "Separador" msgid "Recipient(s)" msgstr "Destinatario(s)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Indique uno o más destinatarios separados por una ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Mantener copias locales" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Reenvía mensajes y guarda copias en su mailbox local" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Seleccione un fichero" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Continúe en error." @@ -708,104 +823,106 @@ msgstr "Continúe en error." msgid "Don't treat duplicated objects as error" msgstr "No tratar objetos duplicados como error" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Contraseñas cifradas" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Marque esta opción si las contraseñas que contiene su fichero no están cifradas" +msgstr "" +"Marque esta opción si las contraseñas que contiene su fichero no están " +"cifradas" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Falló la importación de la cuenta (%s): el dominio no existe" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "El buzón {} ya existe" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Error en la importación de la cuenta (%s): valor de cuota incorrecto" -#: admin/handlers.py: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 "Identidades" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Siguiente" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Es obligatorio un buzón" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "No está autorizado para importar dominios" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "No está autorizado para importar alias de dominio." -#: 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 MX record found for this domain." msgid "No DNS record found for %s" msgstr "No se encontró ningún registro MX para este dominio." -#: admin/lib.py:202 +#: admin/lib.py:204 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No %(type)s record for %(name)s" msgstr "Registros MX de {}" -#: 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 #, fuzzy, python-brace-format #| msgid "Invalid quota value for domain '{}'" msgid "Invalid IP address format for {domain}; {addr}" msgstr "Cuota inválida para dominio '{}'" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "El objeto ya existe: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objetos importados con éxito" -#: 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 "" @@ -814,27 +931,27 @@ 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 #, fuzzy #| msgid "Domain {} has no MX record" msgid "Domain has no MX record" msgstr "El dominio {} no tiene registro MX" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "El dominio {} no tiene registro MX" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 #, fuzzy #| msgid "MX records of {}" msgid "Invalid MX record: {}" msgstr "Registros MX de {}" -#: 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 "El registro MX para el dominio {0} no es válido: {1}" @@ -843,160 +960,155 @@ msgstr "El registro MX para el dominio {0} no es válido: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX problema(s) para el dominio {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL problema(s) para el dominio {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Dominio no encontrado." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Ya existe un alias con este nombre" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "dirección" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "La dirección del 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 "activado" -#: 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 "Marcar para activar este alias" -#: 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 "Descripción" -#: 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 "Caduca en" -#: 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 "Dirección inválida" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Receptor local {}@{} no encontrado" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Línea inválida: %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 "nombre" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Nombre del dominio" -#: 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 "Marcar para activar este dominio" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Activar comprobación de DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Seleccionar para activar la comprobación de DNS para este dominio" -#: admin/models/domain.py: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 "Línea inválida" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 #, fuzzy #| msgid "No MX record found for this domain." msgid "{}: no authorized MX record found for domain" msgstr "No se encontró ningún registro MX para este dominio." -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Cuota inválida para dominio '{}'" -#: 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 "Cuota de mailbox por defecto inválida para dominio '{}'" -#: 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 "La cuota de mailbox por defecto no puede superar la cuota de dominio" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Nombre del alias" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "objetivo" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "El dominio al que este alias apunta" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Dominio desconocido %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Dirección del mailbox (sin la parte @dominio.tld)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Fallo al recuperar la localización del mailbox (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Una cuota es obligatoria" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -1006,8 +1118,9 @@ msgstr "Cuota de dominio excedida" #: 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 "Cerrar" @@ -1058,9 +1171,9 @@ msgstr "Cantidad" #: 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 "Alias del dominio" @@ -1095,7 +1208,7 @@ msgstr "Creado" msgid "Last login" msgstr "Último acceso" -#: 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 "Email secundario" @@ -1104,7 +1217,7 @@ msgstr "Email secundario" msgid "Not defined" msgstr "Sin definir" -#: 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 "Numero de telefono " @@ -1182,7 +1295,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 "Fecha" @@ -1208,9 +1321,9 @@ msgstr "Fecha de creación" msgid "Last modification date" msgstr "Última fecha de modificación" -#: 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 "Alias del mailbox" @@ -1269,11 +1382,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 "No " @@ -1281,7 +1395,7 @@ msgstr "No " 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 "Sí" @@ -1296,7 +1410,7 @@ msgid "Administrators" msgstr "Administradores" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Eliminar este permiso" @@ -1333,13 +1447,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 "Desde" #: 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 "Hasta" @@ -1372,9 +1486,10 @@ msgstr "deshabilitado" msgid "Automatically forward emails to another address" msgstr "Reenvía automáticamente los correos a otra dirección" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Actualizar" @@ -1391,12 +1506,40 @@ msgid "Fullname/Recipient" msgstr "Nombre completo/Destinatario" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " -msgstr "Proporcione un archivo CSV donde las líneas respeten uno de los siguientes formatos:
      • dominio; nombre; cuota; cuota de mailbox predeterminada; habilitado
      • alias de dominio; nombre; orientado al dominio; habilitado
      • Dominio de retransmisión; nombre; servidor de destino; puerto de destino; servicio; habilitado; verificar los destinatarios

      El primer elemento de cada línea es obligatorio y debe ser igual a uno de los valores anteriores.

      Puede utilizar un carácter diferente como Separador.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " +msgstr "" +"Proporcione un archivo CSV donde las líneas respeten uno de los siguientes " +"formatos:
      • dominio; nombre; cuota; cuota de mailbox " +"predeterminada; habilitado
      • alias de dominio; nombre; " +"orientado al dominio; habilitado
      • Dominio de retransmisión; " +"nombre; servidor de destino; puerto de destino; servicio; habilitado; " +"verificar los destinatarios

      El primer elemento de cada " +"línea es obligatorio y debe ser igual a uno de los valores anteriores. " +"

      Puede utilizar un carácter diferente como Separador.

      " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " -msgstr "Proporcione un archivo CSV donde las líneas respeten uno de los siguientes formatos:
      • cuenta; nombre de inicio de sesión; contraseña; primer nombre; apellido; habilitado; grupo; dirección; cuota; [, dominio, ...]
      • alias; dirección; habilitado; receptor; receptor; ...

        El primer elemento de cada línea es obligatorio y debe ser igual a uno de los valores anteriores.

        Puede utilizar un carácter diferente como separador. " +msgid "" +"Provide a CSV file where lines respect one of the following formats:

          " +"
        • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " +msgstr "" +"Proporcione un archivo CSV donde las líneas respeten uno de los siguientes " +"formatos:
        • cuenta; nombre de inicio de sesión; contraseña; " +"primer nombre; apellido; habilitado; grupo; dirección; cuota; [, dominio, " +"...]
        • alias; dirección; habilitado; receptor; " +"receptor; ...

          El primer elemento de cada línea es " +"obligatorio y debe ser igual a uno de los valores anteriores.

          Puede" +" utilizar un carácter diferente como separador. " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1424,7 +1567,9 @@ msgstr "Actualizado" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Esta IP no coincide con ninguno de los registros MX válidos definidos en los parámetros" +msgstr "" +"Esta IP no coincide con ninguno de los registros MX válidos definidos en los" +" parámetros" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1432,109 +1577,128 @@ msgstr "No se encontró ningún registro MX para este dominio." #: 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 detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los siguientes proveedores DNSBL:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los" +" siguientes proveedores DNSBL:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -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 "La reputación de los dominios se verán afectados y existe la posibilidad de que los mensajes de correo electrónico procedentes de él se consideren spam. Debe comunicarse con estos proveedores y pedirles que elimine la(s) dirección(es) IP detectada(s)." +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 "" +"La reputación de los dominios se verán afectados y existe la posibilidad de " +"que los mensajes de correo electrónico procedentes de él se consideren spam." +" Debe comunicarse con estos proveedores y pedirles que elimine la(s) " +"dirección(es) IP detectada(s)." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los siguientes proveedores DNSBL:" +msgstr "" +"Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los" +" siguientes proveedores DNSBL:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Buscar" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "Activado" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "Activado" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Listar dominios" -#: 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 "Listar cuotas" -#: 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 "Importar" -#: 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 "Exportar" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Listar identidades" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Ver las identidades del dominio" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "alias del dominio" -#: 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 "Editar {}" -#: 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 "¿Eliminar %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No MX record for %s" msgstr "Registros MX de {}" -#: 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 +#, fuzzy, python-format +#| msgid "MX records of {}" +msgid "No AAAA record for %s" +msgstr "Registros MX de {}" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Ya existe un alias con este nombre" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Crear" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nuevo alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias creado" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias modificado" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias eliminado" @@ -1544,36 +1708,36 @@ msgstr[1] "Aliases eliminados" msgid "MX records of {}" msgstr "Registros MX de {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Resumen de DNSBL para {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Dominio eliminado" msgstr[1] "Dominios eliminados" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Exportar identidades" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exportar dominios" -#: 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 "Petición inválida" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Cuenta eliminada" msgstr[1] "Cuentas eliminadas" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importar dominios" @@ -1581,542 +1745,584 @@ msgstr "Importar dominios" msgid "Import identities" msgstr "Importar identidades" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Reenvío actualizado" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "MX records of {}" msgid "Invalid PIN code" msgstr "Registros MX de {}" -#: 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 "Local" - -#: 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 "Perfil de usuario" - -#: 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 "Sintaxis inválida" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Número de rondas inváldo" - -#: 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 "Contraseña anterior" -#: 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 "Local" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Perfil de usuario" + +#: 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 "Sintaxis inválida" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Número de rondas inváldo" + +#: 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 "Usuario '%s' ha entrado con éxito" -#: 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 "No se ajusta al esquema de contraseña. Actualizando la contraseña de %s " +msgstr "" +"No se ajusta al esquema de contraseña. Actualizando la contraseña de %s " #: core/api/v2/views.py:93 core/views/auth.py:75 #, python-format 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 "Autenticación" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Tipo de autenticación" -#: 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 "El sistema usado para autenticación" -#: 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 "Esquema de contraseña por defecto" -#: 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 "Esquema usado para cifrar las contraseñas del mailbox" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Rondas" -#: 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 "Número de rondas a usar (sólo utilizado por sha256crypr y sha512crypt). Debe estar entre 1000 y 999999999, incluído." +#: 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 "" +"Número de rondas a usar (sólo utilizado por sha256crypr y sha512crypt). Debe" +" estar entre 1000 y 999999999, incluído." -#: 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 "Forzar actualización de contraseña al acceder para usar el esquema de contraseñas" +msgstr "" +"Forzar actualización de contraseña al acceder para usar el esquema de " +"contraseñas" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Contraseña por defecto" -#: 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 "Contraseña por defecto para cuentas creadas automáticamente." -#: 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 "Longitud de contraseña aleatoria" -#: 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 "Longitud de las contraseñas generadas aleatoriamente." -#: 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 "Configuración de 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 "Dirección del servidor" -#: 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 "La dirección IP del servidor de nombres (DNS) del servidor 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 "Puerto del servidor" -#: 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 "Número de puerto TCP usado por el servidor 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 "Usa una conexión segura" -#: 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 "Usa una conexión SSL/STARTTLS para acceder al servidor 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 "Directorio Activo" -#: 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 "Decir si el servidor de LDAP es uno del tipo Directorio Activo" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Administrador de grupos" -#: 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 "Los miembros de esos grupos Posix LDAP serán creados como administradores de dominio. Use caracteres \";\" para separar los grupos." +#: 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 "" +"Los miembros de esos grupos Posix LDAP serán creados como administradores de" +" dominio. Use caracteres \";\" para separar los grupos." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Tipo de grupo" -#: 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 "El tipo de LDAP para usar en el directorio" -#: 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 "Base para la búsqueda de grupos" -#: 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 "El distinguido nombre de la búsqueda base usada para encontrar grupos" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atributo de la contraseña" -#: 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 "El atributo usado para guardar las contraseñas del usuario" -#: 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 "Método de autenticación" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Buscar y unir" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Unión directa" -#: 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 "Elegir el método de autenticación a usar" -#: 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 "Unir a 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 "El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació para una unión anónima" +#: 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 "" +"El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació" +" para una unión anónima" -#: 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 "Unir contraseña" -#: 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 "La contraseña a usar cuando nos unimos al servidor LDAP (con 'Unir a DN')" +msgstr "" +"La contraseña a usar cuando nos unimos al servidor LDAP (con 'Unir a 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 "Base para la búsqueda de usuarios" -#: 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 "El distinguido nombre de la búsqueda base usada para encontrar usuarios" +msgstr "" +"El distinguido nombre de la búsqueda base usada para encontrar usuarios" -#: 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 "Filtro de búsqueda" -#: 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 "Una cadena de filtro opcional (p.e. '(objectClass=person)'). Para que sea válido tiene que ser encerrado entre paréntesis." +#: 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 "" +"Una cadena de filtro opcional (p.e. '(objectClass=person)'). Para que sea " +"válido tiene que ser encerrado entre paréntesis." -#: 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 "Plantilla DN del usuario" -#: 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 "La plantilla usada para contriunr un DN de usuario. Debería contener una cadena reemplazables (p.e. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"La plantilla usada para contriunr un DN de usuario. Debería contener una " +"cadena reemplazables (p.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 "Panel de Control" -#: 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 "Agregación RSS personalizada" -#: 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 "Mostrar una fuente de agregación RSS personalizada a revendedores y administradores de dominio" +msgstr "" +"Mostrar una fuente de agregación RSS personalizada a revendedores y " +"administradores de dominio" -#: 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 "Ocultar widget de características" -#: 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 "Ocultar el widget de características a revendedores y administradores de dominio" +msgstr "" +"Ocultar el widget de características a revendedores y administradores de " +"dominio" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Notificaciones" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Dirección del remitente" -#: 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 "Dirección de email usada para mandar notificaciones" -#: 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 pública" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Establecer comunicación" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Establecer comunicación con la API publica de 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 "Comprobar nuevas versiones" -#: 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 "Verificar automáticamente si hay una nueva versión disponible" -#: 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 "Enviar estadísticas" -#: 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 "Enviar estadísticas a la API pública de Modoboa (contadores y extensiones usadas)" +msgstr "" +"Enviar estadísticas a la API pública de Modoboa (contadores y extensiones " +"usadas)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Otros" -#: 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 "Límite para cuentas inactivas" -#: 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 "Límite para cuentas inactivas" -#: 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 "Una cuenta inactiva con una fecha de inicio de sesión previa a este límite (en días) se considerará como cuenta inactiva" +#: 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 "" +"Una cuenta inactiva con una fecha de inicio de sesión previa a este límite " +"(en días) se considerará como cuenta inactiva" -#: 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 "Intervalo de tiempo para notificaciones superiores" -#: 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 "Intervalo entre dos notificaciones superiores (en segundos)" -#: 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 "Máximo tiempo de almacenamiento del log" -#: 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 "El tiempo máximo de almacenamiento del log en días" -#: 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 "Items por página" -#: 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 "Número de elementos mostrado por página" -#: 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 "Redirección principal por defecto" -#: 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 "La redirección que será usada cuando ninguna aplicación sea especificada." +msgstr "" +"La redirección que será usada cuando ninguna aplicación sea especificada." -#: 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 "A fijado USE_TZ como falso, lo que puede llevar a problemas en la transición entre los horarios de verano e invierno (p.ej., que la misma hora exista dos veces debido a cambios del reloj)." +#: 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 "" +"A fijado USE_TZ como falso, lo que puede llevar a problemas en la transición" +" entre los horarios de verano e invierno (p.ej., que la misma hora exista " +"dos veces debido a cambios del reloj)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Ajuste `USE_TZ = True` en settings.py" @@ -2148,31 +2354,31 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Contraseña anterior" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nueva contraseña" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "La contraseña no concuerda con la anterior" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Las contraseñas no coinciden" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Habilitar acceso al 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 "" @@ -2189,20 +2395,20 @@ msgstr "modificado" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s por el usuario %(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 por " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "eliminado" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "usuario {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "comando de administración" @@ -2210,137 +2416,139 @@ msgstr "comando de administración" msgid "You can't delete your own account" msgstr "No puede eliminar su propia cuenta" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Una o más actualizaciones están disponibles" -#: 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 "Permitir acceso al buzón" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Permitir a este administrador acceso al buzon de los usuarios" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "contraseña" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "idioma" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Idioma preferido para mostrar las páginas" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "Email alternativo, puede ser usado para recuperación." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Falló al actualizar la contraseña: módulo LDAP no instalado" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "cuenta" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Desconocido" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "No puede importar una cuenta con un rol mayor que el suyo" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "El usuario normal '%s' debe tener una dirección de email válida" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "Los campos de nombre de usuario y de email no deben ser diferentes para '%s'" +msgstr "" +"Los campos de nombre de usuario y de email no deben ser diferentes para '%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] "La contraseña debe contener al menos {} dígito." msgstr[1] "La contraseña debe contener al menos {} dígitos." -#: 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] "La contraseña debe tener al menos {} minúscula." msgstr[1] "La contraseña debe tener al menos {} minúsculas." -#: 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] "La contraseña debe tener al menos {} mayúscula." msgstr[1] "La contraseña debe tener al menos {} mayúsculas." -#: 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] "La contraseña debe tener al menos {} carácter especial." msgstr[1] "La contraseña debe tener al menos {} caracteres especiales." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Su contraseña debe contener una combinación de diferentes tipos de carácter." +msgstr "" +"Su contraseña debe contener una combinación de diferentes tipos de carácter." -#: 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" @@ -2367,8 +2575,12 @@ msgid "Latest news" msgstr "Lo más receinte" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Visite el weblog oficial para más información." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Visite el weblog " +"oficial para más información." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2380,8 +2592,12 @@ msgstr "Controla tu acceso al API de Modoboa" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "La documentación de la API está disponible aquí." +msgid "" +"A documentation of the API is available here." +msgstr "" +"La documentación de la API está disponible aquí." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2392,7 +2608,7 @@ msgstr "Token de acceso a la API" msgid "Hello %(user)s." msgstr "Hola %(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 "Información" @@ -2406,7 +2622,9 @@ msgstr "Hay una o más actualizaciones disponibles" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Comprueba la siguiente lista para encontrar los componentes que pueden ser actualizados." +msgstr "" +"Comprueba la siguiente lista para encontrar los componentes que pueden ser " +"actualizados." #: core/templates/core/information.html:10 msgid "Applications" @@ -2424,7 +2642,7 @@ msgstr "Última versión" msgid "Active users" msgstr "Usuarios activos" -#: 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 "Logs" @@ -2450,7 +2668,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: 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 "Parámetros" @@ -2467,12 +2685,12 @@ msgstr "Guardar" msgid "Modoboa settings" msgstr "Configuración de 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 "Configuración" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Preferencias" @@ -2492,7 +2710,7 @@ msgstr "Actualizar su información personal" 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 "" @@ -2503,7 +2721,9 @@ msgid "Two-Factor authentication" msgstr "El sistema usado para autenticación" #: 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 @@ -2515,18 +2735,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" @@ -2534,12 +2763,18 @@ msgstr "" msgid "Disable 2FA" msgstr "Deshabilitado" +#: 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 @@ -2558,71 +2793,79 @@ msgstr "No se encontró ningún registro MX para este dominio." msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Contraseñas cifradas" + #: 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 "Salir" -#: 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 "El núcleo de Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parámetros guardados" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Su nombre de usuario y contraseña no concuerdan. Por favor, inténtelo de nuevo." +msgstr "" +"Su nombre de usuario y contraseña no concuerdan. Por favor, inténtelo de " +"nuevo." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Usuario '{}' ha salido con éxito" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Perfil actualizado" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Preferencias guardadas" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Acceso actualizado" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "Configuración de LDAP" -#: 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 #, fuzzy #| msgid "MX records of {}" msgid "Show DMARC report for {}" msgstr "Registros MX de {}" -#: 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 #, fuzzy #| msgid "Not defined" msgid "Not resolved" @@ -2666,11 +2909,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 "" @@ -2750,95 +2993,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 "" @@ -2867,7 +3110,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 @@ -2883,7 +3128,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2891,95 +3136,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 "Acceso actualizado" -#: 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 communication" msgid "Enable IMAP Migration" msgstr "Establecer comunicación" -#: 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 communication" msgid "Enable IMAP Migration." msgstr "Establecer comunicación" -#: 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 "Crear alias" -#: 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 "Configuración de 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 @@ -2988,52 +3241,52 @@ msgstr "" msgid "IMAP migration" msgstr "Administración" -#: 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 "Establecer comunicación con la API publica de Modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Conexión a la base de datos %s no configurada" -#: 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 "No es posible determinar la codificación de la cadena" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Permiso denegado: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Permiso denegado" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Introduzca un nombre dominio válido" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Intriduzca un email válido" @@ -3043,163 +3296,195 @@ msgstr "Intriduzca un email válido" msgid "Submit" msgstr "Enviar" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "No se ha podido actualizar la contraseña: {}" -#: 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 "Tema" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 #, fuzzy #| msgid "Default limits" msgid "Default per-admin limits" msgstr "Límites por defecto" -#: 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 "Administradores del dominio" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: limits/app_settings.py:29 limits/app_settings.py:163 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo de dominios permitido de administradores para un nuevo administrador" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo de dominios permitido de administradores para un nuevo " +"administrador" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: limits/app_settings.py:39 limits/app_settings.py:175 #, fuzzy #| msgid "Maximum number of allowed domains for a new administrator" -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo de dominios permitidos para un nuevo administrador" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: limits/app_settings.py:48 limits/app_settings.py:186 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo permitido de alias de dominio para un nuevo administrador" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo permitido de alias de dominio para un nuevo administrador" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: limits/app_settings.py:58 limits/app_settings.py:198 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo de mailboxes permitidas para un nuevo administrador" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: limits/app_settings.py:67 limits/app_settings.py:210 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máxido de alias permitidos para un nuevo administrador" -#: 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 #, fuzzy #| msgid "Default limits" msgid "Default per-domain limits" msgstr "Límites por defecto" -#: 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 +#: limits/app_settings.py:94 limits/app_settings.py:248 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo de dominios permitido de administradores para un nuevo administrador" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo de dominios permitido de administradores para un nuevo " +"administrador" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: limits/app_settings.py:104 limits/app_settings.py:260 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo permitido de alias de dominio para un nuevo administrador" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo permitido de alias de dominio para un nuevo administrador" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: limits/app_settings.py:114 limits/app_settings.py:272 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo de mailboxes permitidas para un nuevo administrador" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: limits/app_settings.py:123 limits/app_settings.py:283 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" msgstr "Número máxido de alias permitidos para un nuevo administrador" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Límites" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Número máxima de dominios que este usuario puede crear" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Número máximo de alias de dominio que este usuario puede crear" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Número máximo de mailboxes que este usuario puede crear" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Número máximo de alias a mailboxes que este usuario puede crear" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Número máximo de administradores de dominio que este usuario puede crear" +msgstr "" +"Número máximo de administradores de dominio que este usuario puede crear" -#: 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 #, fuzzy #| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." msgstr "Número máximo de alias de dominio que este usuario puede crear" -#: limits/constants.py:46 +#: limits/constants.py:85 #, fuzzy #| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." msgstr "Número máximo de mailboxes que este usuario puede crear" -#: limits/constants.py:50 +#: limits/constants.py:93 #, fuzzy #| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Número máximo de alias a mailboxes que este usuario puede crear" -#: limits/constants.py:55 +#: limits/constants.py:102 #, fuzzy #| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." -msgstr "Número máximo de administradores de dominio que este usuario puede crear" +msgstr "" +"Número máximo de administradores de dominio que este usuario puede crear" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Límite inválido" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Recursos" @@ -3212,11 +3497,11 @@ msgstr "%s: límete alcanzado" msgid "Not enough resources" msgstr "No hay suficientes recursos" -#: 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 "No está autorizado definir valores ilimitados" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "ilimitado" @@ -3225,91 +3510,91 @@ msgstr "ilimitado" msgid "Resources usage" msgstr "Uso de recursos" -#: 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 "Ruta del fichero de log" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Ruta al fichero de log usado para recolectar estadísticas" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Directorio para guardar los ficheros RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Ruta al directorio dónde están almacenados los ficheros RRD" -#: 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 "Estadísticas" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "Fallo al localizar el binario rrdtool" -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Media del tráfico (msgs/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "mensajes enviados" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "mensajes recibidos" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "mensajes rebotados" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "mensajes bloqueados" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "mensajes con virus" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "Mensajes Basura" -#: 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 "Media normal del tamaño del tráfico (bytes/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "tamaño recibido" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "tamaño enviado" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Tráfico de correo" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Creación promedio de cuentas (cuentas/hora)" @@ -3337,201 +3622,207 @@ msgstr "Aplicar" msgid "No statistics available" msgstr "No hay estadísticas disponibles" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Día" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Semana" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Mes" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Año" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "A medida" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Conjunto gráfico desconocido" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Conjunto gráfico desconocido" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Período elegido erróneo" -#: 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 "Actualizar su información personal" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Domain not found." msgid "Directory is not writable" msgstr "Dominio no encontrado." -#: 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 "No hay información disponible para este dominio." -#: 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 "Activar comprobación de 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory to save documents into" msgstr "Directorio para guardar los ficheros RRD" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 #, fuzzy #| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" msgstr "Ruta al directorio dónde están almacenados los ficheros RRD" -#: 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 "Descripción" -#: 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 "spam messages" msgid "Custom message" msgstr "Mensajes Basura" -#: 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 "Dirección del servidor" -#: 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 "Puerto del servidor" -#: 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 "Dirección del servidor" -#: 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 "Puerto del servidor" -#: 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 "" @@ -3539,15 +3830,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" @@ -3556,40 +3847,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 "Cambiar contraseña" -#: 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 "" @@ -3598,30 +3895,190 @@ 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: límete alcanzado" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: límete alcanzado" + +#: 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 "Esta fecha ha pasado" + +#: 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 "Debe ser posterior a la fecha inicial" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Contestaciones automáticas" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Activar su autorepuesta a partir de esta fecha. Formato: YYYY-MM-DD HH:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Hasta" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Activar su autorepuesta hasta esta fecha. Formato: YYYY-MM-DD HH:mm:ss" + +#: 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 "" +"El contenido de su respuesta. Puede utilizar las siguientes variable, que " +"serán reemplazados automáticamente por su valor apropiado: " +"%(name)s,%(fromdate)s,%(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Tiempo de caducidad de respuestas automáticas" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "Tiempo en segundos entre dos autorespuestas para el mismo emisor" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Asunto por defecto" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Estoy fuera" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" +"El asunto por defecto es usado cuando un mensaje de autorespuesta es creado " +"automáticamente" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Contenido por defecto" + +#: 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 "" +"Estoy fuera ahora. Le responderé tan pronto como regrese.\n" +"\n" +"Saludos cordiales,\n" +"%(name)s\n" + +#: 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 "" +"El contenido por defecto es usado cuando un mensaje de autorespuesta es " +"creado automáticamente. La macro '%(name)s' será reemplazada por el nombre " +"completo del usuario." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "spam messages" +msgid "Auto-reply message" +msgstr "Mensaje de autorespuesta" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Contestación automática" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "asunto" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "El asunto que aparecerán en los correos enviados" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "contenido" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "El contenido que aparecerá en los emails enviados" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Activar/desactivar su autorespuesta" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "" +"Defina el mensaje que automáticamente se enviará cuando esté desconectado" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "El mensaje de autorespuesta se ha actualizado correctamente." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 #, fuzzy msgid "Transport settings" msgstr "Nuevo dominio" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 #, fuzzy msgid "target host address" msgstr "objetivo" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 #, fuzzy msgid "target host port" msgstr "objetivo" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 #, fuzzy msgid "verify recipients" msgstr "Destinatarios" @@ -3692,16 +4149,24 @@ msgstr "¿Ha olvidado su contraseña?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Ha cambiado su contraseña. Proceda e inicie sesión ahora." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Ha cambiado su contraseña. Proceda e inicie sesión " +"ahora." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Cambiar contraseña" #: 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 "El enlace de restauración de contraseña es inválido, tal vez ya fue utilizado. Por favor solicite la restauración de contraseña de nuevo." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"El enlace de restauración de contraseña es inválido, tal vez ya fue " +"utilizado. Por favor solicite la restauración de contraseña de nuevo." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3712,19 +4177,36 @@ 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 "

          Si existe una cuenta con el correo electrónico introducido, recibirá en breves instantes instrucciones via email para cambiar su contraseña.

          Si no recibe el correo, por favor compruebe que la dirección de correo electrónico introducida es su dirección principal y revise su directorio de correo basura.

          " +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 "" +"

          Si existe una cuenta con el correo electrónico introducido, recibirá en " +"breves instantes instrucciones via email para cambiar su " +"contraseña.

          Si no recibe el correo, por favor compruebe que la " +"dirección de correo electrónico introducida es su dirección principal y " +"revise su directorio de correo basura.

          " #: 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 "Para empezar el proceso de restauración de contraseña para su %(username)s cuenta de Modoboa, haga click en el enlace siguiente:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Para empezar el proceso de restauración de contraseña para su %(username)s " +"cuenta de Modoboa, haga click en el enlace siguiente:" #: 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 "Si no puede hacer click en el enlace anterior, por favor copie y pegue la URL en una ventana nueva del navegador." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Si no puede hacer click en el enlace anterior, por favor copie y pegue la " +"URL en una ventana nueva del navegador." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3745,22 +4227,21 @@ msgstr "Restauración de contraseña de Modoboa" msgid "Invalid value" msgstr "Línea inválida" -#: 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 "" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: límete alcanzado" +#~ msgid "An alias with this name already exists." +#~ msgstr "Ya existe un alias con este nombre" #~ msgid "Graphical statistics about emails traffic using RRDtool" #~ msgstr "Estadísticas gráficas del tráfico de emails usando RRDtool" @@ -3790,7 +4271,6 @@ msgstr "" #~ msgstr "Nuevo dominio" #, fuzzy -#~| msgid "The domain name" #~ msgid "The relay domain name" #~ msgstr "Nombre del dominio" @@ -3805,7 +4285,6 @@ msgstr "" #~ msgstr "El dominio '%s' no existe" #, fuzzy -#~| msgid "Invalid format" #~ msgid "Raw format" #~ msgstr "Formato inválido" @@ -3816,30 +4295,27 @@ msgstr "" #~ msgstr "Nombre del fichero" #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No {type} record found for MX {mx}" #~ msgstr "No se encontró ningún registro MX para este dominio." #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No A record found for MX %(domain)s" #~ msgstr "No se encontró ningún registro MX para este dominio." #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No AAAA record found for MX %(domain)s" #~ msgstr "No se encontró ningún registro MX para este dominio." #~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota." -#~ msgstr "La cuota compartida entre las mailboxes en MB. Un valor de 0 significa ningún limite." +#~ msgstr "" +#~ "La cuota compartida entre las mailboxes en MB. Un valor de 0 significa " +#~ "ningún limite." #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No DNS records found without MX for %s" #~ msgstr "No se encontró ningún registro MX para este dominio." #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No DNS records found without MX for %(domain)s" #~ msgstr "No se encontró ningún registro MX para este dominio." diff --git a/modoboa/locale/fi/LC_MESSAGES/django.po b/modoboa/locale/fi/LC_MESSAGES/django.po index 6a6a9999c..e6f9bda4f 100644 --- a/modoboa/locale/fi/LC_MESSAGES/django.po +++ b/modoboa/locale/fi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-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: 2023-02-17 22:03+0200\n" "Last-Translator: Ossi Mäntylahti \n" "Language-Team: \n" @@ -18,488 +18,601 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.2.2\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 "Postilaatikoiden kesken jaettu kiintiö. Voidaan ilmaista kilotavuina (KB), megatavuina (MB) (oletus) tai gigatavuina (GB). Arvo 0 tarkoittaa, ettei kiintiötä ole." +#: 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 "" +"Postilaatikoiden kesken jaettu kiintiö. Voidaan ilmaista kilotavuina (KB), " +"megatavuina (MB) (oletus) tai gigatavuina (GB). Arvo 0 tarkoittaa, ettei " +"kiintiötä ole." -#: 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 "Postilaatikoihin sovellettava oletuskiintiö megatavuina. Arvo 0 tarkoittaa, ettei kiintiötä ole." +msgstr "" +"Postilaatikoihin sovellettava oletuskiintiö megatavuina. Arvo 0 tarkoittaa, " +"ettei kiintiötä ole." -#: 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 "Tälle verkkotunnukselle ei löytynyt valtuutettua MX-tietuetta" -#: 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 "Ei voi olla suurempi kuin verkkotunnuksen kiintiö" -#: 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 "Lupa evätty." -#: 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 "Tämä kenttä on pakollinen" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Luettelo hallinnoiduista verkkotunnuksista (vain jälleenmyyjät ja verkkotunnusten ylläpitäjät)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Luettelo hallinnoiduista verkkotunnuksista (vain jälleenmyyjät ja " +"verkkotunnusten ylläpitäjät)." -#: 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 "Ei sallittu tässä roolissa." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Täytyy olla yhtä suuri kuin postilaatikon koko osoite" -#: 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 "Tämä kenttä on pakollinen." -#: 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 "Paikallista verkkotunnusta {} ei ole olemassa" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Luettelo vastaanottajista" -#: 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 "Käyttäjä '%s' on jo olemassa" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Sinulla ei ole pääsyä tähän verkkotunnukseen." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Sinulla ei ole pääsyä tähän postilaatikkoon." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Tässä on uusi Modoboa-salasanasi: {}" -#: 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 "Käyttäjä '%s' on jo olemassa" -#: 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 "Täytyy olla positiivinen kokonaisluku" -#: 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 "Hakemistoa ei löydy." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Hakemistoa ei löydy." -#: 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 ei löydy, varmista, että se on asennettu." -#: 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 "Määritä vähintään yksi valtuutettu verkko/osoite" -#: 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 "Tarvitaan postilaatikko" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown tag {}" msgid "Unknown status" msgstr "Tuntematon tunniste {}" -#: 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 "Sinulla ei ole pääsyä tähän verkkotunnukseen" -#: 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 "Et voi poistaa omaa verkkotunnustasi" -#: 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 "Verkkotunnukset" -#: 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 "Ota MX-tarkistukset käyttöön" -#: 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 "Tarkista, että jokaisella verkkotunnuksella on voimassa oleva MX-tietue" +msgstr "" +"Tarkista, että jokaisella verkkotunnuksella on voimassa oleva MX-tietue" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Voimassa olevat MX:t" -#: 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 "Luettelo IP- tai verkko-osoitteista, joita jokaisen MX-tietueen pitäisi vastata. Varoitus lähetetään, jos tietue ei noudata sitä." +#: 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 "" +"Luettelo IP- tai verkko-osoitteista, joita jokaisen MX-tietueen pitäisi " +"vastata. Varoitus lähetetään, jos tietue ei noudata sitä." -#: 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 "Uusien verkkotunnusten on käytettävä valtuutettuja MX:iä" -#: 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 "Estä uuden verkkotunnuksen luominen, jos sen MX-tietue ei käytä jotakin määritetyistä osoitteista." +#: 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 "" +"Estä uuden verkkotunnuksen luominen, jos sen MX-tietue ei käytä jotakin " +"määritetyistä osoitteista." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Ota SPF-tarkistukset käyttöön" + +#: 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 "Ota SPF-tarkistukset käyttöön" -#: 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 "Tarkista, onko jokaisella verkkotunnuksella voimassa oleva SPF-tietue" -#: 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 "Ota DKIM-tarkistukset käyttöön" -#: 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 "Tarkista, onko jokaisella verkkotunnuksella, jossa DKIM-kirjautuminen on käytössä, voimassa oleva DNS-tietue" +msgstr "" +"Tarkista, onko jokaisella verkkotunnuksella, jossa DKIM-kirjautuminen on " +"käytössä, voimassa oleva DNS-tietue" -#: 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 "Ota DMARC-tarkistukset käyttöön" -#: 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 "Tarkista, onko jokaisella verkkotunnuksella voimassa oleva DMARC-tietue" +msgstr "" +"Tarkista, onko jokaisella verkkotunnuksella voimassa oleva DMARC-tietue" -#: 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 "Ota käyttöön automaattisen määritysten tarkistus" -#: 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 "Tarkista, onko jokaisella verkkotunnuksella kelvolliset tietueet automaattista määritystä varten" +msgstr "" +"Tarkista, onko jokaisella verkkotunnuksella kelvolliset tietueet " +"automaattista määritystä varten" -#: 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 "Ota DNSBL-tarkistukset käyttöön" -#: 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 "Tarkista jokainen verkkotunnus merkittävimmistä DNSBL-palveluntarjoajista" +msgstr "" +"Tarkista jokainen verkkotunnus merkittävimmistä DNSBL-palveluntarjoajista" -#: 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 "Mukautettu DNS-palvelin" -#: 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 "Käytä mukautettua DNS-palvelinta paikallisen palvelinkonfiguraation sijasta" +msgstr "" +"Käytä mukautettua DNS-palvelinta paikallisen palvelinkonfiguraation sijasta" -#: 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 "DKIM-avainten tallennushakemisto" -#: 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 "Absoluuttinen polku, johon DKIM:n yksityiset avaimet tallennetaan. Varmista, että tämä hakemisto kuuluu root-käyttäjälle eikä ole ulkomaailman luettavissa." +#: 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 "" +"Absoluuttinen polku, johon DKIM:n yksityiset avaimet tallennetaan. Varmista," +" että tämä hakemisto kuuluu root-käyttäjälle eikä ole ulkomaailman " +"luettavissa." -#: 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 "DKIM-avaimen oletuspituus" -#: 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 "Uusien luotujen DKIM-avainten oletuspituus bitteinä." -#: 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 "Verkkotunnuksen oletuskiintiö" -#: 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 "Oletuskiintiö (megatavua), jota sovelletaan juuri luotuihin toimialueisiin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, että kiintiötä ei ole." +#: 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 "" +"Oletuskiintiö (megatavua), jota sovelletaan juuri luotuihin toimialueisiin, " +"joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, että kiintiötä ei ole." -#: 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 "Oletusarvo verkkotunnuksen lähetysrajalle" -#: 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." -msgstr "Viestien määrä, jonka juuri luodut verkkotunnukset saavat lähettää päivässä. Jätä tyhjäksi, jos et halua rajoitusta." +#: 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 "" +"Viestien määrä, jonka juuri luodut verkkotunnukset saavat lähettää päivässä." +" Jätä tyhjäksi, jos et halua rajoitusta." -#: 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 "Postilaatikot" -#: 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 "Käsittele postilaatikoita tiedostojärjestelmässä" -#: 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 "Nimeä uudelleen tai poista postilaatikot tiedostojärjestelmästä, kun ne nimetään uudelleen tai poistetaan Modoboassa" +#: 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 "" +"Nimeä uudelleen tai poista postilaatikot tiedostojärjestelmästä, kun ne " +"nimetään uudelleen tai poistetaan Modoboassa" -#: 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 "Oletuspostilaatikkokiintiö" -#: 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." -msgstr "Oletuspostilaatikkokiintiö (megatavua), jota sovelletaan juuri luotuihin postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei kiintiötä ole." +#: 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 "" +"Oletuspostilaatikkokiintiö (megatavua), jota sovelletaan juuri luotuihin " +"postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei " +"kiintiötä ole." -#: 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 "Oletuspostilaatikon lähetysraja" -#: 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." -msgstr "Viestien määrä, jonka juuri luodut postilaatikot saavat lähettää päivässä. Jätä tyhjäksi, jos et halua rajoitusta." +#: 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 "" +"Viestien määrä, jonka juuri luodut postilaatikot saavat lähettää päivässä. " +"Jätä tyhjäksi, jos et halua rajoitusta." -#: 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 "Tilin automaattinen poistaminen" -#: 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 "Kun postilaatikko poistetaan, poistetaan myös siihen liittyvä tili" -#: 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 "Automaattinen verkkotunnuksen/sähköpostilaatikon luominen" -#: 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 "Luo verkkotunnus ja postilaatikko, kun tili luodaan automaattisesti." -#: 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 "Luo alias, kun postilaatikko nimetään uudelleen" -#: 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 "Luo alias, joka käyttää vanhaa osoitetta, kun postilaatikko nimetään uudelleen." +msgstr "" +"Luo alias, joka käyttää vanhaa osoitetta, kun postilaatikko nimetään " +"uudelleen." -#: admin/app_settings.py:407 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "Oletuspostilaatikkokiintiö (megatavua), jota sovelletaan juuri luotuihin postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei kiintiötä ole." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "" +"Oletuspostilaatikkokiintiö (megatavua), jota sovelletaan juuri luotuihin " +"postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei " +"kiintiötä ole." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Hallinnointinäkymä" -#: 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 "Verkkotunnus" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Relay-välitystunnus" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "Avattu" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "Suljettu" -#: 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 "Käyttäjätunnus" -#: 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 "Käyttäjän nimi. Yksinkertaisten käyttäjien tai ylläpitäjien, joilla on postilaatikko, on oltava voimassa oleva sähköpostiosoite." +#: 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 "" +"Käyttäjän nimi. Yksinkertaisten käyttäjien tai ylläpitäjien, joilla on " +"postilaatikko, on oltava voimassa oleva sähköpostiosoite." -#: 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 "Rooli" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Valitse" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Minkä tason oikeudet tällä käyttäjällä on" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Satunnainen salasana" -#: 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 "Luo satunnainen salasana. Jos päivität tätä tiliä ja valitset tämän, Modoboa luo uuden salasanan." +#: 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 "" +"Luo satunnainen salasana. Jos päivität tätä tiliä ja valitset tämän, Modoboa" +" luo uuden salasanan." -#: 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 "Salasana" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Vahvistus" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Kirjoita varmuuden vuoksi sama salasana uudelleen." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Käytössä" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Tämä tila on sallittu vain pääylläpitäjille" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Salasanakentät eivät vastanneet toisiaan." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Et voi poistaa omaa tiliäsi käytöstä" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "Sähköpostiosoite" -#: admin/forms/account.py:228 +#: admin/forms/account.py:236 msgid "Create an alias using the old address" msgstr "Luo alias käyttäen vanhaa osoitetta" -#: 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 "Kiintiö" -#: 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 "Tämän postilaatikon kiintiö, joka voidaan ilmaista kilotavuina, megatavuina (oletus) tai gigatavuina. Määritä oma arvo tai käytä toimialueen oletusarvoa. Jätä tyhjäksi, jos haluat määrittää rajoittamattoman arvon (ei sallittu toimialueen ylläpitäjille)." +#: 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 "" +"Tämän postilaatikon kiintiö, joka voidaan ilmaista kilotavuina, megatavuina " +"(oletus) tai gigatavuina. Määritä oma arvo tai käytä toimialueen " +"oletusarvoa. Jätä tyhjäksi, jos haluat määrittää rajoittamattoman arvon (ei " +"sallittu toimialueen ylläpitäjille)." -#: 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 "Viestien lähetysraja" -#: 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 "Viestien määrä, jonka tämä postilaatikko voi lähettää päivässä" -#: 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(kset)" -#: 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 "Tämän postilaatikon aliakset. Ilmoita vain yksi osoite per syöttö, paina enter lisätäksesi uuden. Jos haluat luoda catchall-aliaksen, syötä vain verkkotunnus (@verkkotunnus.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 "" +"Tämän postilaatikon aliakset. Ilmoita vain yksi osoite per syöttö, paina " +"enter lisätäksesi uuden. Jos haluat luoda catchall-aliaksen, syötä vain " +"verkkotunnus (@verkkotunnus.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Lähettäjän osoitteet" -#: 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 "Tämän tilin lisälähetysosoite(et). Käyttäjä saa lähettää sähköposteja käyttämällä tätä osoitetta, vaikka sitä ei olisikaan olemassa paikallisesti. Ilmoita yksi osoite per rivi. Lisää uusi rivi painamalla enter." +#: 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 "" +"Tämän tilin lisälähetysosoite(et). Käyttäjä saa lähettää sähköposteja " +"käyttämällä tätä osoitetta, vaikka sitä ei olisikaan olemassa paikallisesti." +" Ilmoita yksi osoite per rivi. Lisää uusi rivi painamalla enter." -#: 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 "Verkkotunnusta ei ole olemassa" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Paikallista verkkotunnusta ei ole olemassa" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Verkkotunnus(kset)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Käyttäjän hallinnoima verkkotunnus(kset)" -#: 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 "Yleiset" -#: 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 "Profiili" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Sähköposti" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Oikeudet" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Tili päivitetty" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Uusi tili" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Tili luotu" @@ -512,69 +625,86 @@ msgid "Email address" msgstr "Sähköpostiosoite" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Alias-osoite. Jos haluat luoda catchall-aliaksen, kirjoita vain verkkotunnus (@verkkotunnus.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Alias-osoite. Jos haluat luoda catchall-aliaksen, kirjoita vain verkkotunnus" +" (@verkkotunnus.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Vastaanottajat" -#: 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 "Osoitteet, joihin tämä alias osoittaa. Ilmoita yksi osoite per rivi, paina enter lisätäksesi uuden rivin." +#: 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 "" +"Osoitteet, joihin tämä alias osoittaa. Ilmoita yksi osoite per rivi, paina " +"enter lisätäksesi uuden rivin." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Vastaanottajaa ei ole määritelty" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Tyyppi" -#: 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 "Tämän verkkotunnuksen aliakset. Ilmoita vain yksi nimi per rivi, paina enter lisätäksesi uuden rivin." +#: 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 "" +"Tämän verkkotunnuksen aliakset. Ilmoita vain yksi nimi per rivi, paina enter" +" lisätäksesi uuden rivin." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "DKIM-avaimen valitsin-tietue (selector)" -#: 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 "Postilaatikoihin sovellettava oletuskiintiö. Voidaan ilmaista kilotavuina, megatavuina (oletus) tai gigatavuina. Arvo 0 tarkoittaa, ettei kiintiötä ole." +#: 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 "" +"Postilaatikoihin sovellettava oletuskiintiö. Voidaan ilmaista kilotavuina, " +"megatavuina (oletus) tai gigatavuina. Arvo 0 tarkoittaa, ettei kiintiötä " +"ole." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "verkkotunnuksen 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 "Nimellä %s on jo olemassa" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "DKIM-avainten tallennushakemistoa ei ole määritetty" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Et voi määritellä rajoittamatonta kiintiötä." -#: 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 "domain" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Luo verkkotunnuksen ylläpitäjä" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Luo automaattisesti järjestelmänvalvojan tälle verkkotunnukselle" -#: 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 @@ -583,51 +713,55 @@ msgstr "Luo automaattisesti järjestelmänvalvojan tälle verkkotunnukselle" msgid "Name" msgstr "Nimi" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "Ylläpitäjän nimi. Älä sisällytä verkkotunnuksen nimeä tähän, se liitetään automaattisesti." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Ylläpitäjän nimi. Älä sisällytä verkkotunnuksen nimeä tähän, se liitetään " +"automaattisesti." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Luo satunnainen salasana järjestelmänvalvojalle." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Postilaatikolla" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Luo ylläpitäjän postilaatikko." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Luo aliaksia" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Luo tälle verkkotunnukselle automaattisesti aliaksia" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Virheellinen muoto" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Muutettu verkkotunnus" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Vaihtoehdot" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Uusi verkkotunnus" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Verkkotunnus luotu" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Erotin" @@ -635,23 +769,23 @@ msgstr "Erotin" msgid "Recipient(s)" msgstr "Vastaanottaja(t)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Ilmoita yksi tai useampi vastaanottaja erotettuna pilkulla (',')" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Säilytä paikallisia kopioita" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Välitä viestit ja tallenna kopiot paikalliseen postilaatikkoon" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Valitse tiedosto" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Jatka virheestä" @@ -659,101 +793,103 @@ msgstr "Jatka virheestä" msgid "Don't treat duplicated objects as error" msgstr "Älä käsittele päällekkäisiä objekteja virheenä" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Salakirjoita salasanat" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Valitse tämä vaihtoehto, jos tiedostosi sisältämiä salasanoja ei ole salakirjoitettu" +msgstr "" +"Valitse tämä vaihtoehto, jos tiedostosi sisältämiä salasanoja ei ole " +"salakirjoitettu" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Tilin tuonti epäonnistui (%s): verkkotunnusta ei ole olemassa" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Postilaatikko {} on jo olemassa" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Tilin tuonti epäonnistui (%s): väärä kiintiöarvo" -#: 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 "Identiteetit" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Välitä" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Tarvitaan postilaatikko" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia." -#: 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 "DNS-tietuetta ei löytynyt %s" -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Ei %(type)s-tietueelle %(name)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 "Toimivia nimipalvelimia ei löytynyt" -#: 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 "DNS-kyselyn aikakatkaisu, kysely %s ei onnistu tällä hetkellä" -#: 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 "Virheellinen IP-osoiteformaatti {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Kohde on jo olemassa: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objektit tuotu onnistuneesti" -#: 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 "CSV-tiedosto ei ole UTF-8-muotoinen. Yritetään arvata koodausta" -#: 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 "CSV-tiedoston lukeminen käyttäen %(encoding)s-koodausta" -#: 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 "CSV-tiedostoa ei voi dekoodata käyttämällä %(encoding)s-koodausta" @@ -762,23 +898,23 @@ msgstr "CSV-tiedostoa ei voi dekoodata käyttämällä %(encoding)s-koodausta" 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 "MX {} DNSBL-palveluntarjoajan listaama {}" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "Verkkotunnuksella ei ole MX-tietuetta" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Verkkotunnuksella {} ei ole MX-tietuetta" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "Virheellinen MX-tietue: {}" -#: 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 "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}" @@ -787,160 +923,157 @@ msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Verkkotunnusta ei löydy." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Alias tällä nimellä on jo olemassa" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "osoite" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Alias-osoite." -#: 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 "käytössä" -#: 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 "Ota käyttöön tämän aliaksen aktivointi" -#: 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 "Kuvaus" -#: 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 "Vanhenee" -#: 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 "Virheellinen osoite" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Paikallista vastaanottajaa {}@{} ei löydy" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Virheellinen rivi: %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 "nimi" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Verkkotunnus" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "Viestien määrä, jonka tämä verkkotunnus voi lähettää päivässä" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Aktivoi tämä verkkotunnus" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Ota DNS-tarkistukset käyttöön" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Ota DNS-tarkistukset käyttöön tämän verkkotunnuksen osalta" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Ota DKIM-allekirjoitus käyttöön" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Jos aktivoit tämän ominaisuuden, tälle verkkotunnukselle luodaan DKIM-avain." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Jos aktivoit tämän ominaisuuden, tälle verkkotunnukselle luodaan DKIM-avain." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Avaimen pituus" -#: 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 "Virheellinen rivi" -#: 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 "Verkkotunnukselle {} ei löytynyt valtuutettua MX-tietuetta" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Virheellinen kiintiö verkkotunnukselle '{}'" -#: 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 "Virheellinen oletuspostilaatikon kiintiö verkkotunnukselle '{}'" -#: 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 "Oletuspostilaatikon kiintiö ei voi olla suurempi kuin toimialueen kiintiö" +msgstr "" +"Oletuspostilaatikon kiintiö ei voi olla suurempi kuin toimialueen kiintiö" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Aliaksen nimi" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "kohde" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Verkkotunnus, johon tämä alias osoittaa" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Tuntematon verkkotunnus %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Postilaatikon osoite (ilman @domain.tld-osaa)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Postilaatikon haku epäonnistui sijainnista (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Kiintiö on määritettävä" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -950,8 +1083,9 @@ msgstr "Verkkotunnuksen kiintiö ylitetty" #: 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 "Sulje" @@ -1000,9 +1134,9 @@ msgstr "Määrä" #: 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 "Verkkotunnuksen aliakset" @@ -1037,7 +1171,7 @@ msgstr "Luotu" msgid "Last login" msgstr "Viimeisin kirjautuminen" -#: 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 "Toissijainen sähköpostiosoite" @@ -1046,7 +1180,7 @@ msgstr "Toissijainen sähköpostiosoite" msgid "Not defined" msgstr "Ei määritelty" -#: 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 "Puhelinnumero" @@ -1124,7 +1258,7 @@ msgstr "Avatut hälytykset" #: 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 "Päivämäärä" @@ -1148,9 +1282,9 @@ msgstr "Luontipäivä" msgid "Last modification date" msgstr "Viimeisin muutospäivä" -#: 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 "Postilaatikon aliakset" @@ -1206,11 +1340,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 "Ei" @@ -1218,7 +1353,7 @@ msgstr "Ei" msgid "Generate new key" msgstr "Luo uusi avain" -#: 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 "Kyllä" @@ -1231,7 +1366,7 @@ msgid "Administrators" msgstr "Ylläpitäjät" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Poista tämä lupa" @@ -1268,13 +1403,13 @@ msgstr "Jonon ID" #: 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 "Lähde" #: 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 "Vastaanottaja" @@ -1305,9 +1440,10 @@ msgstr "pois käytöstä" msgid "Automatically forward emails to another address" msgstr "Lähetä sähköpostit automaattisesti eteenpäin toiseen osoitteeseen" -#: 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 "Päivitä" @@ -1324,12 +1460,39 @@ msgid "Fullname/Recipient" msgstr "Koko nimi/saaja" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
          • domain; name; quota; default mailbox quota; enabled
          • domainalias; name; targeted domain; enabled
          • relaydomain; name; target host; target port; service; enabled; verify recipients

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

          You can use a different character as separator.

          " -msgstr "Lähetä CSV-tiedosto, jonka rivit ovat jossakin seuraavista muodoista:
          • verkkotunnus; kiintiö; oletuspostilaatikon kiintiö; käytössä
          • verkkotunnuksen alias; nimi; kohteena oleva verkkotunnus; käytössä
          • välitysverkkotunnus; nimi; kohde-isäntä; kohde-portti; palvelu; käytössä; tarkista vastaanottajat

          Kunkin rivin ensimmäinen elementti on pakollinen, ja sen on oltava yhtä suuri kuin jokin edellisistä arvoista.

          Voit käyttää erottimena eri merkkiä.

          " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
            " +"
          • domain; name; quota; default mailbox quota; enabled
          • " +"
          • domainalias; name; targeted domain; enabled
          • " +"
          • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

          " +msgstr "" +"Lähetä CSV-tiedosto, jonka rivit ovat jossakin seuraavista muodoista:
            " +"
          • verkkotunnus; kiintiö; oletuspostilaatikon kiintiö; " +"käytössä
          • verkkotunnuksen alias; nimi; kohteena oleva " +"verkkotunnus; käytössä
          • välitysverkkotunnus; nimi; kohde-" +"isäntä; kohde-portti; palvelu; käytössä; tarkista vastaanottajat
          • " +"

          Kunkin rivin ensimmäinen elementti on pakollinen, ja sen on oltava " +"yhtä suuri kuin jokin edellisistä arvoista.

          Voit käyttää erottimena " +"eri merkkiä.

          " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
          • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
          • alias; address; enabled; recipient; recipient; ...

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

          You can use a different character as separator.

          " -msgstr "Lähetä CSV-tiedosto, jonka rivit ovat jossakin seuraavista muodoista:
          • tili; kirjautumistunnus; salasana; etunimi; sukunimi; käytössä; ryhmä; osoite; kiintiö; [, verkkotunnus, ...]
          • alias; osoite; käytössä; vastaanottaja; vastaanottaja; ...

          Kunkin rivin ensimmäinen elementti on pakollinen, ja sen on oltava yhtä suuri kuin jokin edellisistä arvoista.

          Voit käyttää erottimena eri merkkiä.

          " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
            " +"
          • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
          • alias; address; enabled; " +"recipient; recipient; ...

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

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

          " +msgstr "" +"Lähetä CSV-tiedosto, jonka rivit ovat jossakin seuraavista muodoista:
            " +"
          • tili; kirjautumistunnus; salasana; etunimi; sukunimi; käytössä; " +"ryhmä; osoite; kiintiö; [, verkkotunnus, ...]
          • alias; " +"osoite; käytössä; vastaanottaja; vastaanottaja; ...

          Kunkin" +" rivin ensimmäinen elementti on pakollinen, ja sen on oltava yhtä suuri kuin" +" jokin edellisistä arvoista.

          Voit käyttää erottimena eri merkkiä.

          " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1357,7 +1520,9 @@ msgstr "Päivitetty" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Tämä IP-osoite ei vastaa mitään parametreissa määritellyistä kelvollisista MX-osoitteista" +msgstr "" +"Tämä IP-osoite ei vastaa mitään parametreissa määritellyistä kelvollisista " +"MX-osoitteista" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1365,106 +1530,125 @@ msgstr "Tälle verkkotunnukselle ei löytynyt MX-tietuetta." #: 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 havaitsi, että verkkotunnus %(domain)s on listattu seuraavilla DNSBL-palveluntarjoajilla:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa havaitsi, että verkkotunnus %(domain)s on listattu seuraavilla " +"DNSBL-palveluntarjoajilla:" #: 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 "Verkkotunnuksen maine kärsii, ja on mahdollista, että siitä tulevia sähköposteja pidetään roskapostina. Sinun tulisi ottaa yhteyttä näihin palveluntarjoajiin ja pyytää heitä poistamaan havaitut IP-osoitteet listalta." +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 "" +"Verkkotunnuksen maine kärsii, ja on mahdollista, että siitä tulevia " +"sähköposteja pidetään roskapostina. Sinun tulisi ottaa yhteyttä näihin " +"palveluntarjoajiin ja pyytää heitä poistamaan havaitut IP-osoitteet " +"listalta." #: 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 havaitsi, että verkkotunnuksella %(domain)s ei ole voimassa olevaa MX-tietuetta:" +msgstr "" +"Modoboa havaitsi, että verkkotunnuksella %(domain)s ei ole voimassa olevaa " +"MX-tietuetta:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Hae" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Luettelo verkkotunnuksista" -#: 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 "Luettelo kiintiöistä" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "Viestilokit" -#: 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 "Tuonti" -#: 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 "Viedä" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Luettelo identiteeteistä" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Näytä verkkotunnuksen identiteetit" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "Näytä verkkotunnuksen hälytykset" -#: 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 "Muokkaa {}" -#: 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 "Poistetaanko %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Ei MX-tietuetta %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 "Virheellinen IP-osoiteformaatti %(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 "Ei MX-tietuetta %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Alias tällä nimellä on jo olemassa" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Luo" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Uusi alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias luotu" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias muokattu" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias poistettu" @@ -1474,36 +1658,36 @@ msgstr[1] "" msgid "MX records of {}" msgstr "MX-tietueet {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL-tiivistelmä {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Verkkotunnus poistettu" msgstr[1] "Verkkotunnukset poistettu" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Vie identiteetit" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Vie verkkotunnukset" -#: 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 "Virheellinen pyyntö" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Tili poistettu" msgstr[1] "Poistetut tilit" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Tuo verkkotunnuksia" @@ -1511,85 +1695,72 @@ msgstr "Tuo verkkotunnuksia" msgid "Import identities" msgstr "Tuo identiteetit" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Välitystieto päivitetty" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Virheellinen PIN-koodi" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "Kaksivaiheinen tunnistus (2FA) on jo käytössä" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" -msgstr "Kaksivaiheinen tunnistautuminen (2FA) ei ole käytössä" - -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Paikallinen" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" +#: 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: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 "Käyttäjäprofiili" - -#: 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 "Virheellinen syntaksi" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Virheellinen kierrosluku" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "Tämä koodi on virheellinen" - -#: 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 "Vanha salasana" -#: 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 "Kaksivaiheinen tunnistautuminen (2FA) ei ole käytössä" + +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Paikallinen" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Käyttäjäprofiili" + +#: 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 "Virheellinen syntaksi" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Virheellinen kierrosluku" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "Tämä koodi on virheellinen" + +#: 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 "Käytä seuraavaa koodia saadaksesi takaisin Modoboa-salasanasi: {}" -#: 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 "Käyttäjä '%s' kirjautui onnistuneesti sisään" -#: 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 "Salasanajärjestelmä ei vastaa toisiaan. Salasanan %s päivittäminen" @@ -1599,452 +1770,522 @@ msgstr "Salasanajärjestelmä ei vastaa toisiaan. Salasanan %s päivittäminen" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Salasanan hash-parametrit eivät täsmää. Salasanan %s päivittäminen" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Tunnistautuminen" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Autentikointityyppi" -#: 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 "Tunnistautumiseen käytettävä taustajärjestelmä" -#: 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 "Oletussalasanojen järjestelmä" -#: 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 "Sähköpostilaatikon salasanojen salaamiseen käytetty järjestelmä" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Kierrokset" -#: 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 "Käytettävien kierrosten määrä (vain sha256crypt ja sha512crypt käyttävät). Arvon on oltava välillä 1000 ja 99999999999." +#: 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 "" +"Käytettävien kierrosten määrä (vain sha256crypt ja sha512crypt käyttävät). " +"Arvon on oltava välillä 1000 ja 99999999999." -#: 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 "Päivitä salasanajärjestelmä kirjautumisen yhteydessä" -#: 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 "Päivitä käyttäjän salasana sisäänkirjautumisen yhteydessä käyttämään oletussalasanajärjestelmää" +msgstr "" +"Päivitä käyttäjän salasana sisäänkirjautumisen yhteydessä käyttämään " +"oletussalasanajärjestelmää" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Oletussalasana" -#: 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 "Automaattisesti luotujen tilien oletussalasana." -#: 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 "Satunnaisen salasanan pituus" -#: 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 "Satunnaisesti luotujen salasanojen pituus." -#: 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 "Päivitä salasanapalvelun URL-osoite" -#: 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)." -msgstr "Ulkoisen sivun URL-osoite, jolla käyttäjät voivat päivittää salasanansa. Koskee vain muita kuin paikallisia käyttäjiä. Eli niitä, jotka luodaan automaattisesti onnistuneen ulkoisen todennuksen jälkeen (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 "" +"Ulkoisen sivun URL-osoite, jolla käyttäjät voivat päivittää salasanansa. " +"Koskee vain muita kuin paikallisia käyttäjiä. Eli niitä, jotka luodaan " +"automaattisesti onnistuneen ulkoisen todennuksen jälkeen (LDAP, SMTP)." -#: 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 "Ilmoitus salasanan palautuksesta" -#: 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 "Väliaikainen viesti, joka näytetään salasanan nollaussivulla." -#: 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 "Ota salasanan palautus käyttöön tekstiviestillä" -#: 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 "Ota käyttöön salasanan palautus tekstiviestillä käyttäjille, jotka ovat täyttäneet puhelinnumeron." +msgstr "" +"Ota käyttöön salasanan palautus tekstiviestillä käyttäjille, jotka ovat " +"täyttäneet puhelinnumeron." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "SMS-palveluntarjoaja" -#: 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 "Valitse palveluntarjoaja, joka lähettää salasanan palautustekstiviestin" +msgstr "" +"Valitse palveluntarjoaja, joka lähettää salasanan palautustekstiviestin" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "LDAP-asetukset" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Palvelimen osoite" -#: 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 "LDAP-palvelimen IP-osoite tai DNS-nimi" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Palvelimen portti" -#: 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 "LDAP-palvelimen käyttämän TCP-portin numero" -#: 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 "Toisen palvelimen käyttöönotto (varapalvelin)" -#: 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" -msgstr "Ota käyttöön toissijainen LDAP-palvelin, jota käytetään, jos ensisijainen palvelin ei toimi" +#: 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 "" +"Ota käyttöön toissijainen LDAP-palvelin, jota käytetään, jos ensisijainen " +"palvelin ei toimi" -#: 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 "Toisen palvelimen osoite" -#: 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 "Toisen LDAP-palvelimen IP-osoite tai DNS-nimi" -#: 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 "Toisen palvelimen portti" -#: 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 "LDAP:n toissijaisen palvelimen käyttämä TCP-portin numero" -#: 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 "Käytä suojattua yhteyttä" -#: 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 "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "Kerro, onko LDAP-palvelin Active Directory -palvelin" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Järjestelmänvalvojien ryhmät" -#: 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 "Näiden LDAP Posix -ryhmien jäsenet luodaan verkkotunnuksen järjestelmänvalvojiksi. Käytä ';'-merkkejä ryhmien erottamiseen." +#: 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 "" +"Näiden LDAP Posix -ryhmien jäsenet luodaan verkkotunnuksen " +"järjestelmänvalvojiksi. Käytä ';'-merkkejä ryhmien erottamiseen." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Ryhmän tyyppi" -#: 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 "LDAP-ryhmän tyyppi, jota käytetään hakemiston kanssa." -#: 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 "Ryhmien hakupohja" -#: 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 "Ryhmien etsimiseen käytettävän hakupohjan erottuva nimi" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Salasana-attribuutti" -#: 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 "Määrite, jota käytetään käyttäjien salasanojen tallentamiseen" -#: 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 "LDAP-todennusasetukset" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Tunnistusmenetelmä" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Etsi ja sido" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Suora sidonta" -#: 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 "Valitse käytettävä todennusmenetelmä" -#: 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 "Sido 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 "Erotusnimi, jota käytetään LDAP-palvelimeen sitoutumisessa. Jätä tyhjäksi anonyymiä sidontaa varten" +#: 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 "" +"Erotusnimi, jota käytetään LDAP-palvelimeen sitoutumisessa. Jätä tyhjäksi " +"anonyymiä sidontaa varten" -#: 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 "Sido salasana" -#: 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 "Salasana, jota käytetään LDAP-palvelimeen sitoutumisessa (komennolla 'Bind DN')" +msgstr "" +"Salasana, jota käytetään LDAP-palvelimeen sitoutumisessa (komennolla 'Bind " +"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 "Käyttäjien hakupohja" -#: 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 "Käyttäjien etsimiseen käytettävän hakupohjan erisnimi" -#: 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 "Etsi suodatin" -#: 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 "Valinnainen suodatinmerkkijono (esim. '(objectClass=person)'). Tämän on oltava suluissa." +#: 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 "" +"Valinnainen suodatinmerkkijono (esim. '(objectClass=person)'). Tämän on " +"oltava suluissa." -#: 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 "Käyttäjän DN-malli" -#: 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 "Käyttäjän DN:n rakentamiseen käytettävä malli. Sen tulisi sisältää yksi paikanvaraaja (eli %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Käyttäjän DN:n rakentamiseen käytettävä malli. Sen tulisi sisältää yksi " +"paikanvaraaja (eli %(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 "LDAP-synkronointiasetukset" -#: 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 "Ota käyttöön vienti LDAP:iin" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" -msgstr "Ota käyttöön automaattinen synkronointi paikallisen tietokannan ja LDAP-hakemiston välillä" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" +msgstr "" +"Ota käyttöön automaattinen synkronointi paikallisen tietokannan ja LDAP-" +"hakemiston välillä" -#: 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 "Etäisen LDAP-tilin poistaminen, kun paikallinen tili poistetaan" -#: 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." -msgstr "Poista etä-LDAP-tili, kun paikallinen tili poistetaan. Muuten se poistetaan käytöstä." +#: 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 "" +"Poista etä-LDAP-tili, kun paikallinen tili poistetaan. Muuten se poistetaan " +"käytöstä." -#: 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 "Tilin DN-malli" -#: 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)" -msgstr "Malli, jota käytetään tilin DN:n muodostamiseen. Sen tulisi sisältää yksi paikanvaraaja (eli %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Malli, jota käytetään tilin DN:n muodostamiseen. Sen tulisi sisältää yksi " +"paikanvaraaja (eli %(user)s)" -#: 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 "Ota käyttöön tuonti LDAP:stä" -#: 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 "Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen tietokantaan" +msgstr "" +"Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen " +"tietokantaan" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Käyttäjätunnus-määrite" -#: 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 "Sen LDAP-attribuutin nimi, josta käyttäjänimi löytyy." -#: 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 "Ota Dovecot LDAP-synkronointi käyttöön" -#: 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 "LDAP-todennusasetuksia sovelletaan Dovecot-konfiguraatioon." -#: 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 "Dovecot LDAP -asetustiedosto" -#: 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 "Dovecotin LDAP-asetukset sisältävän määritystiedoston sijainti." -#: 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 "Työpöytä" -#: 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 "Mukautettu RSS-syöte" -#: 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 "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille" +msgstr "" +"Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille" -#: 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 "Piilota ominaisuudet-widget" -#: 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 "Piilota ominaisuudet-widget jälleenmyyjiltä ja verkkotunnuksen ylläpitäjiltä" +msgstr "" +"Piilota ominaisuudet-widget jälleenmyyjiltä ja verkkotunnuksen ylläpitäjiltä" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Ilmoitukset" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Lähettäjän osoite" -#: 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 "Ilmoitusten lähettämiseen käytettävä sähköpostiosoite." -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Julkinen API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Ota viestintä käyttöön" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Ota käyttöön viestintä Modoboan julkisen API:n kanssa" -#: 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 "Tarkista uudet versiot" -#: 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 "Tarkistaa automaattisesti, onko uudempi versio saatavana" -#: 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 "Lähetä sähköpostia, kun uusia versioita löytyy" -#: 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 "Lähetä sähköpostiviesti, joka ilmoittaa ylläpitäjille uusista versioista" +msgstr "" +"Lähetä sähköpostiviesti, joka ilmoittaa ylläpitäjille uusista versioista" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Vastaanottaja" -#: 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 "Uusia versioita koskevien ilmoitussähköpostiviestien vastaanottaja." -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Lähetä tilastot" -#: 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 "Lähetä tilastoja Modoboan julkiseen API:han (laskurit ja käytetyt laajennukset)" +msgstr "" +"Lähetä tilastoja Modoboan julkiseen API:han (laskurit ja käytetyt " +"laajennukset)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Sekalaiset" -#: 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 "Inaktiivisen tilin kynnysarvo" -#: 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 "Inaktiivisen tilin kynnysarvo" -#: 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 "Tiliä, jonka viimeisin kirjautumispäivä on suurempi kuin tämä kynnysarvo (päivinä), pidetään inaktiivisena" +#: 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 "" +"Tiliä, jonka viimeisin kirjautumispäivä on suurempi kuin tämä kynnysarvo " +"(päivinä), pidetään inaktiivisena" -#: 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 "Ylimpien ilmoitusten tarkistusväli" -#: 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 "Kahden ylimmän ilmoituksen tarkistuksen välinen aika (sekunteina)" -#: 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 "Lokitiedoston enimmäisikä" -#: 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 "Lokitietueen enimmäisikä päivinä" -#: 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 "Kohteita per sivu" -#: 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 "Näytettävien kohteiden määrä sivua kohti" -#: 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 "Oletusarvoinen ylhäältä uudelleenohjaus" -#: 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 "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole määritetty" +msgstr "" +"Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole " +"määritetty" -#: 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 "Olet asettanut USE_TZ:n arvoksi False, mikä voi aiheuttaa ongelmia kesä- ja talviajan vaihtuessa. (Sama paikallinen aika esiintyy kahdesti kellon vaihtumisen vuoksi)." +#: 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 "" +"Olet asettanut USE_TZ:n arvoksi False, mikä voi aiheuttaa ongelmia kesä- ja " +"talviajan vaihtuessa. (Sama paikallinen aika esiintyy kahdesti kellon " +"vaihtumisen vuoksi)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Aseta `USE_TZ = True` tiedostossa settings.py" @@ -2076,31 +2317,31 @@ msgstr "Harjoitus" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Vanha salasana" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Uusi salasana" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Vanhat salasanat eivät vastaa toisiaan" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Salasanat eivät täsmää" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Ota API-yhteys käyttöön" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Tarkistuskoodi" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Virheellinen koodi" @@ -2117,20 +2358,20 @@ msgstr "muokattu" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s käyttäjältä %(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 tekijänä " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "poistettu" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "käyttäjä {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "hallintakomento" @@ -2138,137 +2379,139 @@ msgstr "hallintakomento" msgid "You can't delete your own account" msgstr "Et voi poistaa omaa tiliäsi" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Yksi tai useampi päivitys on saatavilla" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Päivitys(kset) saatavilla" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Salli postilaatikoiden käyttöoikeus" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Salli tämän järjestelmänvalvojan pääsy käyttäjien postilaatikoihin" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "salasana" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "kieli" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Suositeltava kieli sivujen näyttämiseen." -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "Vaihtoehtoista sähköpostiosoitetta voidaan käyttää palautukseen." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Salasanan päivittäminen epäonnistui: LDAP-moduulia ei ole asennettu" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "tili" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Tuntematon" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Et voi tuoda tiliä, jonka rooli on suurempi kuin omasi" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" -msgstr "Yksinkertaisella käyttäjällä '%s' on oltava voimassa oleva sähköpostiosoite" +msgstr "" +"Yksinkertaisella käyttäjällä '%s' on oltava voimassa oleva sähköpostiosoite" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "käyttäjätunnus ja sähköpostiosoite eivät saa erota toisistaan kentissä '%s'" +msgstr "" +"käyttäjätunnus ja sähköpostiosoite eivät saa erota toisistaan kentissä '%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] "Salasanan on sisällettävä vähintään {}-numero." msgstr[1] "Salasanan on sisällettävä vähintään {} numeroa." -#: 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] "Salasanan on sisällettävä vähintään {} pientä kirjainta." msgstr[1] "Salasanan on sisällettävä vähintään {} pientä kirjainta." -#: 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] "Salasanan on sisällettävä vähintään {} isoa kirjainta." msgstr[1] "Salasanan on sisällettävä vähintään {} isoa kirjainta." -#: 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] "Salasanan on sisällettävä vähintään {} erikoismerkki." msgstr[1] "Salasanan on sisällettävä vähintään {} erikoismerkkiä." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." msgstr "Salasanan on sisällettävä yhdistelmä erilaisia merkkejä." -#: 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 "API-päätepiste" -#: 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 "OVH Europe" -#: 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 "OVH US" -#: 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 "OVH Pohjois-Amerikka" -#: 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 "So you start Eurooppa" -#: 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 "So you Start Pohjois-Amerikka" -#: 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 "Kimsufi Eurooppa" -#: 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 "Kimsufi Pohjois-Amerikka" -#: 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 "Sovellusavain" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Sovelluksen salainen avain" -#: 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 "Asiakkaan avain" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2295,8 +2538,12 @@ msgid "Latest news" msgstr "Ajankohtaista" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Lisätietoja virallisesta blogista." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Lisätietoja virallisesta blogista." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2308,8 +2555,12 @@ msgstr "Hallitse Modoboa API:n käyttöä" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "API:n dokumentaatio on saatavilla täällä." +msgid "" +"A documentation of the API is available here." +msgstr "" +"API:n dokumentaatio on saatavilla täällä." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2320,7 +2571,7 @@ msgstr "API-käyttötunniste" msgid "Hello %(user)s." msgstr "Hei %(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 "Tiedot" @@ -2334,7 +2585,8 @@ msgstr "Yksi tai useampi päivitys on saatavilla!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Tarkista seuraavasta luettelosta komponentti(t), jotka voidaan päivittää." +msgstr "" +"Tarkista seuraavasta luettelosta komponentti(t), jotka voidaan päivittää." #: core/templates/core/information.html:10 msgid "Applications" @@ -2352,7 +2604,7 @@ msgstr "Viimeisin versio" msgid "Active users" msgstr "Aktiiviset käyttäjät" -#: 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 "Lokit" @@ -2382,7 +2634,7 @@ msgstr[1] "" "\n" " Seuraavat päivitykset ovat saatavilla:\n" -#: 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 "Parametrit" @@ -2399,12 +2651,12 @@ msgstr "Tallenna" msgid "Modoboa settings" msgstr "Modoboan asetukset" -#: 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 "Asetukset" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Asetukset" @@ -2424,7 +2676,7 @@ msgstr "Päivitä henkilökohtaiset tietosi" msgid "Click here to update your password" msgstr "Klikkaa tästä päivittääksesi salasanasi" -#: 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 "Turvallisuus" @@ -2433,7 +2685,9 @@ msgid "Two-Factor authentication" msgstr "Kaksivaiheinen tunnistus" #: 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 "" "Asenna soft token -autentikointiohjelma, kuten FreeOTP tai Google\n" " Authenticator sovelluskaupasta ja käytä \n" @@ -2448,12 +2702,17 @@ msgid "Register" msgstr "Rekisteröidy" #: 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 "Onnittelut! Kaksivaiheinen tunnistus on nyt käytössä tililläsi." #: 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 "" "Näitä palautuskoodeja voidaan käyttää kutakin kerran. Näin voit\n" " saada tilisi takaisin, jos esimerkiksi kadotat puhelimesi.\n" @@ -2464,17 +2723,29 @@ msgstr "" msgid "Two-Factor Authentication is enabled for your account." msgstr "Kaksivaiheinen tunnistautuminen on käytössä tililläsi." +#: 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 "Poista kaksivaiheinen tunnistautuminen (2FA) käytöstä" +#: 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." -msgstr "Kaksivaiheista tunnistusta (2FA) ei ole vielä aktivoitu tilillesi. Tämän ominaisuuden käyttöönotto lisää tilisi turvallisuutta." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." +msgstr "" +"Kaksivaiheista tunnistusta (2FA) ei ole vielä aktivoitu tilillesi. Tämän " +"ominaisuuden käyttöönotto lisää tilisi turvallisuutta." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2488,71 +2759,77 @@ msgstr "Uudet palautuskoodit" msgid "Here are your new recovery codes. " msgstr "Tässä ovat uudet palautuskoodit. " +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Salakirjoita salasanat" + #: 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 "Kirjaudu ulos" -#: 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 "Modoboan ydinosa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Tallennetut parametrit" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "Käyttäjätunnuksesi ja salasanasi eivät täsmää. Yritä uudelleen." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Käyttäjä '{}' kirjautui onnistuneesti ulos" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profiili päivitetty" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Asetukset tallennettu" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Oikeudet päivitetty" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "LDAP-asetukset" -#: 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 #, fuzzy #| msgid "No MX record for %s" msgid "Show DMARC report for {}" msgstr "Ei MX-tietuetta %s" -#: 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 #, fuzzy #| msgid "Not defined" msgid "Not resolved" @@ -2598,11 +2875,11 @@ msgstr "Toisen palvelimen portti" 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 "" @@ -2682,95 +2959,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "Väärä ip4-mekanismin syntaksi" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "Väärä IPv4-osoitteen muoto" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "Väärä ip6-mekanismin syntaksi" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "Väärä IPv6-osoitteen muoto" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "Virheellinen syntaksi {}-mekanismille" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "Virheellinen maski löydetty {}" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "Tämä ei ole SPF-tietue" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "Tuntematon mekanismi {}" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "Tuntematon muunnin {}" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "Havaittu kaksoismuunnin {}" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "Mekanismia ei löydetty" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "DKIM-tietue ei kelpaa" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "Virheellinen tunniste {}" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "Tietueesta ei löytynyt avainta" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "Väärä arvo {} tunnisteelle {}" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "Väärä arvo {} tunnisteelle {}:" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr " ei kokonaisluku" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr " pienempi kuin {}" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr " on suurempi kuin {}" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "Epäkelpo DMARC-tietue" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "Tuntematon tunniste {}" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "Puuttuu vaadittu p-tunniste" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "Julkiset avaimet eivät täsmää" @@ -2799,8 +3076,12 @@ msgid "A DNS record has been found but its syntax is not valid:" msgstr "DNS-tietue on löydetty, mutta sen syntaksi ei ole oikein:" #: 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." -msgstr "Tässä on esimerkki DNS-konfiguraatiosta (bind-muodossa). Korvaa [ ]:n välissä olevat arvot sopivilla arvoilla." +msgid "" +"Here is an example of DNS configuration (bind format). Replace value between" +" [ ] by the appropriate ones." +msgstr "" +"Tässä on esimerkki DNS-konfiguraatiosta (bind-muodossa). Korvaa [ ]:n " +"välissä olevat arvot sopivilla arvoilla." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" @@ -2815,7 +3096,7 @@ msgstr "Automaattinen asetusten määrittäminen" msgid "hostname of your automx server" msgstr "automx-palvelimen nimi" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "{} tietueesta {}" @@ -2823,97 +3104,105 @@ msgstr "{} tietueesta {}" msgid "Auto configuration records for {}" msgstr "Automaattisen määrityksen asetukset {}" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "DNS-määritykset" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 #, fuzzy #| msgid "Access updated" msgid "Access denied" msgstr "Oikeudet päivitetty" -#: 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 "Ota DKIM-allekirjoitus käyttöön" -#: 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 "Ota DKIM-allekirjoitus käyttöön" -#: 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 "Luo aliaksia" -#: 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 "LDAP-asetukset" -#: 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 #, fuzzy #| msgid "Auto configuration" msgid "IMAP Migration" msgstr "Automaattinen asetusten määrittäminen" -#: 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 @@ -2922,52 +3211,52 @@ msgstr "" msgid "IMAP migration" msgstr "Hallinnointinäkymä" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "LDAP-tilin luominen epäonnistui: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "LDAP-tilin päivittäminen epäonnistui: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "LDAP-tilin poistaminen epäonnistui: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "LDAP-tilin poistaminen käytöstä epäonnistui: {}" -#: 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 "Ota käyttöön viestintä Modoboan julkisen API:n kanssa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Yhteyttä tietokantaan %s ei ole määritetty" -#: 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 "ei pysty määrittämään merkkijonon koodausta" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Lupa evätty: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Lupa evätty" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Syötä kelvollinen verkkotunnus" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Syötä oikean muotoinen sähköpostiosoite." @@ -2977,133 +3266,176 @@ msgstr "Syötä oikean muotoinen sähköpostiosoite." msgid "Submit" msgstr "Lähetä" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Salasanan päivitys epäonnistui: {}" -#: 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 "Aihe" -#: 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 "Oletusarvoiset järjestelmänvalvojakohtaiset rajoitukset" -#: 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 "Ota käyttöön järjestelmänvalvojakohtaiset rajoitukset" -#: 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 "Ota käyttöön tai poista käytöstä järjestelmänvalvojakohtaiset rajoitukset" +msgstr "" +"Ota käyttöön tai poista käytöstä järjestelmänvalvojakohtaiset rajoitukset" -#: 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 "Verkkotunnuksen ylläpitäjät" -#: 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 "Uuden järjestelmänvalvojan sallittujen verkkotunnusten järjestelmänvalvojien enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden järjestelmänvalvojan sallittujen verkkotunnusten järjestelmänvalvojien" +" enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman " +"määrän luomisen)" -#: 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 "Uuden järjestelmänvalvojan sallittujen verkkotunnusten enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden järjestelmänvalvojan sallittujen verkkotunnusten enimmäismäärä. (0 " +"kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Uuden järjestelmänvalvojan sallittujen verkkotunnusten enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden järjestelmänvalvojan sallittujen verkkotunnusten enimmäismäärä. (0 " +"kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Uuden järjestelmänvalvojan sallittujen postilaatikoiden enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden järjestelmänvalvojan sallittujen postilaatikoiden enimmäismäärä. (0 " +"kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Uuden järjestelmänvalvojan sallittujen aliasten enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden järjestelmänvalvojan sallittujen aliasten enimmäismäärä. (0 kieltää " +"kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Kiintiö, jonka jälleenmyyjä saa jakaa luomiensa verkkotunnusten kesken. (0 tarkoittaa, ettei kiintiötä ole)" +#: 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 "" +"Kiintiö, jonka jälleenmyyjä saa jakaa luomiensa verkkotunnusten kesken. (0 " +"tarkoittaa, ettei kiintiötä ole)" -#: 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 "Oletusarvoiset verkkotunnuskohtaiset rajoitukset" -#: 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 "Ota käyttöön verkkotunnuskohtaiset rajoitukset" -#: 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 "Ota käyttöön tai poista käytöstä verkkotunnuskohtaiset rajoitukset" -#: 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 "Uuden verkkotunnuksen sallittujen ylläpitäjien enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden verkkotunnuksen sallittujen ylläpitäjien enimmäismäärä. (0 kieltää " +"kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Uuden verkkotunnuksen sallittujen aliasten enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden verkkotunnuksen sallittujen aliasten enimmäismäärä. (0 kieltää kaiken " +"luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Uuden verkkotunnuksen sallittujen postilaatikoiden enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden verkkotunnuksen sallittujen postilaatikoiden enimmäismäärä. (0 kieltää" +" kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: 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 "Uuden verkkotunnuksen sallittujen aliasten enimmäismäärä. (0 kieltää kaiken luomisen, -1 sallii rajoittamattoman määrän luomisen)" +#: 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 "" +"Uuden verkkotunnuksen sallittujen aliasten enimmäismäärä. (0 kieltää kaiken " +"luomisen, -1 sallii rajoittamattoman määrän luomisen)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Rajoitukset" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Verkkotunnusten enimmäismäärä, jonka tämä käyttäjä voi luoda" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Verkkotunnusten aliasten enimmäismäärä, jonka tämä käyttäjä voi luoda" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Postilaatikoiden enimmäismäärä, jonka tämä käyttäjä voi luoda" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Postilaatikon aliasten enimmäismäärä, jonka tämä käyttäjä voi luoda" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Verkkotunnuksen ylläpitäjien enimmäismäärä, jonka tämä käyttäjä voi luoda" +msgstr "" +"Verkkotunnuksen ylläpitäjien enimmäismäärä, jonka tämä käyttäjä voi luoda" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Tämän jälleenmyyjän verkkotunnusten kesken jaettu kiintiö" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Tämän verkkotunnuksen aliaksien enimmäismäärä." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Tämän verkkotunnuksen postilaatikoiden enimmäismäärä." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Tämän verkkotunnuksen postilaatikkoaliaksien enimmäismäärä." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "Tämän verkkotunnuksen ylläpitäjien enimmäismäärä." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Virheellinen raja" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Resurssit" @@ -3116,11 +3448,11 @@ msgstr "%s: raja saavutettu" msgid "Not enough resources" msgstr "Resurssit eivät riitä" -#: 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 "Et saa määritellä rajoittamattomia arvoja" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "rajoittamaton" @@ -3129,91 +3461,91 @@ msgstr "rajoittamaton" msgid "Resources usage" msgstr "Resurssien käyttö" -#: 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 "Polku lokitiedostoon" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Polku tilastojen keräämiseen käytettävään lokitiedostoon" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Hakemisto, johon RRD-tiedostot tallennetaan" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Polku hakemistoon, johon RRD-tiedostot on tallennettu" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Näytä harmaalle listalle merkityt viestit" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Kovien ja pehmeiden hylkäysten erottaminen toisistaan (greylisting)" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "Tilastot" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "Rrdtoolsin binääritiedostoa ei löydy." -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Keskimääräinen liikenne (msgs/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "lähetetyt viestit" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "vastaanotetut viestit" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "palautuneet viestit" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "hylätyt viestit" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "virusviestit" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "roskapostiviestit" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "harmaalla listalla olevat viestit" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Keskimääräinen normaali liikennekoko (tavua/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "vastaanotettu koko" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "lähetetty koko" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Postiliikenne" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Keskimääräinen tilin luominen (tili/tunti)" @@ -3241,199 +3573,205 @@ msgstr "Käytä" msgid "No statistics available" msgstr "Tilastoja ei ole saatavilla" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Päivä" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Viikko" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Kuukausi" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Vuosi" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Mukautettu" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Tuntematon graafinen sarja" -#: maillog/views.py:69 +#: maillog/views.py:71 msgid "Unknown domain" msgstr "Tuntematon verkkotunnus %s" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Väärä mukautettu ajanjakso" -#: 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 "Päivitä henkilökohtaiset tietosi" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Hakemistoa ei löydy." -#: 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 "Tältä verkkotunnukselta ei ole saatavilla tietoja." -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "Enable SPF checks" msgid "Enable PDF credentials" msgstr "Ota SPF-tarkistukset käyttöön" -#: 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory to save documents into" msgstr "Hakemisto, johon RRD-tiedostot tallennetaan" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 #, fuzzy #| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" msgstr "Polku hakemistoon, johon RRD-tiedostot on tallennettu" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 #, fuzzy #| msgid "Security" msgid "Security options" msgstr "Turvallisuus" -#: 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 "spam messages" msgid "Custom message" msgstr "roskapostiviestit" -#: 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 "Palvelimen osoite" -#: 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 "Palvelimen portti" -#: 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 "Palvelimen osoite" -#: 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 "Palvelimen portti" -#: 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 "" @@ -3441,15 +3779,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" @@ -3458,42 +3796,48 @@ 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 "Vaihda salasana" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 #, fuzzy #| msgid "Auto configuration" msgid "PC/Tablet/Smartphone configuration:" msgstr "Automaattinen asetusten määrittäminen" -#: 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 "" @@ -3502,27 +3846,168 @@ 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 "Päivittäinen lähetysraja saavutettu" + +#: policyd/core.py:125 +msgid "[modoboa] Sending limit reached" +msgstr "[modoboa] Lähetysraja saavutettu" + +#: policyd/templates/policyd/notifications/limit_reached.html:3 +#, python-format +msgid "Daily limit of the following %(ltype)s has been reached: %(name)s." +msgstr "Seuraavien %(ltype)s päivittäinen raja on saavutettu: %(name)s." + +#: postfix_autoreply/api/v2/serializers.py:28 postfix_autoreply/forms.py:98 +#, fuzzy +#| msgid "This code is invalid" +msgid "This date is over" +msgstr "Tämä koodi on virheellinen" + +#: 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 "Ei voi olla suurempi kuin verkkotunnuksen kiintiö" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Tilin automaattinen poistaminen" + +#: 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 "Verkkotunnuksen oletuskiintiö" + +#: 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 "spam messages" +msgid "Auto-reply message" +msgstr "roskapostiviestit" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Aihe" + +#: 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 "Ei tuettu palvelu" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Kuljetusasetukset" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Siirto" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "kohde-isäntäkoneen osoite" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "kohde-isännän portti" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "tarkistaa vastaanottajat" @@ -3592,16 +4077,22 @@ msgstr "Unohditko salasanasi?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Salasanasi on asetettu. Voit nyt kirjautua sisään." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Salasanasi on asetettu. Voit nyt kirjautua sisään." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Vaihda salasana" #: 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 "Salasananvaihtolinkkisi vaikuttaa vialliselta. Tilaa uusi vaihtolinkki." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Salasananvaihtolinkkisi vaikuttaa vialliselta. Tilaa uusi vaihtolinkki." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3612,19 +4103,35 @@ msgid "Resend code" msgstr "Lähetä koodi uudelleen" #: 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 "

          Olemme lähettäneet sinulle sähköpostitse ohjeet salasanasi asettamista varten, jos tili on olemassa antamallasi sähköpostiosoitteella. Sinun pitäisi saada ne pian.

          Jos et saa sähköpostia, varmista, että olet syöttänyt ensisijaisen osoitteesi, ja tarkista roskapostikansiosi.

          " +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 "" +"

          Olemme lähettäneet sinulle sähköpostitse ohjeet salasanasi asettamista " +"varten, jos tili on olemassa antamallasi sähköpostiosoitteella. Sinun " +"pitäisi saada ne pian.

          Jos et saa sähköpostia, varmista, että olet " +"syöttänyt ensisijaisen osoitteesi, ja tarkista roskapostikansiosi.

          " #: 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 "Voit aloittaa %(username)s Modoboa-tilisi salasanan palautusprosessin klikkaamalla alla olevaa linkkiä:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Voit aloittaa %(username)s Modoboa-tilisi salasanan palautusprosessin " +"klikkaamalla alla olevaa linkkiä:" #: 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 "Jos yllä olevaa linkkiä klikkaamalla ei onnistu, kopioi ja liitä URL-osoite uuteen selainikkunaan." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Jos yllä olevaa linkkiä klikkaamalla ei onnistu, kopioi ja liitä URL-osoite " +"uuteen selainikkunaan." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3643,27 +4150,21 @@ msgstr "Modoboa-salasanan palautus" msgid "Invalid value" msgstr "Virheellinen arvo" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "malli" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "palvelu" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "seuraava hyppy" -#~ msgid "Daily sending limit reached" -#~ msgstr "Päivittäinen lähetysraja saavutettu" - -#~ msgid "[modoboa] Sending limit reached" -#~ msgstr "[modoboa] Lähetysraja saavutettu" - -#, python-format -#~ msgid "Daily limit of the following %(ltype)s has been reached: %(name)s." -#~ msgstr "Seuraavien %(ltype)s päivittäinen raja on saavutettu: %(name)s." +#, fuzzy +#~ msgid "An alias with this name already exists." +#~ msgstr "Alias tällä nimellä on jo olemassa" #~ msgid "Mailboxes owner" #~ msgstr "Postilaatikoiden omistaja" diff --git a/modoboa/locale/fr/LC_MESSAGES/django.po b/modoboa/locale/fr/LC_MESSAGES/django.po index 04842301c..9b34ca62b 100644 --- a/modoboa/locale/fr/LC_MESSAGES/django.po +++ b/modoboa/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Antoine Nguyen , 2016-2017,2020,2023 # Christophe CHAUVET , 2018 @@ -15,528 +15,605 @@ 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: 2011-07-01 08:15+0000\n" "Last-Translator: Antoine Nguyen , 2016-2017,2020,2023\n" "Language-Team: French (http://app.transifex.com/tonio/modoboa/language/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: 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 "Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo (défaut) ou Go. Une valeur à 0 signifie pas de quota." +msgstr "" +"Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo " +"(défaut) ou Go. Une valeur à 0 signifie pas de quota." -#: admin/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 "Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 signifie pas de quota." +msgstr "" +"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 " +"signifie pas de quota." -#: 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 "Aucun enregistrement MX autorisé trouvé pour ce domaine" -#: 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 "Ne peut pas être supérieur au quota du domaine" -#: 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 "Permission refusée." -#: 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 "Ce champ est requis" -#: admin/api/v1/serializers.py:186 +#: admin/api/v1/serializers.py:235 msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "Liste des domaines administrés (revendeurs et administrateurs de domaine seulement)." +msgstr "" +"Liste des domaines administrés (revendeurs et administrateurs de domaine " +"seulement)." -#: 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 "Non autorisé pour ce rôle." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Doit être égale au champ full_address dans mailbox" -#: 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 "Ce champ est requis." -#: 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 "Le domaine local {} n'existe pas" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Une liste de destinataire" -#: 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 "L'utilisateur '%s' existe déjà" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Vous n'avez pas accès à ce domaine." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Vous n'avez pas accès à cette boîtes aux lettres." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Voici votre nouveau mot de passe Modoboa :" -#: 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 "L'utilisateur '%s' existe déjà" -#: 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 "Doit être un entier positif" -#: 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 "Répertoire introuvable." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 msgid "Directory non-writable" msgstr "Répertoire inaccessible en écriture" -#: 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 "impossible de trouver openssl, veuillez vous assurer vous qu'il est installé." +msgstr "" +"impossible de trouver openssl, veuillez vous assurer vous qu'il est " +"installé." -#: admin/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 "Ce champ n'autorise que des adresses IP correctes (ou des réseaux)" -#: admin/api/v2/serializers.py:263 +#: admin/api/v2/serializers.py:265 msgid "Please disable imap migration before disabling this option." -msgstr "Veuillez désactiver la migration IMAP avant de désactiver cette option" +msgstr "" +"Veuillez désactiver la migration IMAP avant de désactiver cette option" -#: 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 "Définissez au moins un réseau / une adresse autorisé" -#: admin/api/v2/serializers.py:508 +#: admin/api/v2/serializers.py:511 msgid "A mailbox is required to create aliases." msgstr "Une boîte aux lettres est requises pour créer des alias" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 msgid "Unknown status" msgstr "Statut inconnu" -#: 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 "Vous n'avez pas accès à ce domaine" -#: 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 "Vous ne pouvez pas supprimer votre propre domaine" -#: admin/api/v2/viewsets.py:384 +#: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" msgstr "Aucun ID d'alarme fourni" -#: admin/api/v2/viewsets.py:389 +#: admin/api/v2/viewsets.py:396 msgid "Received invalid alarm id(s)" msgstr "ID(s) incorrect(s) d'alarme(s) reçu(s)" -#: 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 "Domaines" -#: 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 "Activer la vérification des 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 "Vérifie que chaque domaine a un enregistrement MX valide" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "MX(s) valide(s)" -#: admin/app_settings.py:37 admin/app_settings.py:312 +#: 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 "Une liste d'adresses IP ou réseau que chaque enregistrement MX doit respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la respecte pas." +msgstr "" +"Une liste d'adresses IP ou réseau que chaque enregistrement MX doit " +"respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la " +"respecte pas." -#: 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 "Les nouveaux domaines doivent utiliser un ou plusieurs MX autorisés" -#: admin/app_settings.py:48 admin/app_settings.py:321 +#: 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 "Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une adresse autorisée." +msgstr "" +"Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une " +"adresse autorisée." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Activer les tests SPF" + +#: 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 "Activer les tests SPF" -#: 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 "Vérifie que chaque domaine a un enregistrement SPF valide" -#: 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 "Activer les tests DKIM" -#: 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 "Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un enregistrement DNS valide" +msgstr "" +"Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un " +"enregistrement DNS valide" -#: 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 "Activer les tests DMARC" -#: 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 "Vérifie que chaque domaine a un enregistrement DMARC valide" -#: 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 "Activer les tests d'autoconfiguration" -#: 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 "Vérifie que chaque domaine a les enregistrements nécessaires à l'autoconfiguration" +msgstr "" +"Vérifie que chaque domaine a les enregistrements nécessaires à " +"l'autoconfiguration" -#: 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 "Activer les vérifications 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 "Vérifie chaque domaine auprès des fournisseurs de DNSBL" -#: 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 "Serveur DNS personnalisé" -#: 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 "Utiliser un serveur DNS personnalisé à la place de la configuration par défaut du serveur" +msgstr "" +"Utiliser un serveur DNS personnalisé à la place de la configuration par " +"défaut du serveur" -#: 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 "Répertoire de stockage des clés DKIM" -#: admin/app_settings.py:107 admin/app_settings.py:367 +#: 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 "Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il n'est pas lisible par le monde extérieur." +msgstr "" +"Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. " +"Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il " +"n'est pas lisible par le monde extérieur." -#: admin/app_settings.py:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "Taille par défaut d'une clé 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 "Taille par défaut en octets des clés DKIM nouvellement générées." -#: 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 "Quota de domaine par défaut" -#: admin/app_settings.py:127 admin/app_settings.py:381 +#: 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 "Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué." +msgstr "" +"Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne " +"spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué." -#: admin/app_settings.py:133 admin/app_settings.py:386 +#: admin/app_settings.py:128 admin/app_settings.py:426 msgid "Default domain sending limit" msgstr "Limite d'envoi par défaut du domaine" -#: admin/app_settings.py:136 admin/app_settings.py:388 +#: 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 "Nombre maximal de messages que les nouveaux domaines seront autorisés à envoyer par jour. Laisser vide pour n'indiquer aucune limite." +msgstr "" +"Nombre maximal de messages que les nouveaux domaines seront autorisés à " +"envoyer par jour. Laisser vide pour n'indiquer aucune limite." -#: admin/app_settings.py: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 "Boites" -#: 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 "Gérer les boites sur le système de fichiers" -#: admin/app_settings.py:147 admin/app_settings.py:400 +#: 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 "Renommer ou supprimer les boites sur le système de fichiers quand elles sont renommées ou supprimées dans Modoboa" +msgstr "" +"Renommer ou supprimer les boites sur le système de fichiers quand elles sont" +" renommées ou supprimées dans Modoboa" -#: admin/app_settings.py:153 admin/app_settings.py:405 -#: admin/forms/domain.py:49 admin/models/domain.py:32 +#: 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 "Quota par défaut pour une boîte aux lettres" -#: admin/app_settings.py:156 +#: 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 "Quota par défaut utilisé pour les boîtes aux lettres nouvellement créés. Une valeur à 0 signifie pas de quota." +msgstr "" +"Quota par défaut utilisé pour les boîtes aux lettres nouvellement créés. Une" +" valeur à 0 signifie pas de quota." -#: admin/app_settings.py:162 admin/app_settings.py:413 +#: admin/app_settings.py:157 admin/app_settings.py:467 msgid "Default mailbox sending limit" msgstr "Limite d'envoi par défaut d'une boîte aux lettres" -#: admin/app_settings.py:165 admin/app_settings.py:415 +#: 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 "Nombre maximal de messages que les nouveaux comptes seront autorisés à envoyer par jour. Laisser vide pour n'indiquer aucune limite." +msgstr "" +"Nombre maximal de messages que les nouveaux comptes seront autorisés à " +"envoyer par jour. Laisser vide pour n'indiquer aucune limite." -#: admin/app_settings.py:171 admin/app_settings.py:420 +#: admin/app_settings.py:166 admin/app_settings.py:477 msgid "Automatic account removal" msgstr "Suppression automatique de compte" -#: 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 "Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en même temps" +msgstr "" +"Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en " +"même temps" -#: 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 "Création automatique de domaine/boite aux lettres" -#: admin/app_settings.py:181 admin/app_settings.py:428 +#: admin/app_settings.py:177 admin/app_settings.py:491 msgid "" "Create a domain and a mailbox when an account is automatically created." -msgstr "Créer un domaine et une boite aux lettres quand un compte est créé automatiquement." +msgstr "" +"Créer un domaine et une boite aux lettres quand un compte est créé " +"automatiquement." -#: 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 "Créer un alias quand une boite aux lettres est renommée" -#: 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 "Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres est renommée." +msgstr "" +"Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres " +"est renommée." -#: admin/app_settings.py:407 +#: 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 "Quota par défaut (en Mo) appliqué aux nouveaux domaines quand aucune valeur n'est spécifiée. Une valeur de 0 signifie pas de quota." +msgstr "" +"Quota par défaut (en Mo) appliqué aux nouveaux domaines quand aucune valeur " +"n'est spécifiée. Une valeur de 0 signifie pas de quota." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administration" -#: 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 "Domaine" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Domaine relais" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "Ouverte" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "Fermée" -#: 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 "Nom d'utilisateur" -#: admin/forms/account.py:34 +#: 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 "Le nom de l'utilisateur. Doit être une adresse e-mail valide pour les utilisateurs simples ou les administrateurs avec une boite aux lettres." +msgstr "" +"Le nom de l'utilisateur. Doit être une adresse e-mail valide pour les " +"utilisateurs simples ou les administrateurs avec une boite aux lettres." -#: admin/forms/account.py: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 "Rôle" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Choisir" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Quel niveau de permission cet utilisateur aura" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Mot de passe aléatoire" -#: admin/forms/account.py:46 +#: 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 "Générer un mot de passe aléatoire. Si vous modifiez ce compte et cochez cette case, un nouveau mot de passe sera généré." +msgstr "" +"Générer un mot de passe aléatoire. Si vous modifiez ce compte et cochez " +"cette case, un nouveau mot de passe sera généré." -#: admin/forms/account.py: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 "Mot de passe" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Confirmation" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Entrer le même mot de passe, pour vérification." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Activé" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Seuls les super administrateurs sont autorisés pour ce mode" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Les deux mots de passe ne correspondent pas." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Vous ne pouvez pas désactiver votre propre compte" -#: 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 "Créer un alias en utilisant l'ancienne adresse" -#: 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 "Quota" -#: admin/forms/account.py:236 +#: 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 "Quota pour cette boite. Peut être exprimé en Ko, Mo (défaut) ou Go. Définir une valeur spécifique ou utiliser la valeur par défaut du domaine. Laisser vide pour définir une valeur illimitée (interdit pour les admins. de domaine)." +msgstr "" +"Quota pour cette boite. Peut être exprimé en Ko, Mo (défaut) ou Go. Définir " +"une valeur spécifique ou utiliser la valeur par défaut du domaine. Laisser " +"vide pour définir une valeur illimitée (interdit pour les admins. de " +"domaine)." -#: admin/forms/account.py: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 "Limite d'envoi des messages" -#: 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 "Nombre de messages que ce compte peut envoyer par jour" -#: 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" -#: admin/forms/account.py:256 +#: 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 de cette boîte aux lettres. Indiquer une adresse par champ, appuyer sur ENTREE pour ajouter un nouveau champ. Pour créer un alias 'fourre-tout', entrer seulement le nom du domaine (@domain.tld)." +msgstr "" +"Alias de cette boîte aux lettres. Indiquer une adresse par champ, appuyer " +"sur ENTREE pour ajouter un nouveau champ. Pour créer un alias 'fourre-tout'," +" entrer seulement le nom du domaine (@domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Adresses d'envoi" -#: admin/forms/account.py:265 +#: 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 "Adresse(s) d'envoi supplémentaire(s) pour ce compte. L'utilisateur sera autorisé à envoyer des e-mails en utilisant la/les adresse(s) déclarée(s), même si elle(s) n'existe(nt) pas localement. Indiquer une adresse par champ. Appuyer sur ENTREE pour ajouter un nouveau champ." +msgstr "" +"Adresse(s) d'envoi supplémentaire(s) pour ce compte. L'utilisateur sera " +"autorisé à envoyer des e-mails en utilisant la/les adresse(s) déclarée(s), " +"même si elle(s) n'existe(nt) pas localement. Indiquer une adresse par champ." +" Appuyer sur ENTREE pour ajouter un nouveau champ." -#: admin/forms/account.py: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 "Domaine inexistant" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Le domaine local n'existe pas" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domaine(s)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domaine(s) que cet utilisateur administre" -#: 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 "Général" -#: 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 "Courrier" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Permissions" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Compte mis à jour" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nouveau compte" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Compte créé" @@ -552,74 +629,82 @@ msgstr "Adresse email" msgid "" "The alias address. To create a catchall alias, just enter the domain name " "(@domain.tld)." -msgstr "L'adresse de l'alias. Pour créer un alias \"fourre-tout\", saisissez uniquement le nom du domaine (@domain.tld)." +msgstr "" +"L'adresse de l'alias. Pour créer un alias \"fourre-tout\", saisissez " +"uniquement le nom du domaine (@domain.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Destinataires" -#: admin/forms/alias.py:33 +#: 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 "Les adresses vers lesquelles cet alias pointera. Indiquer une adresse par champ, appuyer sur ENTREE pour ajouter un nouveau champ." +msgstr "" +"Les adresses vers lesquelles cet alias pointera. Indiquer une adresse par " +"champ, appuyer sur ENTREE pour ajouter un nouveau champ." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Aucune destinataire défini" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Type" -#: admin/forms/domain.py:34 +#: 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 de ce domaine. Indiquer seulement un nom par champ, appuyer sur ENTREE pour ajouter un nouveau champ." +msgstr "" +"Alias de ce domaine. Indiquer seulement un nom par champ, appuyer sur ENTREE" +" pour ajouter un nouveau champ." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Sélecteur de clé" -#: admin/forms/domain.py:52 +#: 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 "Quota par défaut appliqué aux boîtes aux lettres. Peut être exprimé en Ko, Mo (défaut) ou Go. Une valeur à 0 signifie pas de quota." +msgstr "" +"Quota par défaut appliqué aux boîtes aux lettres. Peut être exprimé en Ko, " +"Mo (défaut) ou Go. Une valeur à 0 signifie pas de quota." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias de domaine" -#: 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 "Un %s de ce nom existe déjà" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Répertoire de stockage des clés DKIM non configuré" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Vous ne pouvez pas définir de quota illimité" -#: 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 "domaine" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Créer un administrateur de domaine" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Créer automatiquement un administrateur pour ce domaine" -#: 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 @@ -628,53 +713,55 @@ msgstr "Créer automatiquement un administrateur pour ce domaine" msgid "Name" msgstr "Nom" -#: admin/forms/domain.py:241 +#: admin/forms/domain.py:255 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." -msgstr "Le nom de l'administrateur. Ne pas include un nom de domaine ici, il sera ajouté automatiquement." +msgstr "" +"Le nom de l'administrateur. Ne pas include un nom de domaine ici, il sera " +"ajouté automatiquement." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Générer un mot de passe aléatoire pour cet administrateur." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Avec une boite aux lettres" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Créer une boite aux lettres pour l'administrateur" -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Créer des alias" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Créer automatiquement des alias standard pour ce domaine" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Format invalide" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domaine modifié" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Options" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Nouveau domaine" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domaine créé" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Séparateur" @@ -682,23 +769,24 @@ msgstr "Séparateur" msgid "Recipient(s)" msgstr "Destinataire(s)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Indiquer un ou plusieurs destinataires séparés par une ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Conserver des copies locales" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "Transférer les messages et conserver une copie dans votre boite locale" +msgstr "" +"Transférer les messages et conserver une copie dans votre boite locale" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Sélectionner un fichier" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Continuer en cas d'erreur" @@ -706,126 +794,131 @@ msgstr "Continuer en cas d'erreur" msgid "Don't treat duplicated objects as error" msgstr "Ne pas traiter les objets dupliqués comme des erreurs" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Chiffrer les mots de passe" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Cocher cette option si les mots de passe contenus dans votre fichier ne sont pas chiffrés" +msgstr "" +"Cocher cette option si les mots de passe contenus dans votre fichier ne sont" +" pas chiffrés" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "L'import du compte a échoué (%s): le domaine n'existe pas" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "La boite {} existe déjà" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "L'import du compte a échoué (%s): mauvais quota" -#: 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 "Identités" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Transfert" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Une boite aux lettres est requise" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Vous n'êtes pas autorisé à importer des domaines" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Vous n'êtes pas autorisé à importer des alias de domaine." -#: 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 "Aucun enregistrement DNS trouvé pour %s." -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Aucun enregistrement %(type)s trouvé pour %(name)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 "Aucun serveur de noms fonctionnel trouvé" -#: 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 "Timeout de résolution DNS, impossible de requêter %s pour l'instant" -#: admin/lib.py:212 +#: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" msgstr "Le nom DNS est trop long : %s" -#: admin/lib.py:239 +#: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "Format d'adresse IP incorrect pour {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "L'objet existe déjà : %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objets importés avec succès" -#: 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 "Le fichier CSV n'est pas encodé en UTF-8, tentative de détermination de l'encodage" +msgstr "" +"Le fichier CSV n'est pas encodé en UTF-8, tentative de détermination de " +"l'encodage" -#: 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 "Lire le fichier CSV en utilisant l'encodage %(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 "Impossible de décoder le fichier CSV en utilisant l'encodage %(encoding)s" +msgstr "" +"Impossible de décoder le fichier CSV en utilisant l'encodage %(encoding)s" #: admin/management/commands/subcommands/_manage_dkim_keys.py:28 msgid "DKIM path non-writable" msgstr "Chemin d'accès DKIM non accessible en écriture" -#: admin/management/commands/subcommands/_mx.py:121 +#: admin/management/commands/subcommands/_mx.py:133 msgid "MX {} listed by DNSBL provider {}" msgstr "Le MX {} est listé par le fournisseur de DNSBL {}" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "Le domaine n'a pas d'enregistrement MX" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Le domaine {} n'a pas d'enregistrement MX" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "Enregistrement MX incorrect : {}" -#: 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 "Enregistrement MX invalide pour le domaine {0} : {1}" @@ -834,149 +927,151 @@ msgstr "Enregistrement MX invalide pour le domaine {0} : {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] problème(s) de MX pour le domaine {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] Problème(s) DNSBL pour le domaine {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domaine introuvable." -#: admin/models/alias.py:37 -msgid "An alias with this name already exists." -msgstr "Un alias de ce nom existe déjà." - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "Adresse" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "L'adresse de l'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 "Activé" -#: 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 "Cocher pour activer cet alias" -#: 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 "Description" -#: 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 "Expire le" -#: 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 "Adresse invalide" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Destinataire local {}@{} introuvable" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 msgid "Invalid line: {}" msgstr "Ligne incorrecte : {}" -#: 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 "Nom" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Le nom du domaine" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "Nombre de messages que ce domaine peut envoyer par jour" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Cocher pour activer ce domaine" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Activer les tests DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Cocher pour activer les tests DNS pour ce domaine" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Activer la signature DKIM" -#: admin/models/domain.py:59 +#: admin/models/domain.py:63 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce domain." +msgstr "" +"Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce " +"domain." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Taille de la clé" -#: 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 "Ligne invalide" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 msgid "{}: no authorized MX record found for domain" msgstr "{} : aucun enregistrement MX autorisé n'a été trouvé pour ce domaine" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 msgid "{}: invalid quota value for domain" msgstr "{} : valeur incorrecte de quota pour ce domaine" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 msgid "{}: invalid default mailbox quota value for domain" -msgstr "{} : la valeur du quota par défaut des boîtes aux lettres est incorrecte pour ce domaine" +msgstr "" +"{} : la valeur du quota par défaut des boîtes aux lettres est incorrecte " +"pour ce domaine" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 msgid "{}: default mailbox quota cannot be greater than domain quota" -msgstr "{} : le quota par défaut de la boîte aux lettres ne peut pas être supérieur au quota du domaine" +msgstr "" +"{} : le quota par défaut de la boîte aux lettres ne peut pas être supérieur " +"au quota du domaine" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Le nom de l'alias" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "cible" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Le domaine vers lequel cet alias pointe" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Domaine %s inconnu" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresse de la boite aux lettres (sans la partie @domain.tld)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Impossible de récuperer l'emplacement de la boite (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Un quota est requis" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" msgstr "{} : quota du domaine dépassé" @@ -1033,9 +1128,9 @@ msgstr "Quantité" #: 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 "Alias de domaine" @@ -1070,7 +1165,7 @@ msgstr "Créé" msgid "Last login" msgstr "Dernière connexion" -#: 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 "Email secondaire" @@ -1079,7 +1174,7 @@ msgstr "Email secondaire" msgid "Not defined" msgstr "Non défini" -#: 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 "Numéro de téléphone" @@ -1157,7 +1252,7 @@ msgstr "Alarms ouvertes pour" #: admin/templates/admin/domain_alarms.html:25 #: admin/templates/admin/domains_log_headers.html:3 #: admin/templates/admin/messages_log_headers.html:3 -#: 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 "Date" @@ -1181,9 +1276,9 @@ msgstr "Date de création" msgid "Last modification date" msgstr "Date de dernière modification" -#: 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 "Alias de boite" @@ -1241,10 +1336,11 @@ msgstr "Attention" #: admin/templates/admin/domain_detail.html:139 msgid "" "DKIM keys already exist for this domain. Do you want to overwrite them?" -msgstr "Des clés DKIM existent déjà pour ce domaine. Voulez vous les écraser ?" +msgstr "" +"Des clés DKIM existent déjà pour ce domaine. Voulez vous les écraser ?" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:397 +#: lib/form_utils.py:400 msgid "No" msgstr "Non" @@ -1252,7 +1348,7 @@ msgstr "Non" msgid "Generate new key" msgstr "Générer une nouvelle clé" -#: 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 "Oui" @@ -1265,7 +1361,7 @@ msgid "Administrators" msgstr "Administrateurs" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Supprimer cette permission" @@ -1302,13 +1398,13 @@ msgstr "ID de file" #: 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 "De" #: 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 "À" @@ -1339,9 +1435,10 @@ msgstr "Desactivé" msgid "Automatically forward emails to another address" msgstr "Transférer automatiquement les messages vers une autre adresse" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Mettre à jour" @@ -1366,7 +1463,14 @@ msgid "" "verify recipients

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

        You can " "use a different character as separator.

        " -msgstr "Fournir un fichier CSV dans lequel les lignes respectent un des formats suivants :
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        Vous pouvez utiliser un caractère différent comme séparateur.

        " +msgstr "" +"Fournir un fichier CSV dans lequel les lignes respectent un des formats " +"suivants :
        • domain; name; quota; default mailbox quota; " +"enabled
        • domainalias; name; targeted domain; " +"enabled
        • relaydomain; name; target host; target port; " +"service; enabled; verify recipients

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

        " +"

        Vous pouvez utiliser un caractère différent comme séparateur.

        " #: admin/templates/admin/import_identities_form.html:6 msgid "" @@ -1376,7 +1480,14 @@ msgid "" "recipient; recipient; ...

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

      You can" " use a different character as separator.

      " -msgstr "Fournissez un fichier CSV dans lequel les lignes respectent un des formats suivants :
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

      Le premier élément de chaque ligne est obligatoire et doit être égal à l'une des valeurs présentées.

      Vous pouvez utiliser un caractère différent en tant que séparateur.

      " +msgstr "" +"Fournissez un fichier CSV dans lequel les lignes respectent un des formats " +"suivants :
      • account; loginname; password; first name; last name;" +" enabled; group; address; quota; [, domain, ...]
      • alias; " +"address; enabled; recipient; recipient; ...

      Le premier " +"élément de chaque ligne est obligatoire et doit être égal à l'une des " +"valeurs présentées.

      Vous pouvez utiliser un caractère différent en " +"tant que séparateur.

      " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1404,7 +1515,9 @@ msgstr "Mis à jour" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Cette IP ne correspond à un aucun des MX valides déclarés dans les paramètres." +msgstr "" +"Cette IP ne correspond à un aucun des MX valides déclarés dans les " +"paramètres." #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1415,108 +1528,121 @@ msgstr "Aucun enregistrement MX trouvé pour ce domaine." msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" -msgstr "Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs de DNSBL suivants :" +msgstr "" +"Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs " +"de DNSBL suivants :" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 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 "La réputation de ce domaine sera affectée et il est probable que les emails venant de lui soient considérés comme du spam. Vous devriez contacter ces fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)." +msgstr "" +"La réputation de ce domaine sera affectée et il est probable que les emails " +"venant de lui soient considérés comme du spam. Vous devriez contacter ces " +"fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa a détecté que le domain %(domain)s n'a aucun enregistrement MX valide :" +msgstr "" +"Modoboa a détecté que le domain %(domain)s n'a aucun enregistrement MX " +"valide :" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Chercher" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "Activé" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "Activée" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Lister les domaines" -#: 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 "Lister les quotas" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "Historique des messages" -#: 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 "Importer" -#: 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 "Exporter" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Lister les identités" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Voir les identités du domaine" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "Voir les alarmes du domaine" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:198 -#: admin/templatetags/admin_tags.py:211 +#: admin/templatetags/admin_tags.py:174 admin/templatetags/admin_tags.py:218 +#: admin/templatetags/admin_tags.py:235 msgid "Edit {}" msgstr "Modifier {}" -#: 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 "Supprimer %s ?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Aucun enregistrement MX trouvé pour %s" -#: admin/tests/test_mx.py:167 admin/tests/test_mx.py:170 +#: 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 "Format d'adresse IP incorrect pour %(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 "Aucun enregistrement MX trouvé pour %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Un alias de ce nom existe déjà" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Créer" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nouvel alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias créé" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias modifié" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias supprimé" @@ -1527,38 +1653,38 @@ msgstr[2] "Alias supprimés" msgid "MX records of {}" msgstr "Enregistrements MX de {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Résumé DNSBL pour {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domaine supprimé" msgstr[1] "Domaines supprimés" msgstr[2] "Domaines supprimés" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Export d'identités" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Export de domaines" -#: 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 "Requête invalide" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Compte supprimé" msgstr[1] "Comptes supprimés" msgstr[2] "Comptes supprimés" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importer des domaines" @@ -1566,565 +1692,618 @@ msgstr "Importer des domaines" msgid "Import identities" msgstr "Importer des identités" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Transfert mis à jour" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Code PIN non valide" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA est déjà activf" -#: core/api/v1/viewsets.py:61 +#: core/api/v1/serializers.py:40 +#, fuzzy, python-format +#| msgid "Failed connection attempt from '%s' as user '%s'" +msgid "Failed TFA settings editing attempt from '%s' as user '%s'" +msgstr "Tentative de connexion infructueuse depuis '%s' en tant que '%s'" + +#: core/api/v1/serializers.py:44 core/api/v2/serializers.py:274 +msgid "Invalid password" +msgstr "Mot de passe incorrect" + +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 msgid "2FA is not enabled" msgstr "Authentification 2 facteurs non activée" -#: 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 "Locale" -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (faible)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (faible)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (faible)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (faible)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "clair (faible)" - -#: 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 "Profil utilisateur" #: 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 "Syntaxe invalide" -#: 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 "Nombre invalide de tours" -#: 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 "Ce code n'est pas valide" -#: core/api/v2/serializers.py:274 -msgid "Invalid password" -msgstr "Mot de passe incorrect" - -#: 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 "Veuillez utiliser le code suivant pour récupérer votre mot de passe Modoboa : {}" +msgstr "" +"Veuillez utiliser le code suivant pour récupérer votre mot de passe Modoboa " +": {}" -#: core/api/v2/views.py:54 +#: core/api/v2/views.py:57 #, python-format msgid "Failed connection attempt from '%s' as user '%s'" msgstr "Tentative de connexion infructueuse depuis '%s' en tant que '%s'" -#: 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 "Utiliseur '%s' connecté avec succès" -#: 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 "La méthode de chiffrement du mot de passe diffère. Mise à jour du mot de passe de %s" +msgstr "" +"La méthode de chiffrement du mot de passe diffère. Mise à jour du mot de " +"passe de %s" #: core/api/v2/views.py:93 core/views/auth.py:75 #, python-format msgid "Password hash parameter missmatch. Updating %s password" -msgstr "Le paramètre de hash du mot de passe ne correspond pas. Mise à jour %s du mot de passe" +msgstr "" +"Le paramètre de hash du mot de passe ne correspond pas. Mise à jour %s du " +"mot de passe" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Authentification" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Type d'authentification" -#: 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 "Le backend utilisé pour l'authentification" -#: 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 "Méthode de chiffrement par défaut" -#: 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 "Méthode utilisée pour chiffrer les mots de passe des boites aux lettres" +msgstr "" +"Méthode utilisée pour chiffrer les mots de passe des boites aux lettres" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Tours" -#: core/app_settings.py:61 core/app_settings.py:743 +#: 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 "Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit être compris entre 1000 et 999999999 inclue." +msgstr "" +"Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit " +"être compris entre 1000 et 999999999 inclue." -#: 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 "Mettre à jour la méthode de chiffrement du mot de passe à la connexion" +msgstr "" +"Mettre à jour la méthode de chiffrement du mot de passe à la connexion" -#: 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 "Mise à jour du mot de passe utilisateur lors d'une connexion pour utiliser la méthode de chiffrement par défaut" +msgstr "" +"Mise à jour du mot de passe utilisateur lors d'une connexion pour utiliser " +"la méthode de chiffrement par défaut" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Mot de passe par défaut" -#: 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 "Mot de passe par défaut pour les comptes créés automatiquement." -#: 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 "Taille d'un mot de passe aléatoire" -#: 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 "Taille des mots de passe générés aléatoirement." -#: 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 "URL de service de mise à jour du mot de passe" -#: core/app_settings.py:94 core/app_settings.py:768 +#: 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 "L'URL d'une page externe où les utilisateurs pourront mettre à jour leur mot de passe. Elle s'applique uniquement aux utilisateurs non locaux, c'est à dire ceux créés après une authentification externe réussie (LDAP, SMTP)." +msgstr "" +"L'URL d'une page externe où les utilisateurs pourront mettre à jour leur mot" +" de passe. Elle s'applique uniquement aux utilisateurs non locaux, c'est à " +"dire ceux créés après une authentification externe réussie (LDAP, SMTP)." -#: 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 "Annonce pour la récupération de mot de passe" -#: 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 "Un message temporaire qui sera affiché sur la page de récupération de mot de passe" +msgstr "" +"Un message temporaire qui sera affiché sur la page de récupération de mot de" +" passe" -#: 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 "Activer la récupération de mot de passe par SMS" -#: 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 "Activer la récupération de mot de passe par SMS pour les utilisateurs ayant renseigné un numéro de téléphone" +msgstr "" +"Activer la récupération de mot de passe par SMS pour les utilisateurs ayant " +"renseigné un numéro de téléphone" -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "Fournisseur SMS" -#: 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 "Choisir un fournisseur pour envoyer les SMS de récupération de mot de passe" +msgstr "" +"Choisir un fournisseur pour envoyer les SMS de récupération de mot de passe" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "Paramètres 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 "Adresse du serveur" -#: 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 "L'adresse IP ou le nom DNS du serveur 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 "Port utilisé par le serveur" -#: 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 "Le port TCP utilisé par le serveur 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 "Activer le serveur secondaire (secours)" -#: core/app_settings.py:150 core/app_settings.py:814 +#: 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 "Activer un serveur LDAP secondaire qui sera utilisé si le principal est en échec" +msgstr "" +"Activer un serveur LDAP secondaire qui sera utilisé si le principal est en " +"échec" -#: 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 "Adresse du serveur secondaire" -#: 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 "L'adresse IP ou le nom DNS du serveur LDAP secondaire" -#: 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 "Port du serveur secondaire" -#: 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 "Le numéro du port TCP utilisé par le serveur LDAP secondaire" -#: 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 "Utiliser une connexion sécurisée" -#: 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 "Utiliser une connexion SSL/STARTTLS pour accéder au serveur 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 "Active Directory" -#: 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 "Indiquer si le serveur LDAP est un Active Directory ou pas" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Groupes administrateurs" -#: core/app_settings.py:188 core/app_settings.py:845 +#: 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 "Les membres de ces groupes LDAP (Posix) seront créés en tant qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les groupes." +msgstr "" +"Les membres de ces groupes LDAP (Posix) seront créés en tant " +"qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les " +"groupes." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Type de groupe" -#: 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 "Le type de groupe LDAP à utiliser avec votre annuaire." -#: 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 "Base de recherche des groupes" -#: 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 "Le nom distinctif de la base de recherche utilisée pour rechercher les groupes" +msgstr "" +"Le nom distinctif de la base de recherche utilisée pour rechercher les " +"groupes" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Attribut 'mot de passe'" -#: 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 "L'attribut utilisé pour stocker les mots de passe" -#: 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 "Paramètres d'authentification LDAP" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Méthode d'authentification" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Recherche et connexion" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Connexion directe" -#: 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 "Choisir la méthode d'authentification à utiliser" -#: 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 "ND de connexion" -#: core/app_settings.py:234 core/app_settings.py:288 core/app_settings.py:882 -#: core/app_settings.py:927 +#: 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 "Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser vide pour une connexion anonyme" +msgstr "" +"Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser " +"vide pour une connexion anonyme" -#: 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 "Mot de passe de connexion" -#: 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 "Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de connexion')" +msgstr "" +"Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de" +" connexion')" -#: 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 "Base de recherche des utilisateurs" -#: 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 "Le nom distinctif de la base de recherche utilisée pour rechercher les utilisateurs" +msgstr "" +"Le nom distinctif de la base de recherche utilisée pour rechercher les " +"utilisateurs" -#: 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 "Filtre de recherche" -#: core/app_settings.py:264 core/app_settings.py:356 core/app_settings.py:907 -#: core/app_settings.py:981 +#: 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 "Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être valide, il doit être entouré de parenthèses." +msgstr "" +"Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être " +"valide, il doit être entouré de parenthèses." -#: 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 "Modèle de nom distinctif utilisateur" -#: 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 "Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il doit contenir un espace réservé (ex. %(user)s)" +msgstr "" +"Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il " +"doit contenir un espace réservé (ex. %(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 "Paramètres de synchronisation LDAP" -#: 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 "Activer l'export LDAP" -#: core/app_settings.py:309 core/app_settings.py:942 +#: core/app_settings.py:302 core/app_settings.py:1047 msgid "" "Enable automatic synchronization between local database and LDAP directory" -msgstr "Activer la synchronisation automatique entre la base de données locale et l'annuaire LDAP" +msgstr "" +"Activer la synchronisation automatique entre la base de données locale et " +"l'annuaire LDAP" -#: 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 "Supprimer un compte LDAP distant lorsqu'un compte local est supprimé" -#: core/app_settings.py:319 core/app_settings.py:950 +#: 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 "Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement il sera désactivé." +msgstr "" +"Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement " +"il sera désactivé." -#: 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 "Modèle des DN de compte" -#: 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)" -msgstr "Le modèle utilisé pour construite un DN de compte (nom unique). Il doit contenir un emplacement (c'est à dire 1%(user)s)" +msgstr "" +"Le modèle utilisé pour construite un DN de compte (nom unique). Il doit " +"contenir un emplacement (c'est à dire 1%(user)s)" -#: 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 "Activer l'import LDAP" -#: 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 "Activer la synchronisation des comptes entre un annuaire LDAP et la base de données locale" +msgstr "" +"Activer la synchronisation des comptes entre un annuaire LDAP et la base de " +"données locale" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Attribut nom d'utilisateur" -#: 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 "Le nom de l'attribut LDAP dans lequel le nom d'utilisateur peut être trouvé." +msgstr "" +"Le nom de l'attribut LDAP dans lequel le nom d'utilisateur peut être trouvé." -#: 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 "Activer la synchronisation LDAP pour Dovecot" -#: 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 "Les paramètres d'authentification LDAP seront appliqués à la configuration de Dovecot." +msgstr "" +"Les paramètres d'authentification LDAP seront appliqués à la configuration " +"de Dovecot." -#: 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 "Fichier de configuration Dovecot pour LDAP" -#: core/app_settings.py:384 core/app_settings.py:1004 +#: core/app_settings.py:374 core/app_settings.py:1134 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "Emplacement du fichier de configuration qui contient les paramètres LDAP de Dovecot" +msgstr "" +"Emplacement du fichier de configuration qui contient les paramètres LDAP de " +"Dovecot" -#: 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 "Tableau de bord" -#: 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 "Flux RSS personnalisé" -#: 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 "Afficher un flux RSS personnalisé aux revendeurs et administrateurs de domaine" +msgstr "" +"Afficher un flux RSS personnalisé aux revendeurs et administrateurs de " +"domaine" -#: 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 "Masquer le widget des fonctionnalités" -#: 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 "Masquer le widget des fonctionnalités pour les revendeurs et les administrateurs de domaine" +msgstr "" +"Masquer le widget des fonctionnalités pour les revendeurs et les " +"administrateurs de domaine" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Notifications" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Adresse d'envoi" -#: 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 "Adresse utilisée pour envoyer les notifications." -#: 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 publique" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Activer la communication" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Activer la communication avec l'API publique de 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 "Vérifier les nouvelles versions" -#: 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 "Vérifie automatiquement si une nouvelle version est disponible" -#: 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 "Envoyer un email quand de nouvelles versions sont trouvées" -#: 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 "Envoyer un email pour notifier les administrateurs à propos des nouvelles versions" +msgstr "" +"Envoyer un email pour notifier les administrateurs à propos des nouvelles " +"versions" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Destinataire" -#: 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 "Destinataire des emails de notification pour les nouvelles versions" -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Envoyer des statistiques" -#: 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 "Envoyer des statistiques à l'API publique de Modoboa (compteurs et extensions utilisées)" +msgstr "" +"Envoyer des statistiques à l'API publique de Modoboa (compteurs et " +"extensions utilisées)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Divers" -#: 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 "Activer le suivi des comptes inactifs" -#: core/app_settings.py:461 core/app_settings.py:1085 +#: 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 "Autoriser les administrateurs à définir in seuil (en jours) à partir duquel un compte est considéré comme inactif si l'utilisateur ne s'est pas connecté" +msgstr "" +"Autoriser les administrateurs à définir in seuil (en jours) à partir duquel " +"un compte est considéré comme inactif si l'utilisateur ne s'est pas connecté" -#: 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 "Seuil des comptes inactifs" -#: core/app_settings.py:470 core/app_settings.py:1094 +#: 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 "Un compte avec une date de dernière connexion antérieure à ce seuil sera considéré comme inactif" +msgstr "" +"Un compte avec une date de dernière connexion antérieure à ce seuil sera " +"considéré comme inactif" -#: 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 "Intervalle de vérification des notifications" -#: 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 "Intervalle entre deux vérifications de notification (en secondes)" -#: 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 "Age maximal d'un enregistrement du journal" -#: 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 "L'age maximal en jours d'un enregistrement du journal" -#: 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 "Eléments par page" -#: 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 "Nombre d'éléments affichés par page" -#: 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 "Redirection par défaut" -#: 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 "La redirection appliquée par défaut quand aucune application n'est spécifiée" +msgstr "" +"La redirection appliquée par défaut quand aucune application n'est spécifiée" -#: core/app_settings.py:799 +#: core/app_settings.py:830 msgid "LDAP" msgstr "LDAP" -#: core/checks/settings_checks.py:6 +#: 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 "Vous avez défini USE_TZ à False, ce qui peut entraîner des problèmes lors des transitions entre l'heure d'été et l'heure d'hiver (c.-à-d. La même heure locale se produisant deux fois en raison d'un changement d'horloge)." +msgstr "" +"Vous avez défini USE_TZ à False, ce qui peut entraîner des problèmes lors " +"des transitions entre l'heure d'été et l'heure d'hiver (c.-à-d. La même " +"heure locale se produisant deux fois en raison d'un changement d'horloge)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Mettre `USE_TZ = True` dans settings.py" @@ -2156,31 +2335,31 @@ msgstr "Test" msgid "Missing 2FA verification." msgstr "La vérification 2FA est manquante" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Ancien mot de passe" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nouveau mot de passe" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "L'ancien mot de passe est incorrect" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Les mots de passe diffèrent" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Activer l'accès API" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Code de vérification" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Code incorrect" @@ -2197,20 +2376,20 @@ msgstr "modifié" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s par l'utilisateur %(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 par" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "Supprimé" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "l'utilisateur {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "commande de gestion" @@ -2218,141 +2397,144 @@ msgstr "commande de gestion" msgid "You can't delete your own account" msgstr "Vous ne pouvez pas supprimer votre propre compte" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Une ou plusieurs mises à jour sont disponibles!" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Mise(s) à jour disponible(s)" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Autoriser l'accès aux boites" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Autoriser cet administrateur à accéder aux boites des utilisateurs" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "mot de passe" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "langue" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Langage préféré pour afficher les pages" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "Une adresse e-mail alternative ou de secours." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" -msgstr "Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé" +msgstr "" +"Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "compte" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Inconnu" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Vous ne pouvez pas importer un compte avec un rôle supérieur au votre" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "L'utilisateur simple '%s' doit avoir une adresse email valide" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Les champs username et email de '%s' ne doivent pas différer" -#: 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] "Le mot de passe doit contenir au moins {} chiffre." msgstr[1] "Le mot de passe doit contenir au moins {} chiffres." msgstr[2] "Le mot de passe doit contenir au moins {} chiffres." -#: 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] "Le mot de passe doit contenir au moins {} minuscule." msgstr[1] "Le mot de passe doit contenir au moins {} minuscules." msgstr[2] "Le mot de passe doit contenir au moins {} minuscules." -#: 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] "Le mot de passe doit contenir au moins {} majuscule." msgstr[1] "Le mot de passe doit contenir au moins {} majuscules." msgstr[2] "Le mot de passe doit contenir au moins {} majuscules." -#: 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] "Le mot de passe doit contenir au moins {} caractère spécial." msgstr[1] "Le mot de passe doit contenir au moins {} caractères spéciaux." msgstr[2] "Le mot de passe doit contenir au moins {} caractères spéciaux." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Votre mot de passe doit contenir une combinaison de différents types de caractère." +msgstr "" +"Votre mot de passe doit contenir une combinaison de différents types de " +"caractère." -#: 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 "Point de terminaison API" -#: 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 "OVH Europe" -#: 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 "OVH États Unis" -#: 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 "OVH Amérique du Nord" -#: 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 "So you Start Europe" -#: 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 "So you Start Amérique du Nord" -#: 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 "Kimsufi Europe" -#: 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 "Kimsufi Amérique du Nord" -#: 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 "Clé d'application" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Secret d'application" -#: 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 "Clé du consommateur" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 msgid "Appication secret" msgstr "Secret de l'application" @@ -2380,7 +2562,9 @@ msgstr "Dernières nouvelles" msgid "" "Visit the official " "weblog for more information." -msgstr "Visitez le blog officiel pour plus d'information." +msgstr "" +"Visitez le blog " +"officiel pour plus d'information." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2395,7 +2579,9 @@ msgstr "Contrôlez votre accès à l'API de Modoboa" msgid "" "A documentation of the API is available here." -msgstr "Une documentation de l'API est disponible ici." +msgstr "" +"Une documentation de l'API est disponible ici." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2406,7 +2592,7 @@ msgstr "Jeton d'accès à l'API" msgid "Hello %(user)s." msgstr "Bonjour %(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 "Information" @@ -2420,7 +2606,8 @@ msgstr "Une ou plusieurs mises à jour sont disponibles!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Consulter la liste suivante pour trouver le(s) composant(s) concerné(s)." +msgstr "" +"Consulter la liste suivante pour trouver le(s) composant(s) concerné(s)." #: core/templates/core/information.html:10 msgid "Applications" @@ -2438,7 +2625,7 @@ msgstr "Dernière version" msgid "Active users" msgstr "Utilisateurs actifs" -#: 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 "Journaux" @@ -2461,11 +2648,17 @@ msgid "" msgid_plural "" "\n" " The following updates are available:\n" -msgstr[0] "\nLa mise à jour suivante est disponible :\n" -msgstr[1] "\nLes mises à jour suivantes sont disponibles :\n" -msgstr[2] "\nLes mises à jour suivantes sont disponibles :\n" +msgstr[0] "" +"\n" +"La mise à jour suivante est disponible :\n" +msgstr[1] "" +"\n" +"Les mises à jour suivantes sont disponibles :\n" +msgstr[2] "" +"\n" +"Les mises à jour suivantes sont disponibles :\n" -#: 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 "Paramètres" @@ -2482,12 +2675,12 @@ msgstr "Enregistrer" msgid "Modoboa settings" msgstr "Paramètres de 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 "Configuration" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Préférences" @@ -2507,7 +2700,7 @@ msgstr "Mettez à jour vos informations personnelles" msgid "Click here to update your password" msgstr "Cliquez ici pour mettre à jour votre mot de passe" -#: 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 "Sécurité" @@ -2519,7 +2712,10 @@ msgstr "Authentification à deux facteurs" 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 "Installez une application d'authentification par jetons comme FreeOTP ou Google Authenticator à partir de votre appstore et utilisez-la pour scanner ce QR code." +msgstr "" +"Installez une application d'authentification par jetons comme FreeOTP ou " +"Google Authenticator à partir de votre appstore et utilisez-la pour scanner " +"ce QR code." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2532,7 +2728,9 @@ msgstr "Enregistrement" #: core/templates/core/user_security.html:33 msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "Félicitations ! L'authentification à deux facteurs est maintenant activée pour votre compte." +msgstr "" +"Félicitations ! L'authentification à deux facteurs est maintenant activée " +"pour votre compte." #: core/templates/core/user_security.html:38 #: core/templates/core/user_security.html:89 @@ -2541,16 +2739,29 @@ msgid "" "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 "Les codes de récupération suivants peuvent être utilisés une fois chacun pour vous permettre de récupérer un accès à votre compte, au cas où vous perdriez votre téléphone par exemple. Assurez-vous de les conserver dans un lieu sûr, autrement vous ne serez définitivement plus en mesure d'accéder à votre compte." +msgstr "" +"Les codes de récupération suivants peuvent être utilisés une fois chacun " +"pour vous permettre de récupérer un accès à votre compte, au cas où vous " +"perdriez votre téléphone par exemple. Assurez-vous de les conserver dans un " +"lieu sûr, autrement vous ne serez définitivement plus en mesure d'accéder à " +"votre compte." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "L'authentification à deux facteurs est activée pour votre compte." +#: 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 "Désactiver authentification à 2 facteurs." +#: 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 "Réinitialiser les codes de récupération." @@ -2559,7 +2770,9 @@ msgstr "Réinitialiser les codes de récupération." msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." -msgstr "L'authentification à 2 facteurs n'est pas encore activée pour votre compte. Activer cette fonctionnalité renforcera la sécurité de votre compte." +msgstr "" +"L'authentification à 2 facteurs n'est pas encore activée pour votre compte. " +"Activer cette fonctionnalité renforcera la sécurité de votre compte." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2573,67 +2786,77 @@ msgstr "Nouveaux codes de récupération" msgid "Here are your new recovery codes. " msgstr "Vous trouverez ici vos nouveaux codes de récupération." +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Chiffrer les mots de passe" + #: 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 "Déconnexion" -#: 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 "Le coeur de Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Paramètres enregistrés" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Votre nom d'utilisateur et mot de passe ne correspondent pas. Veuillez réessayer." +msgstr "" +"Votre nom d'utilisateur et mot de passe ne correspondent pas. Veuillez " +"réessayer." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Utilisateur '{}' déconnecté avec succès" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil mis à jour" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Préférences enregistrées" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Accès mis à jour" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 msgid "DNS settings" msgstr "Paramètres DNS" -#: dmarc/forms.py:41 dmarc/forms.py:54 +#: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" msgstr "Activer les recherches inversées" -#: 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 "Activer les recherches DNS inversées (les rapports seront plus longs à afficher)" +msgstr "" +"Activer les recherches DNS inversées (les rapports seront plus longs à " +"afficher)" -#: dmarc/forms.py:69 dmarc/forms.py:71 +#: dmarc/forms.py:74 dmarc/forms.py:78 msgid "DMARC" msgstr "DMARC" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Afficher le rapport DMARC pour {}" -#: 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 "Non résolu" @@ -2669,11 +2892,11 @@ msgstr "Erreur temporaire" msgid "Permanent error" msgstr "Erreur permanente" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Politique" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Erreur soft" @@ -2745,95 +2968,95 @@ msgstr "Transitaires avec ARC" msgid "Unknown sources / Threats" msgstr "Sources inconnues / Menaces" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "Mauvaise syntaxe de mécanisme ip4" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "Mauvais format d'adresse IPv4" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "Mauvaise syntaxe de mécanisme ip6" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "Mauvais format d'adresse IPv6" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "Mauvaise syntaxe de mécanisme {}" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "Masque incorrect trouvé {}" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "Ce n'est pas un enregistrement SPF" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "Mécanisme inconnu {}" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "Modificateur inconnu {}" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "Modificateur dupliqué {} trouvé" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "Aucun mécanisme trouvé" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "Ce n'est pas un enregistrement DKIM" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "Tag incorrect {}" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "Pas de clé trouvée dans l'enregistrement" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "Mauvaise valeur {} pour le tag {}" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "Mauvaise valuer {} pour le tag {} :" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr " ce n'est pas un entier" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr " inférieur à {}" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr " supérieur à {}" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "Ce n'est pas un enregistrement DMARC" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "Tag inconnu {}" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "Tag obligatoire p introuvable" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "La clé publique ne correspond pas" @@ -2865,7 +3088,9 @@ msgstr "Un enregistrement DNS a été trouvé mais sa syntaxe est incorrecte :" msgid "" "Here is an example of DNS configuration (bind format). Replace value between" " [ ] by the appropriate ones." -msgstr "Voici un exemple de configuration DNS (format bind). Remplacez les valeurs entre [ ] par celles appropriées." +msgstr "" +"Voici un exemple de configuration DNS (format bind). Remplacez les valeurs " +"entre [ ] par celles appropriées." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" @@ -2880,7 +3105,7 @@ msgstr "Configuration automatique" msgid "hostname of your automx server" msgstr "Nom d'hôte de votre serveur automx" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "Enregistrement {} de {}" @@ -2888,144 +3113,153 @@ msgstr "Enregistrement {} de {}" msgid "Auto configuration records for {}" msgstr "Enregistrements d'autoconfiguration pour {}" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "Configuration DNS pour {}" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 msgid "Access denied" msgstr "Accès refusé" -#: 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 "Activer la migration IMAP" -#: 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 "Activer la migration IMAP." -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 msgid "OfflineIMAP" msgstr "OfflineIMAP" -#: 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 "Tâche(s) de synchronisation concurrente(s)" -#: 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 "Nombre maximal de tâche de synchronisation concurrente" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 msgid "OfflineIMAP Filter" msgstr "Filtre OfflineIMAP" -#: 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 "Création des dossiers" -#: 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 "Autoriser la création des dossiers manquant pendant la synchro" -#: 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 "Filtre d'exclusion de dossier" -#: imap_migration/app_settings.py:44 imap_migration/app_settings.py:93 +#: 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 "Utiliser une expression régulière pour explicitement inclure des dossiers à synchroniser. Exemple : ^Trash$|Del" +msgstr "" +"Utiliser une expression régulière pour explicitement inclure des dossiers à " +"synchroniser. Exemple : ^Trash$|Del" -#: 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 "Filtre d'inclusion de dossier" -#: imap_migration/app_settings.py:50 imap_migration/app_settings.py:103 +#: 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 "Une liste de dossiers séparés par des virgules à explicitement inclure pendant la synchronisation même s'ils sont concernés par le filtre d'exclusion. Exemple debian.user, debian.personal" +msgstr "" +"Une liste de dossiers séparés par des virgules à explicitement inclure " +"pendant la synchronisation même s'ils sont concernés par le filtre " +"d'exclusion. Exemple debian.user, debian.personal" -#: imap_migration/app_settings.py:72 +#: imap_migration/app_settings.py:107 msgid "OfflineIMAP settings" msgstr "Paramètres OfflineIMAP" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 msgid "OfflineIMAP Filter settings" msgstr "Paramètres de filtragre OfflineIMAP" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 msgid "IMAP Migration" msgstr "Migration IMAP" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Echec lors de la connexion au serveur IMAP : %s" -#: imap_migration/checks.py:11 +#: imap_migration/checks.py:12 msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." -msgstr "La création automatique de domaine/compte est désactivée, ce qui veut dire que l'authentification IMAP ne fonctionnera pas." +msgstr "" +"La création automatique de domaine/compte est désactivée, ce qui veut dire " +"que l'authentification IMAP ne fonctionnera pas." -#: imap_migration/checks.py:13 +#: imap_migration/checks.py:16 msgid "" "Go to the online parameters panel (admin tab) and activate this feature." -msgstr "Rendez vous sur le panneau de configuration des paramètres (onglet Administration) et activez cette fonctionnalité." +msgstr "" +"Rendez vous sur le panneau de configuration des paramètres (onglet " +"Administration) et activez cette fonctionnalité." #: imap_migration/templates/imap_migration/index.html:6 msgid "IMAP migration" msgstr "Migration IMAP" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Impossible de créer le compte LDAP : {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Impossible de mettre à jour le compte LDAP : {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Impossible de supprimer le compte LDAP : {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Impossible de désactiver le compte LDAP : {}" -#: 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 "Impossible de communiquer avec l'API : %s" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Connexion à la base de données %s non configurée" -#: 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 "Impossible de déterminer l'encodage de la chaîne de caractères" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Permission refusée : %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Permission refusée" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Entrer un nom de domaine valide" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Entrez une adresse email valide." @@ -3035,153 +3269,175 @@ msgstr "Entrez une adresse email valide." msgid "Submit" msgstr "Soumettre" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Impossible de mettre à jour le mot de passe : {}" -#: 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 "Sujet" -#: 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 "Limites administrateur par défaut" -#: 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 "Activer les limites par administrateur" -#: 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 "Activer ou désactiver les limites par administrateur" -#: 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 "Admins de domaine" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: 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 "Nombre maximal d'admins de domaine pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les création illimitées)" +msgstr "" +"Nombre maximal d'admins de domaine pour un nouvel administrateur. (0 pour " +"interdire toute création, -1 pour autoriser les création illimitées)" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: 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 "Nombre maximal de domaines pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal de domaines pour un nouvel administrateur. (0 pour interdire " +"toute création, -1 pour autoriser les créations illimitées)" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: 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 "Nombre maximal d'alias de domaine pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'alias de domaine pour un nouvel administrateur. (0 pour " +"interdire toute création, -1 pour autoriser les créations illimitées)" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: 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 "Nombre maximal de boites pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal de boites pour un nouvel administrateur. (0 pour interdire " +"toute création, -1 pour autoriser les créations illimitées)" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: 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 "Nombre maximal d'alias de boite pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'alias de boite pour un nouvel administrateur. (0 pour " +"interdire toute création, -1 pour autoriser les créations illimitées)" -#: limits/app_settings.py:81 limits/app_settings.py:206 +#: 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 "Le quota qu'un revendeur sera autorisé à partager entre les domaines qu'il créé. (0 signifie pas de quota)" +msgstr "" +"Le quota qu'un revendeur sera autorisé à partager entre les domaines qu'il " +"créé. (0 signifie pas de quota)" -#: 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 "Limites domaine par défaut" -#: 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 "Activer les limites par domaine" -#: 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 "Activer ou désactiver les limites par domaine" -#: limits/app_settings.py:100 limits/app_settings.py:223 +#: 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 "Nombre maximal d'administrateurs de domaine autorisés pour un nouveau domaine (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'administrateurs de domaine autorisés pour un nouveau " +"domaine (0 pour interdire toute création, -1 pour autoriser les créations " +"illimitées)" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: 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 "Nombre maximal d'alias de domaine autorisés pour un nouveau domaine. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'alias de domaine autorisés pour un nouveau domaine. (0 pour" +" interdire toute création, -1 pour autoriser les créations illimitées)" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: 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 "Nombre maximal de boites aux lettres autorisées pour un nouveau domaine. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal de boites aux lettres autorisées pour un nouveau domaine. (0 " +"pour interdire toute création, -1 pour autoriser les créations illimitées)" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: 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 "Nombre maximal d'alias autorisés pour un nouveau domaine. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'alias autorisés pour un nouveau domaine. (0 pour interdire " +"toute création, -1 pour autoriser les créations illimitées)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limites" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Nombre maximal de domaines que cet utilisateur peut créer" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Nombre maximal d'alias de domain que cet utilisateur peut créer" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Nombre maximal de boites que cet utilisateur peut créer" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Nombre maximal d'alias de boite que cet utilisateur peut créer" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" msgstr "Nombre maximal d'admins de domaine que cet utilisateur peut créer" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Quota partagé entre les domaines de ce revendeur" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Nombre maximal d'alias de domaine autorisés pour ce domaine." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Nombre maximal de boites aux lettres autorisées pour ce domaine." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Nombre maximal d'alias autorisés pour ce domaine." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." -msgstr "Nombre maximal d'administrateurs de domaine autorisés pour ce domaine." +msgstr "" +"Nombre maximal d'administrateurs de domaine autorisés pour ce domaine." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Limite invalide" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Ressources" @@ -3194,11 +3450,11 @@ msgstr "%s : limite atteinte" msgid "Not enough resources" msgstr "Pas assez de ressources" -#: 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 "Vous n'êtes pas autorisé à définir des valeurs illimitées" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "illimité" @@ -3207,91 +3463,93 @@ msgstr "illimité" msgid "Resources usage" msgstr "Utilisation des ressources" -#: 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 "Vous devez fournir des dates de début et fin quand la période est personnalisée" +msgstr "" +"Vous devez fournir des dates de début et fin quand la période est " +"personnalisée" -#: maillog/forms.py:23 +#: maillog/apps.py:20 maillog/forms.py:23 msgid "Path to the log file" msgstr "Chemin d'accès vers le journal" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Emplacement du log utilisé pour collecter les statistiques" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Répertoire où stocker les fichiers RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Emplacement du répertoire de stockage des fichiers RRD" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Afficher les messages greylistés" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Différencie les rejets en douceur des rejets durs (greylisting)" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "Statistiques" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "Impossible de trouver le binaire rrdtool" -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Trafic moyen (msgs/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "messages envoyés" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "messages reçus" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "messages non remis" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "messages rejetés" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "messages de type virus" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "messages de type spam" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "Messages greylistés" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Taille moyenne du trafic normal (octets/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "taille reçue" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "taille envoyée" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Trafic messagerie" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Moyenne des créations de compte (compte/heure)" @@ -3319,181 +3577,190 @@ msgstr "Appliquer" msgid "No statistics available" msgstr "Aucune statistique disponible" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Jour" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Semaine" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Mois" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Année" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Personnalisée" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Jeu de graphiques inconnu" -#: maillog/views.py:69 +#: maillog/views.py:71 msgid "Unknown domain" msgstr "Domaine inconnu" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Mauvaise période personnalisée" -#: 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 "Informations de compte personnel" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 msgid "Directory is not writable" msgstr "Le répertoire n'est pas accessible en écriture" -#: 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 "Aucun document disponible pour cet utilisateur" -#: 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 "Activer les identifiants PDF" -#: 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 "Activer la génération d'un document PDF d'identifiants à la création d'un compte." +msgstr "" +"Activer la génération d'un document PDF d'identifiants à la création d'un " +"compte." -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Stockage des documents" -#: 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 "Répertoire dans lequel les documents sont sauvegardés" -#: 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 "Chemin d'accès vers le répertoire ou seront stockés les documents" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Options de sécurité" -#: 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 "Supprimer les documents après le premier téléchargement" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 msgid "" "Automatically delete a document just after its first download from this " "interface" -msgstr "Supprimer automatiquement un document juste après son premier téléchargement depuis cette interface" +msgstr "" +"Supprimer automatiquement un document juste après son premier téléchargement" +" depuis cette interface" -#: 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 "Générer les documents à la création des comptes uniquement" -#: pdfcredentials/app_settings.py:52 pdfcredentials/app_settings.py:154 +#: 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 "Génère un nouveau document uniquement lors de la création d'un compte. Si défini à non, un nouveau document sera généré chaque fois qu'un mot de passe est changé." +msgstr "" +"Génère un nouveau document uniquement lors de la création d'un compte. Si " +"défini à non, un nouveau document sera généré chaque fois qu'un mot de passe" +" est changé." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Options de personnalisation" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Titre" -#: 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 "Le titre du document" -#: 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 "URL de la console web" -#: 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 "URL de la console web Modoboa" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Message personnalisé" -#: 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 "Un message personnalisé qui apparaîtra en bas des documents." -#: 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 "Inclure les paramètres de connexion pour client mail" -#: pdfcredentials/app_settings.py:79 pdfcredentials/app_settings.py:184 +#: 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 "Inclure les paramètres de connexion nécessaires pour configurer un client mail, une tablette ou un téléphone" +msgstr "" +"Inclure les paramètres de connexion nécessaires pour configurer un client " +"mail, une tablette ou un téléphone" -#: 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 "Adresse du serveur SMTP" -#: 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 "Adresse du serveur SMTP (nom d'hôte ou IP)" -#: 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 "Port du serveur SMTP" -#: 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 "Port d'écoute du serveur SMTP" -#: 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 "Sécurité de la connexion SMTP" -#: 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 "Mécanisme de sécurisation de la connexion" -#: 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 "Adresse du serveur IMAP" -#: 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 "Adresse du serveur IMAP (nom d'hôte ou IP)" -#: 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 "Port du serveur IMAP" -#: 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 "Port d'écoute du serveur IMAP" -#: 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 "Sécurité de la connexion IMAP" @@ -3501,84 +3768,249 @@ msgstr "Sécurité de la connexion IMAP" msgid "PDF credentials" msgstr "Identifiants en PDF" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 msgid "PDF Credentials" msgstr "Identifiants PDF" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Propulsé par Modoboa - L'hébergement mail simplifié" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" "Dear %s, this document contains the credentials you will need\n" "to connect to Modoboa. Learn the content and destroy\n" "the document as soon as possible.\n" -msgstr "\nCher %s, ce document contient les identifiants dont vous aurez\nbesoin pour vous connecter à Modoboa. Apprenez les puis détruisez\nce document le plus rapidement possible.\n" +msgstr "" +"\n" +"Cher %s, ce document contient les identifiants dont vous aurez\n" +"besoin pour vous connecter à Modoboa. Apprenez les puis détruisez\n" +"ce document le plus rapidement possible.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Console web :" -#: 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 "\nD'ici vous pouvez consulter vos emails en ligne n'importe quand, créer des filtres ou gérer vos contacts.\n" +msgstr "" +"\n" +"D'ici vous pouvez consulter vos emails en ligne n'importe quand, créer des filtres ou gérer vos contacts.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Merci de changer votre mot de passe !" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "Configuration PC/Tablette/Smartphone :" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." -msgstr "Utilisez ces paramètres pour votre ordinateur, votre tablette ou votre téléphone." +msgstr "" +"Utilisez ces paramètres pour votre ordinateur, votre tablette ou votre " +"téléphone." -#: 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 "Récupérer les identifiant de l'utilisateur sous forme d'un document PDF" +msgstr "" +"Récupérer les identifiant de l'utilisateur sous forme d'un document PDF" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 msgid "Download PDF credentials" msgstr "Télécharger les identifiants PDF" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 msgid "Can't write to selected directory to store PDF documents" -msgstr "Impossible d'écrire dans le répertoire sélectionné pour stocker les documents PDF" +msgstr "" +"Impossible d'écrire dans le répertoire sélectionné pour stocker les " +"documents PDF" #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" -msgstr "Echec lors de la création du répertoire qui contiendra les documents PDF (%s)" +msgstr "" +"Echec lors de la création du répertoire qui contiendra les documents PDF " +"(%s)" -#: 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 "Limite quotidienne d'envoi atteinte" + +#: 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 "Cette date est dépassée" + +#: postfix_autoreply/api/v2/serializers.py:32 postfix_autoreply/forms.py:101 +msgid "Must be greater than start date" +msgstr "Doit être supérieure à la date de démarrage" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +msgid "Automatic replies" +msgstr "Réponses automatiques" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Activer votre réponse automatique à partir de cette date. Format : YYYY-MM-" +"DD HH:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Jusqu'à" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Activer votre réponse automatique jusqu'à cette date. Format : YYYY-MM-DD " +"HH:mm:ss" + +#: 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 "" +"Le contenu de votre réponse. Vous pouvez utiliser les variables suivantes, " +"qui seront automatiquement remplacées par des valeurs appropriées : " +"%(name)s, %(fromdate)s, %(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Délai d'expiration d'une réponse automatique" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Timeout en secondes entre deux réponses automatiques pour le même " +"destinataire" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Sujet par défaut" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Je suis absent" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" +"Sujet par défaut utilisé quand un message d'absence est créé automatiquement" + +#: postfix_autoreply/forms.py:140 +msgid "Default content" +msgstr "Contenu par défaut" + +#: 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 "" +"Je suis actuellement absent. Je vous répondrai dès mon retour.\n" +"\n" +"Cordialement,\n" +"%(name)s\n" + +#: 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 "" +"Contenu par défaut utilisé quand un message d'absence est créé " +"automatiquement.La macro '%(name)s' sera remplacée par le nom complet de " +"l'utilisateur." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Auto-reply message" +msgstr "Message de réponse automatique" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Réponse automatique" + +#: postfix_autoreply/models.py:15 +msgid "subject" +msgstr "sujet" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Le sujet qui apparaitra dans les emails envoyés" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "contenu" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Le contenu qui apparaitra dans les emails envoyés" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Activer/Désactiver votre réponse automatique" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "Définir un message à envoyer automatiquement quand vous êtes absent" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Message de réponse auto. mis à jour." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "Service non supporté" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Paramètres du transport" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Transport" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "Adresse de l'hôte cible" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "Port de l'hôte cible" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "Vérifier les destinataires" @@ -3649,7 +4081,9 @@ msgstr "Mot de passe oublié ?" msgid "" "Your password has been set. You may go ahead and sign " "in now." -msgstr "Votre mot de passe a été défini. Vous pouvez continuer et vous connecter dès maintenant." +msgstr "" +"Votre mot de passe a été défini. Vous pouvez continuer et vous connecter dès maintenant." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" @@ -3659,7 +4093,10 @@ msgstr "Changer le mot de passe" msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." -msgstr "Le lien de réinitialisation du mot de passe était invalide, probablement parce qu'il a déjà été utilisé. Merci de demander une nouvelle réinitialisation de mot de passe." +msgstr "" +"Le lien de réinitialisation du mot de passe était invalide, probablement " +"parce qu'il a déjà été utilisé. Merci de demander une nouvelle " +"réinitialisation de mot de passe." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3675,7 +4112,12 @@ msgid "" "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 "

      Nous vous avons envoyé par email les instructions pour définir votre mot de passe, pour peu qu'un compte avec l'email que vous avez renseigné existe. Vous devriez les recevoir rapidement.

      Si vous ne recevez pas d'email, merci de vérifier que vous avez renseigné votre adresse principale et de vérifier votre dossier spam.

      " +msgstr "" +"

      Nous vous avons envoyé par email les instructions pour définir votre mot " +"de passe, pour peu qu'un compte avec l'email que vous avez renseigné existe." +" Vous devriez les recevoir rapidement.

      Si vous ne recevez pas d'email," +" merci de vérifier que vous avez renseigné votre adresse principale et de " +"vérifier votre dossier spam.

      " #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 @@ -3683,14 +4125,18 @@ msgstr "

      Nous vous avons envoyé par email les instructions pour définir votr msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" -msgstr "Pour initier la procédure de réinitialisation du mot de passe de votre compte Modoboa %(username)s, cliquez sur le lien ci-dessous :" +msgstr "" +"Pour initier la procédure de réinitialisation du mot de passe de votre " +"compte Modoboa %(username)s, cliquez sur le lien ci-dessous :" #: 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 "Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller cette URL dans une nouvelle fenêtre navigateur à la place." +msgstr "" +"Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller " +"cette URL dans une nouvelle fenêtre navigateur à la place." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3709,14 +4155,32 @@ msgstr "Réinitialisation du mot de passe Modoboa" msgid "Invalid value" msgstr "Mauvaise valeur" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "patron" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "service" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "saut suivant" + +#~ msgid "An alias with this name already exists." +#~ msgstr "Un alias de ce nom existe déjà." + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (faible)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (faible)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (faible)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (faible)" + +#~ msgid "plain (weak)" +#~ msgstr "clair (faible)" diff --git a/modoboa/locale/hu/LC_MESSAGES/django.po b/modoboa/locale/hu/LC_MESSAGES/django.po index 93f2ce04f..2fb05adfe 100644 --- a/modoboa/locale/hu/LC_MESSAGES/django.po +++ b/modoboa/locale/hu/LC_MESSAGES/django.po @@ -8,7 +8,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: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,480 +18,533 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 +#: 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 "" @@ -504,69 +557,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 @@ -575,51 +636,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 "" @@ -627,23 +690,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 "" @@ -651,7 +714,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 "" @@ -659,93 +722,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 "" @@ -754,23 +817,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 "" @@ -779,148 +842,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 "" @@ -976,9 +1036,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 "" @@ -1013,7 +1073,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 "" @@ -1022,7 +1082,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 "" @@ -1100,7 +1160,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 "" @@ -1124,9 +1184,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 "" @@ -1186,7 +1246,7 @@ 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 "" @@ -1194,7 +1254,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 "" @@ -1207,7 +1267,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 "" @@ -1244,13 +1304,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 "" @@ -1281,9 +1341,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 "" @@ -1300,11 +1361,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:

      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1341,11 +1415,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 @@ -1357,90 +1436,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] "" @@ -1450,36 +1534,36 @@ msgstr[1] "" 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1487,83 +1571,69 @@ 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 "" @@ -1573,450 +1643,477 @@ 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 "" @@ -2048,31 +2145,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 "" @@ -2089,20 +2186,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 "" @@ -2110,137 +2207,137 @@ 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 msgid "Failed to update password: LDAP module not installed" msgstr "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 "" @@ -2265,7 +2362,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 @@ -2278,7 +2377,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 @@ -2290,7 +2391,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 "" @@ -2322,7 +2423,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 "" @@ -2348,7 +2449,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: 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 "" @@ -2365,12 +2466,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 "" @@ -2390,7 +2491,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 "" @@ -2399,7 +2500,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 @@ -2411,28 +2514,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 @@ -2447,67 +2565,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 "" @@ -2543,11 +2665,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 "" @@ -2619,95 +2741,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 "" @@ -2736,7 +2858,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 @@ -2752,7 +2876,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2760,136 +2884,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 "" -#: 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 #, 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 "" @@ -2899,133 +3031,153 @@ msgstr "" msgid "Submit" msgstr "" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "" -#: 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 "" @@ -3038,11 +3190,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 "" @@ -3051,91 +3203,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 "" @@ -3163,175 +3315,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 "" @@ -3339,15 +3497,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" @@ -3356,38 +3514,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 "" @@ -3396,27 +3560,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 "" @@ -3484,7 +3777,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 @@ -3492,7 +3787,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 @@ -3504,18 +3801,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 @@ -3535,14 +3840,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/it/LC_MESSAGES/django.po b/modoboa/locale/it/LC_MESSAGES/django.po index 6158b5fa5..79770d040 100644 --- a/modoboa/locale/it/LC_MESSAGES/django.po +++ b/modoboa/locale/it/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: 2018-11-01 16:31+0000\n" "Last-Translator: marcotrevisan \n" "Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/it/)\n" @@ -21,512 +21,616 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 "Spazio massimo confiviso tra le mailbox. Può essere espresso in KB, MB (predefinito) o GB. Il valore 0 indica nessun limite." +#: 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 "" +"Spazio massimo confiviso tra le mailbox. Può essere espresso in KB, MB " +"(predefinito) o GB. Il valore 0 indica nessun limite." -#: 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 "Spazio massimo predefinito in MB applicato alle caselle di posta. Un valore 0 indica nessun limite." +msgstr "" +"Spazio massimo predefinito in MB applicato alle caselle di posta. Un valore " +"0 indica nessun limite." -#: 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 "Non è stato trovato alcun record MX autorizzato per questo dominio" -#: 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 "Non può essere maggiore dello spazio massimo definito a livello di dominio" +msgstr "" +"Non può essere maggiore dello spazio massimo definito a livello di dominio" -#: 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 "Permesso negato." -#: 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 "Questo campo è obbligatorio" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Lista dei domini amministrati (solo per rivenditori e amministratori di dominio)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Lista dei domini amministrati (solo per rivenditori e amministratori di " +"dominio)." -#: 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 "Non consentito per questo ruolo." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Deve essere uguale a full_address della casella di posta" -#: 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 "Questo campo è obbligatorio." -#: 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 "Il dominio locale {} non esiste" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Una lista di destinatari" -#: 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 "L'utente '%s' esiste già" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Non hai accesso a questo dominio" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Non hai accesso a questa casella di posta." -#: 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 "L'utente '%s' esiste già" -#: 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 "Dev'essere un intero positivo" -#: 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 "Cartella non trovata." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Cartella non trovata." -#: 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 non trovato, assicurarsi che sia installato." -#: 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 "Definire almeno una rete / indirizzo autorizzato" -#: 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 "É necessaria una casella" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Sconosciuto" -#: 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 "Non hai accesso a questo dominio" -#: 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 "Non puoi cancellare il tuo dominio" -#: 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 "Domini" -#: 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 "Abilita i controlli 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 "Verifica che ogni dominio abbia un record MX valido" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "MX validi" -#: 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 "Una lista di indirizzi IP o host a cui ciascun record MX dovrebbe appartenere. Verrà inviato un avviso se un record non la rispetta. " +#: admin/app_settings.py: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 "" +"Una lista di indirizzi IP o host a cui ciascun record MX dovrebbe " +"appartenere. Verrà inviato un avviso se un record non la rispetta. " -#: admin/app_settings.py: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 "Nuovi domini devono utilizzare MX autorizzati" -#: 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 "Impedisci la creazione di un nuovo dominio se il suo record MX non utilizza uno degli indirizzi definiti." +#: 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 "" +"Impedisci la creazione di un nuovo dominio se il suo record MX non utilizza " +"uno degli indirizzi definiti." -#: 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 "Abilita i controlli 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 "Abilita i controlli 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 "Verifica che ogni dominio abbia un record MX valido" -#: 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 "Abilita i controlli 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 "Verifica che ogni dominio abbia un record MX valido" -#: 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 "Abilita i controlli 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 "Verifica che ogni dominio abbia un record MX valido" -#: 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 "Abilita i controlli 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 "Verifica che ogni dominio abbia un record MX valido" -#: 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 "Abilita i controlli 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 "Verifica ciascun dominio sui principali provider DNSBL" -#: 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 "DNS server custom" -#: 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 "Usa un DNS server custom invece della configurazione a sever locale" -#: 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 "Cartella di salvataggio delle chiavi 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 "Percorso assoluto della cartella dove le chiavi private DKIM verranno salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e che non sia leggibile da altri." +#: admin/app_settings.py: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 "" +"Percorso assoluto della cartella dove le chiavi private DKIM verranno " +"salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e" +" che non sia leggibile da altri." -#: admin/app_settings.py:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "Lunghezza predefinita delle chiavi 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 "Lunghezza predefinita in numero di bit per nuove chiavi DKIM." -#: 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 "Quota predefinita per il domini" -#: 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 "Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. Un valore 0 implica nessuna 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 "" +"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. " +"Un valore 0 implica nessuna quota." -#: 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 "Quota predefinita per il domini" -#: 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 "Caselle di posta" -#: 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 "Gestione delle caselle di posta nel filsystem" -#: 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 "Rinomina o rimuovi le caselle di posta nel filesystem quando vengono rinominate o cancellate in 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 "" +"Rinomina o rimuovi le caselle di posta nel filesystem quando vengono " +"rinominate o cancellate in 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 "Dimensione massima predefinita per le mailbox" -#: 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 "Dimensione massima predefinita (in MB) applicata per nuovi domini creati senza alcun valore specificato. Un valore 0 indica nessun limite." +#| 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 "" +"Dimensione massima predefinita (in MB) applicata per nuovi domini creati " +"senza alcun valore specificato. Un valore 0 indica nessun limite." -#: 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 "Dimensione massima predefinita per le mailbox" -#: 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 "Rimozione automatica dell'account" -#: 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 "Quando una casella postale viene rimossa rimuovi anche l'account associato" +msgstr "" +"Quando una casella postale viene rimossa rimuovi anche l'account associato" -#: 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 "Creazione automatica del domini/casella di posta elettronica" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Crea un dominio ed una casella di posta elettronica quando si crea un account utente" +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Crea un dominio ed una casella di posta elettronica quando si crea un " +"account utente" -#: admin/app_settings.py: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 "Crea un alias quando una mailbox viene rinominata" -#: 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 "Crea un alias con il vecchio indirizzo quando una mailbox viene rinominata." +msgstr "" +"Crea un alias con il vecchio indirizzo quando una mailbox viene rinominata." -#: 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 "Dimensione massima predefinita (in MB) applicata per nuovi domini creati senza alcun valore specificato. Un valore 0 indica nessun limite." +#| 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 "" +"Dimensione massima predefinita (in MB) applicata per nuovi domini creati " +"senza alcun valore specificato. Un valore 0 indica nessun limite." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Amministrazione" -#: 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 "Dominio" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Dominio di relay" -#: 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 "Chiudi" -#: 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 "Nome utente" -#: 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 "Il nome dell'utente. Dev'essere un indirizzo e-mail per gli utenti semplici o gli amministratori che posseggono una casella" +#: admin/forms/account.py:31 +msgid "" +"The user's name. Must be a valid e-mail address for simple users or " +"administrators with a mailbox." +msgstr "" +"Il nome dell'utente. Dev'essere un indirizzo e-mail per gli utenti semplici " +"o gli amministratori che posseggono una casella" -#: admin/forms/account.py: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 "Ruolo" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Scegli" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Il livello di permessi che avrà questo utente" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Password casuale" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." -msgstr "Genera una password casuale. Selezionando questa casella durante l'aggioenamento dell'account, verrà generata una nuova password." +#: admin/forms/account.py:43 +msgid "" +"Generate a random password. If you're updating this account and check this " +"box, a new password will be generated." +msgstr "" +"Genera una password casuale. Selezionando questa casella durante " +"l'aggioenamento dell'account, verrà generata una nuova password." -#: admin/forms/account.py: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 "Password" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Conferma" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." -msgstr "Inserisci la medesima password che hai inserito sopra, per la verifica." +msgstr "" +"Inserisci la medesima password che hai inserito sopra, per la verifica." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Abilitato" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Solo i super amministratori possono operare in questa modalità" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Le password nei due campi non corrispondono" -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Tu non puoi disabilitare il tuo account" -#: 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 "Crea un alias con il vecchio indirizzo." -#: 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 "Quota" -#: 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 "Dimensione massima per questa mailbox, può essere espressa in KB, MB (predefinito) o GB. Definire un valore personalizzato o utilizzare quello predefinito per il dominio. Lasciare vuoto per specificare un valore non limitato (non permesso per amministratori di dominio)." +#: admin/forms/account.py: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 "" +"Dimensione massima per questa mailbox, può essere espressa in KB, MB " +"(predefinito) o GB. Definire un valore personalizzato o utilizzare quello " +"predefinito per il dominio. Lasciare vuoto per specificare un valore non " +"limitato (non permesso per amministratori di dominio)." -#: admin/forms/account.py: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" -#: 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 di questa mailbox. Indicare un solo indirizzo per inserimento, premere ENTER per effettuare un nuovo inserimento. Per creare un alias \"intercetta-tutto\", inserire semplicemente il nome dominio (@domain.tld)." +#: admin/forms/account.py: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 di questa mailbox. Indicare un solo indirizzo per inserimento, premere" +" ENTER per effettuare un nuovo inserimento. Per creare un alias " +"\"intercetta-tutto\", inserire semplicemente il nome dominio (@domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Indirizzi mittenti" -#: 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 "Indirizzo(/i) mittente aggiuntivo per questo account. L'utente potrà inviare email usando questo indirizzo/i, anche se non esiste localmente. Indicare un indirizzo per inserimento. Premere ENTER per un nuovo inserimento." +#: admin/forms/account.py: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 "" +"Indirizzo(/i) mittente aggiuntivo per questo account. L'utente potrà inviare" +" email usando questo indirizzo/i, anche se non esiste localmente. Indicare " +"un indirizzo per inserimento. Premere ENTER per un nuovo inserimento." -#: admin/forms/account.py: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 "Il dominio non esiste" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Il dominio locale non esiste" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Dominio(i)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Dominio(i) amministrato(i) dall'utente" -#: 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 "Generale" -#: 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 "Profilo" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Posta" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Permessi" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Account aggiornato" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nuovo account" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Account creato" @@ -539,69 +643,86 @@ msgid "Email address" msgstr "Indirizzo email" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Indirizzi email alias. Per creare un alias catchall specifica il nome del dominio (@domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Indirizzi email alias. Per creare un alias catchall specifica il nome del " +"dominio (@domain.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Destinatari" -#: 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 "Indirizzi verso il quale questo alias punterà . Indicare un solo indirizzo per ogni ingresso , premere INVIO per aggiungere un nuovo input ." +#: admin/forms/alias.py:34 +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Indirizzi verso il quale questo alias punterà . Indicare un solo indirizzo " +"per ogni ingresso , premere INVIO per aggiungere un nuovo input ." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Non è stato definito un destinatario" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Tipo" -#: 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 per questo dominio. Inserire un solo nome alla volta, premere INVIO per aggiungere un nuovo elemento" +#: 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 per questo dominio. Inserire un solo nome alla volta, premere INVIO " +"per aggiungere un nuovo elemento" -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Selettore di chiave" -#: admin/forms/domain.py:52 -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Valore predefinito per lo spazio massimo confiviso tra le mailbox. Può essere espresso in KB, MB (predefinito) o GB. Il valore 0 indica nessun limite." +#: admin/forms/domain.py:57 +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Valore predefinito per lo spazio massimo confiviso tra le mailbox. Può " +"essere espresso in KB, MB (predefinito) o GB. Il valore 0 indica nessun " +"limite." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias del dominio" -#: 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 "Un %s con questo nome esiste già" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Cartella di salvataggio per le chiavi DKIM non configurata." -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Non puoi definire uno spazio illimitato." -#: 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 "dominio" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Crea un amministratore di dominio" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Crea automaticamente un amministratore per questo dominio" -#: 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 +731,55 @@ msgstr "Crea automaticamente un amministratore per questo dominio" msgid "Name" msgstr "Nome" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "Il nome dell'amministratore. Non includere il nome del dominio, verrà aggiunto automaticamente." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Il nome dell'amministratore. Non includere il nome del dominio, verrà " +"aggiunto automaticamente." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Genera una password casuale per l'amministratore." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Con una casella di posta" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Crea una casella di posta per l'amministratore." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Crea alias" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Crea automaticamente gli alias standard per questo dominio" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Formato non valido" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Dominio modificato" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opzioni" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Nuovo dominio" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Dominio creato" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Separatore" @@ -662,23 +787,24 @@ msgstr "Separatore" msgid "Recipient(s)" msgstr "Destinatario(i)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Indicare uno o più destinatari separati da ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Mantieni copie locali" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "Inoltra i messaggi e memorizza le copie nella tua casella di posta locale" +msgstr "" +"Inoltra i messaggi e memorizza le copie nella tua casella di posta locale" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Seleziona un file" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Continuare in caso di errore" @@ -686,132 +812,136 @@ msgstr "Continuare in caso di errore" msgid "Don't treat duplicated objects as error" msgstr "Non considerare errore gli oggetti duplicati" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Cripta le password" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Seleziona questa opzione se le password contenute nel file non sono criptate" +msgstr "" +"Seleziona questa opzione se le password contenute nel file non sono criptate" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Importazione dell'account fallito (%s): il dominio non esiste" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "La La casella di posta {} esiste già" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Importazione account fallito(%s): valore della quota errato" -#: 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 "Identità" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Inoltra" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "É necessaria una casella" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Non hai i permessi di importare domini" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Non hai i permessi di importare gli alias dominio" -#: 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 "Nessun record DNS trovato per %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 "Nessun record MX per %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 "Nessun DNS server funzionante trovato" -#: 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 "Timeout nella risoluzione DNS del nome, problema momentaneo nell'interrogare %s " +msgstr "" +"Timeout nella risoluzione DNS del nome, problema momentaneo nell'interrogare" +" %s " -#: 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 "Formato di indirizzo IP non valido per {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "L'oggetto esiste già: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d oggetti importati correttamente" -#: 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 "Il file CSV non è codificato UTF-8, cerco di determinare l'encoding" -#: 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 "Lettura del file CSV utilizzando la codifica %(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 "Impossibile decodificare il file CSV utilizzando la codifica %(encoding)s" +msgstr "" +"Impossibile decodificare il file CSV utilizzando la codifica %(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 "Il dominio {} non ha record MX" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Il dominio {} non ha record MX" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 #, fuzzy #| msgid "MX records of {}" msgid "Invalid MX record: {}" msgstr "Record MX di {}" -#: 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 "Il record MX per il dominio {0} non è valido: {1}" @@ -820,160 +950,158 @@ msgstr "Il record MX per il dominio {0} non è valido: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] problema(/i) MX per il dominio {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] problema(/i) DNSBL per il dominio {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Dominio non trovato." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Un alias con questo nome esiste già" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "indirizzo" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Indirizzi 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 "Attivato" -#: 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 "Seleziona per attivare questo alias" -#: 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 "Descrizione" -#: 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 "Scade il" -#: 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 "Indirizzo non valido" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Destinatario locale {}@{} non trovato" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Riga non valida: %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 "nome" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Il nome del dominio" -#: 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 "Seleziona per attivare questo dominio" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Abilita i controlli DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Seleziona per abilitare i controlli DNS per questo dominio" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Abilita la firma DKIM" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Se attivi questa feature, verrà generata una chiave DKIM per questo dominio." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Se attivi questa feature, verrà generata una chiave DKIM per questo dominio." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Lunghezza della chiave" -#: 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 "Riga non valida" -#: 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 "Non è stato trovato alcun record MX autorizzato per il dominio {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Valore di spazio massimo non valido per il dominio '{}'" -#: 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 "Valore di spazio massimo predefinito non valido per il dominio '{}'" -#: 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 "Lo spazio massimo predefinito per una casella di posta non può superare quello definito a livello di dominio" +msgstr "" +"Lo spazio massimo predefinito per una casella di posta non può superare " +"quello definito a livello di dominio" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Il nome dell'alias" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "destinazione" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Il dominio a cui punta questo alias" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Dominio sconosciuto %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Indirizzo della casella di posta (senza la parte @dominio.org)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Impossibile recuperare la posizione della casella di posta (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "È richiesta una quota" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -983,8 +1111,9 @@ msgstr "Superato lo spazio massimo per il dominio" #: 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 "Chiudi" @@ -1035,9 +1164,9 @@ msgstr "Quantità" #: 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 "Alias del dominio" @@ -1072,7 +1201,7 @@ msgstr "Creato" msgid "Last login" msgstr "Ultimo login" -#: 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 "Email alternativa" @@ -1081,7 +1210,7 @@ msgstr "Email alternativa" msgid "Not defined" msgstr "Non definito" -#: 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 "Numero di telefono" @@ -1159,7 +1288,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 "Data" @@ -1185,9 +1314,9 @@ msgstr "Data di creazione" msgid "Last modification date" msgstr "Data dell'ultima modifica" -#: 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 "Alias delle caselle di posta" @@ -1246,11 +1375,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 "No" @@ -1258,7 +1388,7 @@ msgstr "No" msgid "Generate new key" msgstr "Genera una nuova chiave" -#: 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 "Si" @@ -1271,7 +1401,7 @@ msgid "Administrators" msgstr "Amministratori" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Rimuovi questo permesso" @@ -1308,13 +1438,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 "Da" #: 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 "A" @@ -1345,9 +1475,10 @@ msgstr "Disabilitato" msgid "Automatically forward emails to another address" msgstr "Inoltra automaticamente le e-mail ad un altro indirizzo" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Aggiorna" @@ -1364,12 +1495,39 @@ msgid "Fullname/Recipient" msgstr "Nome completo/Destinatario" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " -msgstr "Fornire un file CSV le cui linee rispettino uno dei seguenti formati:
      • dominio; nome; dimensioni massime; dimensioni massime di default per casella postale; abilitato
      • alias di dominio; nome; dominio destinazione; abilitato
      • dominio di relay; nome; host destinazione; porta destinazione; servizio; abilitato; verifica destinatari

      Il primo elemento di ciascuna riga è obbligatorio e deve essere uguale ad uno dei precedenti valori.

      Si uò utilizzare un diverso separatore.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " +msgstr "" +"Fornire un file CSV le cui linee rispettino uno dei seguenti formati:
        " +"
      • dominio; nome; dimensioni massime; dimensioni massime di default " +"per casella postale; abilitato
      • alias di dominio; nome; " +"dominio destinazione; abilitato
      • dominio di relay; nome; " +"host destinazione; porta destinazione; servizio; abilitato; verifica " +"destinatari

      Il primo elemento di ciascuna riga è " +"obbligatorio e deve essere uguale ad uno dei precedenti valori.

      Si uò " +"utilizzare un diverso separatore.

      " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " -msgstr "Fornire un file CSV le cui linee rispettino uno dei seguenti formati:
      • account; nomeutente; password; nome; cognome; abilitato; gruppo; indirizzo; dimensioni massime; [, dominio, ...]
      • alias; indirizzo; abilitato; destinatario; destinatario; ...

      Il primo elemento di ciascuna linea è obbligatorio e deve essere uguale ad uno dei precedenti valori.

      Si può utilizzare un diverso separatore.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " +msgstr "" +"Fornire un file CSV le cui linee rispettino uno dei seguenti formati: " +"
      • account; nomeutente; password; nome; cognome; abilitato; gruppo;" +" indirizzo; dimensioni massime; [, dominio, ...]
      • alias; " +"indirizzo; abilitato; destinatario; destinatario; ...

      Il " +"primo elemento di ciascuna linea è obbligatorio e deve essere uguale ad uno " +"dei precedenti valori.

      Si può utilizzare un diverso separatore.

      " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1397,7 +1555,9 @@ msgstr "Aggiornato" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Questo indirizzo IP non coincide con nessuno degli MX validi definiti nei parametri." +msgstr "" +"Questo indirizzo IP non coincide con nessuno degli MX validi definiti nei " +"parametri." #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1405,108 +1565,126 @@ msgstr "Non è stato trovato alcun record MX per questo dominio" #: 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 ha rilevato che il dominio %(domain)sè presente nelle liste dei seguenti provider DNSBL:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa ha rilevato che il dominio %(domain)sè presente nelle liste dei " +"seguenti provider DNSBL:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "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 "La reputazione del dominio verrà influenzata negativamente ed è probabile che le email provenienti da esso vengano considerate spam. Dovresti contattare questi provider e chiedere loro di togliere dalla lista gli indirizzi IP identificati." +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 "" +"La reputazione del dominio verrà influenzata negativamente ed è probabile " +"che le email provenienti da esso vengano considerate spam. Dovresti " +"contattare questi provider e chiedere loro di togliere dalla lista gli " +"indirizzi IP identificati." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa ha rilevato che il dominio %(domain)snon ha un record MX valido:" +msgstr "" +"Modoboa ha rilevato che il dominio %(domain)snon ha un record MX valido:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Ricerca" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "Abilitato" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "Abilitata" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Lista domini" -#: 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 "Elenco quote" -#: 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 "Importa" -#: 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 "Esporta" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Elenco identità" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Visualizza le identita del dominio" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "alias del dominio" -#: 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 "Modifica {}" -#: 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 "Eliminare %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Nessun record MX per %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 "Formato non valido per l'indirizzo IP %(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 "Nessun record MX per %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Un alias con questo nome esiste già" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Crea" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nuovo alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias creato" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias modificato" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias eliminato" @@ -1516,36 +1694,36 @@ msgstr[1] "Alias eliminati" msgid "MX records of {}" msgstr "Record MX di {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Sommario DNSBL per {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Dominio cancellato" msgstr[1] "Domini cancellati" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Identità di esportazione" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Esporta domini" -#: 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 "Richiesta non valida" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Account cancellato" msgstr[1] "Account cancellati" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importa domini" @@ -1553,87 +1731,74 @@ msgstr "Importa domini" msgid "Import identities" msgstr "Identità di importazione" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Inoltro aggiornato" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "Invalid line" msgid "Invalid PIN code" msgstr "Riga non valida" -#: 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 "Locale" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (debole)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (debole)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (debole)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (debole)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "plain (debole)" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 -msgid "User profile" -msgstr "Profilo utente" - -#: 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 "Sintassi errata" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Numero di cicli non valido" - -#: 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 "Vecchia password" -#: 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 "Locale" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Profilo utente" + +#: 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 "Sintassi errata" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Numero di cicli non valido" + +#: 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 "L'utente '%s' è correttamente registrato" -#: 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 "" @@ -1643,475 +1808,533 @@ 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 "Autenticazione" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Tipo di autenticazione" -#: 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 "Il backend utilizzato per l'autenticazione" -#: 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 "Schema password predefinito" -#: 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 "Schema utilizzato per la criptazione delle password delle caselle di posta" +msgstr "" +"Schema utilizzato per la criptazione delle password delle caselle di posta" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Cicli" -#: 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 "Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). Deve essere compreso tra 1000 e 999999999." +#: 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 "" +"Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). Deve " +"essere compreso tra 1000 e 999999999." -#: core/app_settings.py:67 core/app_settings.py:749 +#: core/app_settings.py:71 core/app_settings.py:752 #, fuzzy #| msgid "Update password scheme" msgid "Update password scheme at login" msgstr "Aggiorna lo schema di password" -#: 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 "Aggiorna la password utente al login per usare lo schema di password predefinito" +msgstr "" +"Aggiorna la password utente al login per usare lo schema di password " +"predefinito" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Password predefinita" -#: 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 "Password predefinita per gli account creati automaticamente." -#: 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 "Lunghezza della password casuale" -#: 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 "Lunghezza delle password generate casualmente" -#: core/app_settings.py:90 core/app_settings.py:766 +#: core/app_settings.py:92 core/app_settings.py:781 #, fuzzy #| msgid "Update password scheme" msgid "Update password service URL" msgstr "Aggiorna lo schema di password" -#: 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 "Impostazioni 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 "Indirizzo del server" -#: 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 "L'indirizzo IP o il DNS name del server 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 "Porta del server" -#: 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 "Il numero della porta TCP utilizzata dal server 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 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Indirizzo del server" -#: core/app_settings.py:159 core/app_settings.py:822 +#: core/app_settings.py:156 core/app_settings.py:869 #, fuzzy #| msgid "The IP address or the DNS name of the LDAP server" msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "L'indirizzo IP o il DNS name del server LDAP" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Porta del server" -#: core/app_settings.py:166 core/app_settings.py:829 +#: core/app_settings.py:163 core/app_settings.py:879 #, fuzzy #| msgid "The TCP port number used by the LDAP server" msgid "The TCP port number used by the LDAP secondary server" msgstr "Il numero della porta TCP utilizzata dal server LDAP" -#: 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 "Usa una connessione sicura" -#: 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 "Usa una connessione SSL/STARTTLS per l'accesso al server 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 "Active Directory" -#: 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 "Segnala se il server LDAP è una Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Gruppi degli amministratori" -#: 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 "Gli appartenenti a questi gruppi LDAP Posix avranno i privilegi di amministratori di dominio. Utilizza il carattere ';' per separare valori multipli." +#: 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 "" +"Gli appartenenti a questi gruppi LDAP Posix avranno i privilegi di " +"amministratori di dominio. Utilizza il carattere ';' per separare valori " +"multipli." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Tipo di gruppo" -#: 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 "Il tipo di gruppo LDAP da utilizzare nella Directory" -#: 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 "Base di ricerca per i gruppi" -#: 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 "DN (Nome distinto univoco) della base di ricerca utilizzato per trovare i gruppi" +msgstr "" +"DN (Nome distinto univoco) della base di ricerca utilizzato per trovare i " +"gruppi" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Attributo della password" -#: 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 "L'attributo utilizzato per memorizzare le password degli utenti" -#: core/app_settings.py:220 core/app_settings.py:869 +#: core/app_settings.py:214 core/app_settings.py:943 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Metodo di autenticazione" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Metodo di autenticazione" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Cerca e collega" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Collegamento diretto" -#: 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 "Scegli il metodo di autenticazione da usare" -#: 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 "Collega 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 "DN (Nome distinto univoco) da usare quando ci si collega al server LDAP. Lasciare vuoto per un collegamento anonimo" +#: 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 "" +"DN (Nome distinto univoco) da usare quando ci si collega al server LDAP. " +"Lasciare vuoto per un collegamento anonimo" -#: 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 "Password del collegamento" -#: 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 "La password da utilizzare quando ci si collega al server LDAP (con 'Collega DN')" +msgstr "" +"La password da utilizzare quando ci si collega al server LDAP (con 'Collega " +"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 "Base di ricerca per gli utenti" -#: 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 "DN (Nome distinto univoco) della base di ricerca utilizzata per cercare gli utenti" +msgstr "" +"DN (Nome distinto univoco) della base di ricerca utilizzata per cercare gli " +"utenti" -#: 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 "Filtro ricerca" -#: 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 "Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere valida deve essere racchiusa tra parentesi." +#: 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 "" +"Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere " +"valida deve essere racchiusa tra parentesi." -#: 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 "Modello DN dell'utente" -#: 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 "Il modello utilizzato per comporre il DN degli utenti. Deve contenere un segnaposto (p.es. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Il modello utilizzato per comporre il DN degli utenti. Deve contenere un " +"segnaposto (p.es. %(user)s)" -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "Impostazioni LDAP" -#: 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 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "Modello DN dell'utente" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, fuzzy, 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 an account's DN. It should contain one placeholder (ie. %(user)s)" -msgstr "Il modello utilizzato per comporre il DN degli utenti. Deve contenere un segnaposto (p.es. %(user)s)" +#| msgid "" +#| "The template used to construct a user'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 "" +"Il modello utilizzato per comporre il DN degli utenti. Deve contenere un " +"segnaposto (p.es. %(user)s)" -#: 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 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Attributo della password" -#: 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 #, fuzzy #| msgid "Enable communication" msgid "Enable Dovecot LDAP sync" msgstr "Abilita comunicazione" -#: 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 "RSS feed custom" -#: 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 "Mostra RSS feed custom a rivenditori e amministratori di dominio" -#: 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 "Nascondi il widget delle feature" -#: 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 "Notifiche" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Indirizzo di invio" -#: 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 "Indirizzo email utilizzato per inviare le notifiche" -#: 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 pubblica" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Abilita comunicazione" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Abilita la comunicazione con l'API pubblica di 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 "Controlla nuove versioni" -#: 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 "Controlla automaticamente se è disponibile una nuova versione" -#: 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 "Invia statistiche" -#: 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 "Invia statistiche all'API pubblica di modoboa (contatori ed estensioni utilizzate)" +msgstr "" +"Invia statistiche all'API pubblica di modoboa (contatori ed estensioni " +"utilizzate)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Varie" -#: 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 "Soglia account inattivo" -#: 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 "Soglia account inattivo" -#: 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 "Un account con una data di ultimo accesso più vecchia di questa soglia (in giorni) verrà considerato inattivo" +#: 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 "" +"Un account con una data di ultimo accesso più vecchia di questa soglia (in " +"giorni) verrà considerato inattivo" -#: 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 "Intervallo notifiche" -#: 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 "Intervallo di tempo per la ricerca di nuove notifiche (in secondi)" -#: 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 "Età massima dei log" -#: 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 "La persistenza massima in giorni dei log" -#: 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 "Elementi per pagina" -#: 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 "Numero degli elementi visualizzati in ciascuna pagina" -#: 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 "Reindirizzamento principale predefinito" -#: 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 "Redirezione predefinita utilizzata quando non è specificata alcuna applicazione" +msgstr "" +"Redirezione predefinita utilizzata quando non è specificata alcuna " +"applicazione" -#: 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 "Imposta `USE_TZ = True` in settings.py" @@ -2143,33 +2366,33 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Vecchia password" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nuova password" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "La vecchia password non corrisponde" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Le password non corrispondono" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Abilita accesso API" -#: core/forms.py:152 +#: core/forms.py:170 #, fuzzy #| msgid "Notifications" msgid "Verification code" msgstr "Notifiche" -#: core/forms.py:163 +#: core/forms.py:181 #, fuzzy #| msgid "Invalid line" msgid "Invalid code" @@ -2188,20 +2411,20 @@ msgstr "modificato" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s dall'utente %(user)s" -#: 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 "cancellato" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "" @@ -2209,143 +2432,148 @@ msgstr "" msgid "You can't delete your own account" msgstr "Non puoi cancellare il tuo account" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Sono disponibili nuovi aggiornamenti" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 #, fuzzy #| msgid "One or more updates are available" msgid "[modoboa] Update(s) available" msgstr "Sono disponibili nuovi aggiornamenti" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Consenti l'accesso alle caselle di posta" -#: core/models.py:54 -msgid "Allow this administrator to access user mailboxes" -msgstr "Permetti a questo amministratore di accedere alle caselle di posta degli utenti" - #: core/models.py:57 +msgid "Allow this administrator to access user mailboxes" +msgstr "" +"Permetti a questo amministratore di accedere alle caselle di posta degli " +"utenti" + +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "password" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "lingua" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Lingua preferita per la visualizzazione delle pagine" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Un indirizzo email alternativo, da utilizzare per il recupero password." +msgstr "" +"Un indirizzo email alternativo, da utilizzare per il recupero password." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Aggiornamento della password fallito: il modulo LDAP non è installato" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "account" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Sconosciuto" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Non puoi importare un account con un ruolo superiore al tuo" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "L'utente '%s' deve avere un indirizzo email valido" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "I campi nome utente e email di '%s' devono avere lo stesso valore" -#: 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] "La password deve contenere almeno {} cifra." msgstr[1] "La password deve contenere almeno {} cifre." -#: 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] "La password deve contenere almeno {} lettera minuscola." msgstr[1] "La password deve contenere almeno {} lettere minuscole." -#: 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] "La password deve contenere almeno {} lettera maiuscola." msgstr[1] "La password deve contenere almeno {} lettere maiuscole." -#: 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] "La password deve contenere almeno {} carattere speciale." msgstr[1] "La password deve contenere almeno {} caratteri speciali." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "La tua password deve contenere una combinazione di diversi tipi di carattere." +msgstr "" +"La tua password deve contenere una combinazione di diversi tipi di " +"carattere." -#: 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 #, fuzzy #| msgid "Applications" msgid "Application key" msgstr "Applicazioni" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 #, fuzzy #| msgid "Applications" msgid "Application secret" msgstr "Applicazioni" -#: 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" @@ -2372,8 +2600,12 @@ msgid "Latest news" msgstr "Ultime notizie" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Per ulteriori informazioni visita il blog ufficiale" +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Per ulteriori informazioni visita il blog ufficiale" #: core/templates/core/api_access.html:3 msgid "API access" @@ -2385,7 +2617,9 @@ msgstr "Controlla l'accesso alle API di modoboa" #: 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 @@ -2397,7 +2631,7 @@ msgstr "Token di accesso" msgid "Hello %(user)s." msgstr "Ciao %(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 "Informazioni" @@ -2411,7 +2645,9 @@ msgstr "Uno o più aggiornamenti sono disponibili!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Controlla il seguente elenco per verificare se ci sono componenti da poter aggiornare" +msgstr "" +"Controlla il seguente elenco per verificare se ci sono componenti da poter " +"aggiornare" #: core/templates/core/information.html:10 msgid "Applications" @@ -2429,7 +2665,7 @@ msgstr "Ultima versione" msgid "Active users" msgstr "Utenti attivi" -#: 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 "Log" @@ -2457,7 +2693,7 @@ msgid_plural "" msgstr[0] "Sono disponibili nuovi aggiornamenti" msgstr[1] "Sono disponibili nuovi aggiornamenti" -#: 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 "Parametri" @@ -2474,12 +2710,12 @@ msgstr "Salva" msgid "Modoboa settings" msgstr "Impostazioni 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 "Impostazioni" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Preferenze" @@ -2501,7 +2737,7 @@ msgstr "Aggiorna le informazioni personali" msgid "Click here to update your password" msgstr "Aggiornamento della password fallito: {}" -#: 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 #, fuzzy #| msgid "Security options" msgid "Security" @@ -2514,7 +2750,9 @@ msgid "Two-Factor authentication" msgstr "Il backend utilizzato per l'autenticazione" #: 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 @@ -2528,18 +2766,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" @@ -2547,12 +2794,18 @@ msgstr "" msgid "Disable 2FA" msgstr "Disabilitato" +#: 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 @@ -2571,69 +2824,75 @@ msgstr "Nessun record DNS trovato per %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 "Cripta le password" + #: 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 "Esci" -#: 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 "Parte centrale di Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parametri salvati" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "Il tuo username e/o la tua password non corrispondono. Riprova." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Utente '{}' disconnesso" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profilo aggiornato" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Preferenze salvate" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Accesso aggiornato" -#: 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 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "Strumenti DMARC" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Mostra DMARC report per {}" -#: 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 "" @@ -2669,11 +2928,11 @@ msgstr "Errore temporaneo" msgid "Permanent error" msgstr "Errore permanente" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Policy" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Piccolo problema" @@ -2749,95 +3008,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Fonti sconosciute / Minaccie" -#: 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 "" @@ -2866,7 +3125,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 @@ -2882,7 +3143,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2890,151 +3151,159 @@ 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 "Accesso aggiornato" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "Migrazione IMAP" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "Migrazione IMAP" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "Impostazioni OfflineIMAP" -#: 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 "Sincronizzazioni contemporanee" -#: 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 "Il numero massimo si sincronizzazioni contemporanee" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "Impostazioni OfflineIMAP" -#: 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 "Impostazioni OfflineIMAP" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "Impostazioni OfflineIMAP" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "Migrazione IMAP" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Conennessione al server IMAP fallito: %s" -#: 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 "Migrazione IMAP" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Impossibile creare un account LDAP: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Impossibile aggiornare l'account LDAP: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Impossibile eliminare l'account LDAP: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Impossibile disabilitare l'account LDAP: {}" -#: 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 "Abilita la comunicazione con l'API pubblica di modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "La connessione con il database %s non è configurata" -#: 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 "impossibile determinare la codifica della stringa" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Accesso negato: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Accesso negato" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Inserisci un nome di dominio valido" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Inserisci un indirizzo email valido." @@ -3044,133 +3313,177 @@ msgstr "Inserisci un indirizzo email valido." msgid "Submit" msgstr "Invia" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Aggiornamento della password fallito: {}" -#: 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 "Oggetto" -#: 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 "Limiti predefiniti per amministratore" -#: 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 "Abilita i limiti per amministratore" -#: 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 "Abilita o disabilita i limiti per amministratore" -#: 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 "Amministratori di domini" -#: 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 "Il numero massimo di domini amministrabili per nuovi amministratori. (0 per disabilitare la creazione, -1 per permettere la creazione illimitata)" +#: 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 "" +"Il numero massimo di domini amministrabili per nuovi amministratori. (0 per " +"disabilitare la creazione, -1 per permettere la creazione illimitata)" -#: 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 "Il numero massimo di domini per nuovi amministratori. (0 per disabilitare la creazione, -1 per permettere la creazione illimitata)" +#: 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 "" +"Il numero massimo di domini per nuovi amministratori. (0 per disabilitare la" +" creazione, -1 per permettere la creazione illimitata)" -#: 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 "Il numero massimo di alias per nuovi amministratori. (0 per disabilitare la creazione, -1 per permettere la creazione illimitata)" +#: 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 "" +"Il numero massimo di alias per nuovi amministratori. (0 per disabilitare la " +"creazione, -1 per permettere la creazione illimitata)" -#: 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 "Il numero massimo di caselle di posta elettronica per nuovi amministratori. (0 per disabilitare la creazione, -1 per permettere la creazione illimitata)" +#: 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 "" +"Il numero massimo di caselle di posta elettronica per nuovi amministratori. " +"(0 per disabilitare la creazione, -1 per permettere la creazione illimitata)" -#: 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 "Il numero massimo di alias per nuovi amministratori. (0 per disabilitare la creazione, -1 per permettere la creazione illimitata)" +#: 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 "" +"Il numero massimo di alias per nuovi amministratori. (0 per disabilitare la " +"creazione, -1 per permettere la creazione illimitata)" -#: 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 "La dimensione massima che un rivenditore potrà condividere tra i domini che crea. (0 significa nessun limite)" +#: 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 "" +"La dimensione massima che un rivenditore potrà condividere tra i domini che " +"crea. (0 significa nessun limite)" -#: 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 "Limiti predefiniti per dominio" -#: 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 "Abilita i limiti per dominio" -#: 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 "Abilita o disabilita i limiti per dominio" -#: 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 "Numero massimo di amministratori di dominio consentiti per un nuovo dominio. (0 per negare qualunque creazione, -1 per permetterne senza limiti)" +#: 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 "" +"Numero massimo di amministratori di dominio consentiti per un nuovo dominio." +" (0 per negare qualunque creazione, -1 per permetterne senza limiti)" -#: 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 "Numero massimo di alias di dominio consentiti per un nuovo dominio. (0 per negare qualunque creazione, -1 per permetterne senza limiti)" +#: 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 "" +"Numero massimo di alias di dominio consentiti per un nuovo dominio. (0 per " +"negare qualunque creazione, -1 per permetterne senza limiti)" -#: 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 "Numero massimo di caselle di posta consentite per un nuovo dominio. (0 per negare qualunque creazione, -1 per permetterne senza limiti)" +#: 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 "" +"Numero massimo di caselle di posta consentite per un nuovo dominio. (0 per " +"negare qualunque creazione, -1 per permetterne senza limiti)" -#: 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 "Numero massimo di alias consentiti per un nuovo dominio. (0 per negare qualunque creazione, -1 per permetterne senza limiti)" +#: 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 "" +"Numero massimo di alias consentiti per un nuovo dominio. (0 per negare " +"qualunque creazione, -1 per permetterne senza limiti)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limiti" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Numero massimo di domini che questo utente può creare" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Numero massimo di alias di dominio che questo utente può creare" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Numero massimo di caselle di posta che questo utente può creare" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Numero massimo di alias di caselle di posta che questo utente può creare" +msgstr "" +"Numero massimo di alias di caselle di posta che questo utente può creare" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Numero massimo di amministratori di dominio che questo utente può creare" +msgstr "" +"Numero massimo di amministratori di dominio che questo utente può creare" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Dimensione massima condivisa per i domini di questo rivenditore" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Massimo numero di alias di dominio permessi per questo dominio." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Numero massimo di caselle di posta consentite per questo dominio." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Numero massimo di alias di caselle di posta consentite per questo dominio." +msgstr "" +"Numero massimo di alias di caselle di posta consentite per questo dominio." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." -msgstr "Numero massimo di amministratori di dominio consentiti per questo dominio." +msgstr "" +"Numero massimo di amministratori di dominio consentiti per questo dominio." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Limite non valido" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Risorse" @@ -3183,11 +3496,11 @@ msgstr "%s: raggiunto il limite" msgid "Not enough resources" msgstr "Risorse insufficienti" -#: 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 "Non ti è consentito definire valori non limitati" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "senza limiti" @@ -3196,101 +3509,101 @@ msgstr "senza limiti" msgid "Resources usage" msgstr "Utilizzo risorse" -#: 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 "Percorso del file di log" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Percorso del file di log utilizzato per raccogliere le statistiche" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Cartella dei file RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Percorso della cartella dove sono memorizzati i file RRD" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" msgid "Show greylisted messages" msgstr "messaggi respinti" -#: 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 "Statistiche" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "" -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 #, fuzzy msgid "Average traffic (msgs/min)" msgstr "Dimensione del traffico normale medio" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "messaggi inviati" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "messaggi ricevuti" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "messaggi di rimbalzo" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "messaggi respinti" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "messaggi inviati" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "messaggi inviati" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "messaggi respinti" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 #, fuzzy msgid "Average normal traffic size (bytes/min)" msgstr "Dimensione del traffico normale medio" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "dimensione di ricezione" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "dimensione di spedizione" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Traffico mail" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3318,183 +3631,196 @@ msgstr "Applica" msgid "No statistics available" msgstr "Non sono disponibili statistiche" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Giorno" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Settimana" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Mese" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Anno" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Impostazione grafica sconosciuta" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Impostazione grafica sconosciuta" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Periodo personalizzato sbagliato" -#: 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 "Informazioni Personali" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Cartella non trovata." -#: 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 "Non ci sono documenti disponibili er questo utente" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "Credenziali PDF" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." msgstr "Genera documenti solo dopo la creazione dell'account" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Memorizzazione Documenti" -#: 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 "Cartella nella quale salvare i documenti" -#: 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 "Indirizzo della cartella dove i documenti PDF saranno salvati" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Opzioni di sicurezza" -#: 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 "Cancella i documenti dopo averli scaricati" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" -msgstr "Elimina automaticamente il documento dopo che è stato scaricato da questa interfaccia" +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +msgid "" +"Automatically delete a document just after its first download from this " +"interface" +msgstr "" +"Elimina automaticamente il documento dopo che è stato scaricato da questa " +"interfaccia" -#: 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 "Genera documenti solo dopo la creazione dell'account" -#: 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." -msgstr "Generare un nuovo documento solo quando si crea un nuovo account. Se impostato su no , un nuovo documento verrà creato ogni volta che la password viene aggiornata." +#: 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 "" +"Generare un nuovo documento solo quando si crea un nuovo account. Se " +"impostato su no , un nuovo documento verrà creato ogni volta che la password" +" viene aggiornata." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Opzioni di personalizzazione" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Titolo" -#: 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 "Il titolo del documento" -#: 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 "URL del pannello di controllo web" -#: 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 "URL del pannello di controllo web di Modoboa" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Messaggio personalizzato" -#: 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 "Un messaggio personalizzato comparirà alla fine dei documenti" -#: 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 "Includi le impostazioni di connessione del client di posta" -#: 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" -msgstr "Includi le informazioni di connessione SMTP e IMAP richieste per configurare un client di posta, un tablet o telefono" +#: 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 "" +"Includi le informazioni di connessione SMTP e IMAP richieste per configurare" +" un client di posta, un tablet o telefono" -#: 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 "Indirizzo del server SMTP" -#: 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 "Indirizzo del server SMTP (nome host o indirizzo IP)" -#: 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 "Porta del server SMTP" -#: 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 "Porta di ascolto del server SMTP" -#: 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 "Sicurezza della connessione al server SMTP" -#: 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 "Meccanismo di sicurezza della connessione" -#: 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 "indirizzo del server IMAP" -#: 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 "Indirizzo del server IMAP (nome host o indirizzo IP)" -#: 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 "Porta del server IMAP" -#: 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 "Porta di ascolto del server IMAP" -#: 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 "Sicurezza della connessione al server IMAP" @@ -3502,17 +3828,17 @@ msgstr "Sicurezza della connessione al server IMAP" msgid "PDF credentials" msgstr "Credenziali PDF" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "Credenziali PDF" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Powered by Modoboa - Mail hosting made simple" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3525,11 +3851,11 @@ msgstr "" "per accedere a Modoboa. Leggilo e elimina\n" " il documento il prima possibile.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Pannello web:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3539,31 +3865,38 @@ msgstr "" "Qui puoi sempre visualizzare le tue email onlime, creare filtri\n" "o gestire i tuoi contatti.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Per favore cambia la tua password!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "Configurazione PC/Tablet/Smartphone:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "Utilizza quelle impostazioni per il tuo computer, tablet o telefono." -#: 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 "Recuperare le credenziali dell'utente come documento PDF" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "Credenziali PDF" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "Impossibile creare la cartella che conterrà i documenti PDF (%s)" @@ -3572,27 +3905,180 @@ msgstr "Impossibile creare la cartella che conterrà i documenti PDF (%s)" msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "Impossibile creare la cartella che conterrà i documenti PDF (%s)" -#: 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: raggiunto il limite" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: raggiunto il limite" + +#: 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 "Questa data è passata" + +#: 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 "Dev'essere successiva alla data di inizio" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Risposte automatiche" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Attiva la risposta automatica da questa data" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Fino al" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Attiva la tua risposta automatica fino a questa data" + +#: 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 "Tempo massimo della risposta automatica" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Tempo massimo in secondi tra due risposte automatiche al medesimo " +"destinatario" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Oggetto predefinito" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Sono via" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "Oggetto predefinito utilizzato nei messaggi di risposta automatica" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Corpo del messaggio predefinito" + +#: 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 "" +"Al momento non posso rispondere. Risponderò al mio ritorno.\n" +"\n" +"Distinti saluti,\n" +"%(name)s\n" + +#: 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 "" +"Corpo del messaggio predefinito per i messaggi di risposta automatica. La " +"macro '%(name)s' verrà sostituita con il nome dell'utente. " + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Messaggio di risposta automatica" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Risposte automatiche" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "oggetto" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "L'oggetto che apparirà nelle mail inviate" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "contenuto" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Il contenuto che apparirà nelle mail inviate" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Attiva/disattiva la tua risposta automatica" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "Definisci un messaggio da inviare automaticamente quando sei via" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Messaggio di risposta automatica aggiornato con successo." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "Servizio non supportato" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Impostazioni di trasporto" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Trasporto" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "Indirizzo dell'host di destinazione " -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "Porta dell'host di destinazione" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "Verifica destinatari" @@ -3662,16 +4148,24 @@ msgstr "Password dimenticata?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "La tua password è stata impostata. Ora puoi accedere." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"La tua password è stata impostata. Ora puoi accedere." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Cambia password" #: 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 "Il link per il reset della password non era valido, probabilmente perché è già stato uitilizzato. Richiedi un altro reset della password." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Il link per il reset della password non era valido, probabilmente perché è " +"già stato uitilizzato. Richiedi un altro reset della password." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3682,19 +4176,36 @@ 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 "

      Ti abbiamo inviato una email con le istruzioni per l'impostazione della password, se esiste un account associato alla email che hai inserito. Dovresti riceverle a breve

      Se non ricevi nessuna email, assicurati di avere inserito il tuo indirizo email primario, inoltre controlla la posta indesiderata.

      " +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 "" +"

      Ti abbiamo inviato una email con le istruzioni per l'impostazione della " +"password, se esiste un account associato alla email che hai inserito. " +"Dovresti riceverle a breve

      Se non ricevi nessuna email, assicurati di " +"avere inserito il tuo indirizo email primario, inoltre controlla la posta " +"indesiderata.

      " #: 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 "Per avviare il processo di reset della password per il tuo account Modoboa %(username)s, clicca il link sottostante:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Per avviare il processo di reset della password per il tuo account Modoboa " +"%(username)s, clicca il link sottostante:" #: 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 "Se non funziona il click del link sopra, fai copia e incolla della URL in una nuova finestra del browser." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Se non funziona il click del link sopra, fai copia e incolla della URL in " +"una nuova finestra del browser." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3713,22 +4224,36 @@ msgstr "Modoboa password reset" msgid "Invalid value" msgstr "Valore non valido" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "pattern" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "servizio" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "prossimo salto" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: raggiunto il limite" +#~ msgid "An alias with this name already exists." +#~ msgstr "Un alias con questo nome esiste già" + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (debole)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (debole)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (debole)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (debole)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (debole)" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Una serie di strumenti per facilitare l'integrazione DMARC" @@ -3737,7 +4262,6 @@ msgstr "prossimo salto" #~ msgstr "Genera i documenti PDF con le credenziali dell'utente" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "Migrazione IMAP" diff --git a/modoboa/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/locale/ja_JP/LC_MESSAGES/django.po index fdca66796..5ea000e9c 100644 --- a/modoboa/locale/ja_JP/LC_MESSAGES/django.po +++ b/modoboa/locale/ja_JP/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: 2016-09-14 17:06+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/language/ja_JP/)\n" @@ -19,547 +19,620 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." msgstr "" "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" "値が0の場合は、クォータ制限はありません。" -#: admin/api/v1/serializers.py:42 +#: admin/api/v1/serializers.py:49 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." msgstr "" "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" "値が0の場合は、クォータ制限はありません。" -#: admin/api/v1/serializers.py:73 admin/forms/domain.py:108 +#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 #, fuzzy #| msgid "No information available for this domain." 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 "メールボックス full_address に等しくなければなりません" -#: 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 #, fuzzy #| msgid "A mailbox is required" 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 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "ユーザー %s はすでに存在します" + +#: admin/api/v1/serializers.py:565 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this domain." msgstr "このドメインにアクセスする権限がありません" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 #, fuzzy #| msgid "You don't have access to this domain" 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 "ユーザー %s はすでに存在します" -#: 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 #, fuzzy #| msgid "Domain not found." msgid "Directory not found." msgstr "ドメインが見つかりません" -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Domain not found." 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 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "メールボックスは必須です" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown domain %s" msgid "Unknown status" msgstr "不明なドメイン %s" -#: 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 +#, fuzzy +#| msgid "Enable DNSBL checks" +msgid "Enable IPV6 checks" +msgstr "DNSBL チェックを有効にする" + +#: 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 DNSBL checks" msgid "Enable SPF checks" msgstr "DNSBL チェックを有効にする" -#: admin/app_settings.py:57 admin/app_settings.py:328 +#: admin/app_settings.py:60 admin/app_settings.py:341 #, fuzzy #| msgid "Check every domain against major DNSBL providers" msgid "Check if every domain has a valid SPF record" msgstr "すべてのドメインを 主な DNSBL プロバイダーでチェックする" -#: admin/app_settings.py:62 admin/app_settings.py:332 +#: admin/app_settings.py:64 admin/app_settings.py:348 #, fuzzy #| msgid "Enable DNSBL checks" msgid "Enable DKIM checks" msgstr "DNSBL チェックを有効にする" -#: 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 #, fuzzy #| msgid "Enable DNSBL checks" msgid "Enable DMARC checks" msgstr "DNSBL チェックを有効にする" -#: admin/app_settings.py:74 admin/app_settings.py:341 +#: admin/app_settings.py:74 admin/app_settings.py:360 #, fuzzy #| msgid "Check every domain against major DNSBL providers" msgid "Check if every domain has a valid DMARC record" msgstr "すべてのドメインを 主な DNSBL プロバイダーでチェックする" -#: admin/app_settings.py:79 admin/app_settings.py:345 +#: admin/app_settings.py:78 admin/app_settings.py:367 #, fuzzy #| msgid "Enable DNSBL checks" msgid "Enable autoconfig checks" msgstr "DNSBL チェックを有効にする" -#: 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 "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 "すべてのドメインを 主な DNSBL プロバイダーでチェックする" -#: 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 "" "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" "値が0の場合は、クォータ制限はありません。" -#: 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 "デフォルトドメインクォータ" -#: 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 "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 #, fuzzy #| msgid "Default domain quota" msgid "Default mailbox quota" msgstr "デフォルトドメインクォータ" -#: admin/app_settings.py:156 +#: admin/app_settings.py:151 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created mailboxes with no value specified. A value of 0 means no quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created mailboxes with no " +"value specified. A value of 0 means no quota." msgstr "" "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" "値が0の場合は、クォータ制限はありません。" -#: admin/app_settings.py:162 admin/app_settings.py:413 +#: admin/app_settings.py:157 admin/app_settings.py:467 #, fuzzy #| msgid "Default domain quota" 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 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created domains with no " +"value specified. A value of 0 means no quota." msgstr "" "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" "値が0の場合は、クォータ制限はありません。" -#: 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 "" "ユーザーの名前。\n" "メールボックスを持つユーザーもしくは管理者の有効な電子メールアドレスでなければなりません。" -#: 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 #, fuzzy #| msgid "Invalid address" 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 "2つのパスワード項目が一致しません" -#: 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 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota 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)." +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." msgstr "" "このメールボックスのクォータ (MB)\n" "カスタム値またはドメインのデフォルト値を定義します\n" "無制限の値を定義する場合は空白のままにします\n" "(ドメイン管理者には許可されていません)" -#: admin/forms/account.py: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 +#: admin/forms/account.py:269 #, fuzzy -#| msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. Use the '*' character to create a 'catchall' alias (ex: *@domain.tld)." -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. To create a catchall alias, just enter the domain name (@domain.tld)." +#| msgid "" +#| "Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +#| "to add a new input. Use the '*' character to create a 'catchall' alias (ex: " +#| "*@domain.tld)." +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. To create a catchall alias, just enter the domain name " +"(@domain.tld)." msgstr "" "メールボックスのエイリアス\n" "input ごとに1つだけのアドレスを記入し、 ENTER キーを押して、新しい input を追加します\n" " 「キャッチオール」エイリアスを作成するには、 ' * '文字を使用してください (例: *@domain.tld)" -#: 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 "アカウントを作成しました" @@ -574,7 +647,9 @@ 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 "" "エイリアスアドレス\n" "キャッチオールエイリアスを作成するためには、ドメイン名だけを入力します (@domain.tld)" @@ -583,70 +658,78 @@ msgstr "" 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 "" "アドレスはこのエイリアスが指し示すます。\n" "input ごとに1つだけのアドレスを記入し、 ENTER キーを押して、新しい input を追加します" -#: 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 "" "このドメインのエイリアス \n" "input ごとに1つの名前を入力して、 ENTER キーを押して、新しい input を追加します" -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:52 +#: admin/forms/domain.py:57 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." msgstr "" "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" "値が0の場合は、クォータ制限はありません。" -#: admin/forms/domain.py: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 " %s という名前は、すでに存在しています" -#: 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 @@ -655,57 +738,59 @@ 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 "" "管理者の名前\n" "ここでは、ドメイン名を含めないでください、それが自動的に付加されます。" -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 #, fuzzy #| msgid "Create a domain administrator" 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 #, fuzzy #| msgid "Create a domain administrator" 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 "セパレーター" @@ -713,23 +798,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 "\",\"で区切られた1つまたは複数の受信者を示します" -#: 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 "エラーのときに続行する" @@ -737,7 +822,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 "パスワード暗号化" @@ -745,96 +830,96 @@ 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 "アカウントのインポートに失敗しました (%s): ドメインが存在しません" -#: 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 "アカウントのインポートに失敗しました (%s): 不正なクォータの値" -#: 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 "ID" -#: 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 #, fuzzy, python-format #| msgid "No information available for this domain." msgid "No DNS record found for %s" msgstr "このドメインに関する情報がありません。" -#: admin/lib.py:202 +#: admin/lib.py:204 #, fuzzy, python-format #| msgid "No information available for this domain." 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 #, fuzzy, python-brace-format #| msgid "Invalid quota value for domain '%s'" msgid "Invalid IP address format for {domain}; {addr}" msgstr "不正なドメイン %s のクォータ値" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "オブジェクトはすでに存在します: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d オブジェクトのインポートに成功しました" -#: 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 "" @@ -843,25 +928,25 @@ 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 #, fuzzy #| msgid "Domain not found." 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 "" @@ -870,164 +955,159 @@ 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 "[modoboa] ドメイン {} の DNSBL結果" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "ドメインが見つかりません" -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -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 "有効" +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 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "不正な行: %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 "名前" -#: 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 #, fuzzy #| msgid "Enable DNSBL checks" msgid "Enable DNS checks" msgstr "DNSBL チェックを有効にする" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 #, fuzzy #| msgid "Check to activate this domain" 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 #, fuzzy #| msgid "No information available for this domain." msgid "{}: no authorized MX record found for domain" msgstr "このドメインに関する情報がありません。" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "{}: invalid quota value for domain" msgstr "不正なドメイン %s のクォータ値" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "{}: invalid default mailbox quota value for domain" msgstr "不正なドメイン %s のクォータ値" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "{}: default mailbox quota cannot be greater than domain quota" msgstr "不正なドメイン %s のクォータ値" -#: 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 "不明なドメイン %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "メールボックスアドレス (@domain.tld 部分なし)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "メールボックスの場所の取得に失敗しました (%s)" -#: 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 #, fuzzy #| msgid "Domain created" msgid "{}: domain quota exceeded" @@ -1037,8 +1117,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 "閉じる" @@ -1093,9 +1174,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 "ドメインエイリアス" @@ -1132,7 +1213,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 "2つめの電子メール" @@ -1141,7 +1222,7 @@ msgstr "2つめの電子メール" 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 "電話番号" @@ -1219,7 +1300,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 "日付" @@ -1245,9 +1326,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 "メールボックスエイリアス" @@ -1305,11 +1386,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 "いいえ" @@ -1317,7 +1399,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 "はい" @@ -1330,7 +1412,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 "このパーミッションを削除" @@ -1369,13 +1451,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 "" +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 "" @@ -1408,9 +1490,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 "更新" @@ -1437,7 +1520,14 @@ msgstr "フルネーム / 受信者" #| "
    \n" #| "

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

    \n" #| "

    You can use a different character as separator.

    \n" -msgid "Provide a CSV file where lines respect one of the following formats:
    • domain; name; quota; default mailbox quota; enabled
    • domainalias; name; targeted domain; enabled
    • relaydomain; name; target host; target port; service; enabled; verify recipients

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

    You can use a different character as separator.

    " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
      " +"
    • domain; name; quota; default mailbox quota; enabled
    • " +"
    • domainalias; name; targeted domain; enabled
    • " +"
    • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

    " msgstr "" "次のどちらかのフォーマットに従った CSV ファイルを用意してください:\n" "
      \n" @@ -1459,7 +1549,13 @@ msgstr "" #| "
    \n" #| "

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

    \n" #| "

    You can use a different character as separator.

    \n" -msgid "Provide a CSV file where lines respect one of the following formats:
    • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
    • alias; address; enabled; recipient; recipient; ...

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

    You can use a different character as separator.

    " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
      " +"
    • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
    • alias; address; enabled; " +"recipient; recipient; ...

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

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

    " msgstr "" "次のどちらかのフォーマットに従った CSV ファイルを用意してください:\n" "
      \n" @@ -1508,12 +1604,18 @@ 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 "Modoboa は、ドメイン %(domain)s が、以下の DNSBL プロバイダーに載っていることを検出しました:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." -msgstr "ドメインのレピュテーションが影響を受けることになりますし、それから来るメールはスパムと見なされる可能性があります。あなたは、これらのプロバイダーに連絡して、検出されたIPアドレスを登録解除してもらう必要があります。" +msgid "" +"The domain's reputation will be affected and there is a chance that emails " +"coming from it are considered as spam. You should contact those providers " +"and ask them to unlist detected IP address(es)." +msgstr "" +"ドメインのレピュテーションが影響を受けることになりますし、それから来るメールはスパムと見なされる可能性があります。あなたは、これらのプロバイダーに連絡して、検出されたIPアドレスを登録解除してもらう必要があります。" #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format @@ -1524,93 +1626,99 @@ msgstr "" msgid "Search" msgstr "検索" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: 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 "ID 一覧を表示" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "ドメインの ID を表示" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" 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 "%s を削除しますか?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, fuzzy, python-format #| msgid "No information available for this domain." 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 +#, fuzzy, python-format +#| msgid "No information available for this domain." +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] "" @@ -1619,34 +1727,34 @@ msgstr[0] "" msgid "MX records of {}" msgstr "" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "{} のDNSBL 要約" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "ドメインを削除しました" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "ID をエクスポート" -#: 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] "アカウントを削除しました" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "ドメインをインポート" @@ -1654,89 +1762,76 @@ msgstr "ドメインをインポート" msgid "Import identities" msgstr "ID をインポート" -#: 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 #, fuzzy #| msgid "Invalid line" 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 +#, fuzzy +#| msgid "Old password" +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 "md5crypt (弱い)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (弱い)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (弱い)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (弱い)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "plain (弱い)" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 +#: core/api/v2/serializers.py:164 core/app_settings.py:24 #, fuzzy #| msgid "Profile" 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 -#, fuzzy -#| msgid "Old password" -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 "ユーザー \"%s\" がログインに成功しました" -#: 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 "" @@ -1746,485 +1841,515 @@ 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 "" "ラウンド数は(sha256crypt と sha512crypt だけで)使用しています。\n" "1000 から 999999999 の間でなければなりません。" -#: core/app_settings.py:67 core/app_settings.py:749 +#: core/app_settings.py:71 core/app_settings.py:752 #, fuzzy #| msgid "Default password scheme" 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 #, fuzzy #| msgid "Default password scheme" 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 #, fuzzy #| msgid "Bind password" msgid "Random password length" msgstr "Bind パスワード" -#: 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 #, fuzzy #| msgid "Default password scheme" 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 "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 "サーバーアドレス" -#: 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 "LDAP サーバーの IP アドレス、または DNS 名" -#: 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 "LDAP サーバーの TCP ポート番号" -#: 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "The IP address or the DNS name of the LDAP server" msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "LDAP サーバーの IP アドレス、または DNS 名" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 #, fuzzy #| msgid "Server port" 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 #, fuzzy #| msgid "The TCP port number used by the LDAP server" msgid "The TCP port number used by the LDAP secondary server" msgstr "LDAP サーバーの TCP ポート番号" -#: 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 #, fuzzy #| msgid "Use an SSL/TLS connection to access the LDAP server" msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "LDAP サーバーへの接続に SSL/TLS 接続を使う" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "LDAP サーバーが Active Directory かどうか" -#: 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 "" "これらの LDAP の Posix グループのメンバーは、ドメイン管理者として作成されます。\n" "\";\" 文字を使って、複数グループを書けます。" -#: 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 "ディレクトリで使用されている LDAP グループの種類" -#: 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 "グループを見つけるために使用される検索ベースの識別名(DN)" -#: 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 #, fuzzy #| msgid "Authentication method" 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 "検索と Bind" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Bind" -#: 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 "Bind 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" +#: 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 "" "LDAPサーバにバインドするときの識別名に使用します。\n" "匿名バインドのときは空のままにします。" -#: 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 "Bind パスワード" -#: 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 "(\"Bind DN\" を使って) LDAPサーバにバインドするときに使用するパスワード" -#: 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 "ユーザーを見つけるために使用される検索ベースの識別名(DN)" -#: 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 "" "オプションのフィルタ文字列 (例えば \"(objectClass=person)\") \n" "有効であるためには、括弧で囲まなければなりません。" -#: 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 "ユーザー 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)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "ユーザーDNを作るために使用されるテンプレート。1つのプレースホルダ (%(user)s)が含まれている必要があります。" -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "LDAP 設定" -#: 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 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "ユーザー DN テンプレート" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, fuzzy, 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 an account'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)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "ユーザーDNを作るために使用されるテンプレート。1つのプレースホルダ (%(user)s)が含まれている必要があります。" -#: 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 #, fuzzy #| msgid "Password attribute" 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 "2つのトップの通知チェックの間隔 (秒)" -#: 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 "" @@ -2256,33 +2381,33 @@ 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 "API アクセスを有効にします" -#: core/forms.py:152 +#: core/forms.py:170 #, fuzzy #| msgid "Notifications" msgid "Verification code" msgstr "通知" -#: core/forms.py:163 +#: core/forms.py:181 #, fuzzy #| msgid "Invalid line" msgid "Invalid code" @@ -2301,21 +2426,21 @@ msgstr "修正しました" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s by ユーザー %(user)s" -#: core/handlers.py:63 +#: core/handlers.py:64 #, fuzzy, python-format #| msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgid "%(object)s '%(name)s' %(action)s by " msgstr "%(object)s '%(name)s' %(action)s by ユーザー %(user)s" -#: 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 "" @@ -2323,139 +2448,139 @@ 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 "1つ以上のアップデートが利用できます" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 #, fuzzy #| msgid "One or more updates are available" msgid "[modoboa] Update(s) available" msgstr "1つ以上のアップデートが利用できます" -#: 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 msgid "Failed to update password: LDAP module not installed" msgstr "パスワードの更新に失敗しました : LDAP モジュールがインストールされていません。" -#: 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 "ユーザー \"%s\" は、正しい電子メールアドレスを持っていなければいけません" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "\"%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] "" -#: 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] "" -#: 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] "" -#: 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] "" -#: 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 #, fuzzy #| msgid "Applications" msgid "Application key" msgstr "アプリケーション" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 #, fuzzy #| msgid "Applications" 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" @@ -2482,7 +2607,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 @@ -2495,7 +2622,9 @@ msgstr "Modoboa API へのアクセスを制御" #: 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 @@ -2507,7 +2636,7 @@ msgstr "API アクセストークン" 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 "情報" @@ -2539,7 +2668,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 "ログ" @@ -2566,7 +2695,7 @@ msgid_plural "" " The following updates are available:\n" msgstr[0] "1つ以上のアップデートが利用できます" -#: 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 "パラメータ" @@ -2583,12 +2712,12 @@ msgstr "保存" msgid "Modoboa settings" msgstr "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 "設定" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "プリファレンス" @@ -2610,7 +2739,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 #, fuzzy #| msgid "Security options" msgid "Security" @@ -2623,7 +2752,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 @@ -2637,30 +2768,45 @@ 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 #| msgid "disabled" 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 @@ -2679,71 +2825,77 @@ msgstr "このドメインに関する情報がありません。" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "パスワード暗号化" + #: 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 "ログアウト" -#: 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 "Modoboaのコア部分" -#: 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 #, fuzzy #| msgid "User '%s' successfully logged in" msgid "User '{}' successfully logged out" msgstr "ユーザー \"%s\" がログインに成功しました" -#: 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 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "DMARC ツール" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "{} の DMARC レポートを表示" -#: 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 "" @@ -2779,11 +2931,11 @@ msgstr "Temporary error" msgid "Permanent error" msgstr "Permanent error" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Policy" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Soft failure" @@ -2859,95 +3011,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Unknown sources / Threats" -#: 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 "" @@ -2976,7 +3128,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 @@ -2992,7 +3146,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -3000,150 +3154,158 @@ 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 "アクセスが更新されました" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "IMAP マイグレーション" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "IMAP マイグレーション" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "オフライン IMAP 設定" -#: 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 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "オフライン IMAP 設定" -#: 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 設定" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "オフライン IMAP 設定" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "IMAP マイグレーション" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "IMAP サーバーへの接続に失敗しました: %s" -#: 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 "IMAP マイグレーション" -#: 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 #, 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 "データベース %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 "" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "アクセス拒否: %s" -#: 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 "正しいメールアドレスを入力してください" @@ -3153,133 +3315,153 @@ msgstr "正しいメールアドレスを入力してください" msgid "Submit" msgstr "送信" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "パスワードの更新に失敗しました: {}" -#: 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 "新しい管理者に許可されたドメイン管理者の最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しい管理者に許可されたドメインの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しい管理者に許可されたドメインエイリアスの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しい管理者に許可されたメールボックスの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しい管理者に許可されたエイリアスの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しいドメインに許可されたドメイン管理者の最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しいドメインに許可されたドメインエイリアスの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しいドメインに許可されたメールボックスの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "新しいドメインに許可されたエイリアスの最大数 (0は作成を拒否、-1は無制限の作成を許可)" -#: 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 "リソース" @@ -3292,11 +3474,11 @@ msgstr "%s: 制限に達しました" 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 "無制限" @@ -3305,99 +3487,99 @@ 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 "RRD ファイルを保管するためのディレクトリ" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "RRD ファイルが保管されたディレクトリへのパス" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" 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 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "送信メッセージ" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "送信メッセージ" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" 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 "" @@ -3425,185 +3607,191 @@ 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 #, fuzzy #| msgid "Unknown graphic set" 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 #, fuzzy #| msgid "Domain not found." 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 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "PDF 認証情報" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" 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 "PDF ドキュメントを保存するためのディレクトリのパス" -#: 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 "" "アカウントの作成されたときだけ、新しいドキュメントを生成します。\n" "もし「いいえ」設定すれば、新しい文書は、パスワードが更新されるたびに作成されます。" -#: 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 "" @@ -3611,17 +3799,17 @@ msgstr "" msgid "PDF credentials" msgstr "PDF 認証情報" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "PDF 認証情報" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Powered by Modoboa - メールホスティングをシンプルに" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3635,42 +3823,49 @@ msgstr "" "このドキュメントには、Modoboa へ接続するための必要な認証情報が書かれています。\n" "内容を理解したら、すみやかに廃棄してください。\n" -#: 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 "PDF ドキュメントとしてユーザー認証情報を取得します" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "PDF 認証情報" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "PDFドキュメントを格納するディレクトリの作成に失敗しました (%s)" @@ -3679,33 +3874,185 @@ msgstr "PDFドキュメントを格納するディレクトリの作成に失敗 msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "PDFドキュメントを格納するディレクトリの作成に失敗しました (%s)" -#: 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: 制限に達しました" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: 制限に達しました" + +#: 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 "この日付は過ぎています" + +#: 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 +#, fuzzy +#| msgid "Automatic account removal" +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 "" +"この日時から自動応答を有効にします。\n" +"書式 : YYYY-MM-DD HH:mm:ss" + +#: 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 "" +"この日時まで自動応答を有効にします。\n" +"書式 : YYYY-MM-DD HH:mm:ss" + +#: 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 "デフォルトの本文" + +#: 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 "" +"ただいま不在にしています。\n" +"戻り次第、お返事いたします。\n" +"\n" +"よろしくお願いします。\n" +"%(name)s\n" + +#: 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 "" +"自動応答メッセージが作成されたときにデフォルトのコンテンツを使用しました。\n" +"\"%(name)s\" のマクロは、ユーザーのフルネームに置き換えられます。" + +#: 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 +#, fuzzy +#| msgid "Subject" +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 #, fuzzy #| msgid "Relay settings" msgid "Transport settings" msgstr "リレー設定" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 #, fuzzy #| msgid "target host" msgid "target host address" msgstr "ターゲットホスト" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 #, fuzzy #| msgid "target host" msgid "target host port" msgstr "ターゲットホスト" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "受信者を確認" @@ -3777,7 +4124,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 @@ -3787,7 +4136,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 @@ -3799,18 +4150,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 @@ -3832,22 +4191,36 @@ 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 "" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: 制限に達しました" +#~ msgid "An alias with this name already exists." +#~ msgstr "このエイリアス名がすでに存在しています" + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (弱い)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (弱い)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (弱い)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (弱い)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (弱い)" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "DMARC 統合のためのツールセット" @@ -3856,7 +4229,6 @@ msgstr "" #~ msgstr "ユーザーの認証情報を書かれた PDF ドキュメントを生成" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "IMAP マイグレーション" @@ -3876,12 +4248,10 @@ msgstr "" #~ msgstr "キーは、16, 24, 32 バイトのいずれかの長さでなければいけません" #, fuzzy -#~| msgid "Group name" #~ msgid "First name" #~ msgstr "グループ名" #, fuzzy -#~| msgid "Last login" #~ msgid "Last name" #~ msgstr "最終ログイン" @@ -3889,7 +4259,6 @@ msgstr "" #~ msgstr "最終ログイン" #, fuzzy -#~| msgid "User '%s' logged out" #~ msgid "User {} logged out" #~ msgstr "ユーザー \"%s\" がログアウトしました" @@ -3912,12 +4281,10 @@ msgstr "" #~ msgstr "サービス名" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote address (hostname or IP) of this domain" #~ msgstr "このドメインのリモート接続先" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote port of this domain" #~ msgstr "このドメインのリモート接続先" @@ -3951,7 +4318,6 @@ msgstr "" #~ msgstr "ドメイン %s は、存在しません" #, fuzzy -#~| msgid "Invalid format" #~ msgid "Raw format" #~ msgstr "不正なフォーマット" @@ -3959,43 +4325,41 @@ msgstr "" #~ msgstr "ファイル名" #, fuzzy -#~| msgid "No information available for this domain." #~ msgid "No {type} record found for MX {mx}" #~ msgstr "このドメインに関する情報がありません。" #, fuzzy -#~| msgid "No information available for this domain." #~ msgid "No A record found for MX %(domain)s" #~ msgstr "このドメインに関する情報がありません。" #, fuzzy -#~| msgid "No information available for this domain." #~ msgid "No AAAA record found for MX %(domain)s" #~ msgstr "このドメインに関する情報がありません。" #, fuzzy -#~| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." #~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota." #~ msgstr "" #~ "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適用されます。\n" #~ "値が0の場合は、クォータ制限はありません。" #, fuzzy -#~| msgid "No information available for this domain." #~ msgid "No DNS records found without MX for %s" #~ msgstr "このドメインに関する情報がありません。" #, fuzzy -#~| msgid "No information available for this domain." #~ msgid "No DNS records found without MX for %(domain)s" #~ msgstr "このドメインに関する情報がありません。" -#~ msgid "Default quota in MB applied to mailboxes. Leave empty to use the default value." +#~ msgid "" +#~ "Default quota in MB applied to mailboxes. Leave empty to use the default " +#~ "value." #~ msgstr "" #~ "デフォルトクォータ (MB) は、メールボックスに適用されます。\n" #~ "デフォルト値を使用する場合は空白のままにします。" -#~ msgid "You can't define a forward to a local destination. Please ask your administrator to create an alias instead." +#~ msgid "" +#~ "You can't define a forward to a local destination. Please ask your " +#~ "administrator to create an alias instead." #~ msgstr "" #~ "ローカルの宛先に転送先を定義することはできません。\n" #~ "代わりにエイリアスを作成するには、管理者に依頼してください。" diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/locale/nl_NL/LC_MESSAGES/django.po index 8c09e5ea3..a13610982 100644 --- a/modoboa/locale/nl_NL/LC_MESSAGES/django.po +++ b/modoboa/locale/nl_NL/LC_MESSAGES/django.po @@ -19,7 +19,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-10-03 09:44+0000\n" "Last-Translator: J Rosier \n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/language/nl_NL/)\n" @@ -29,484 +29,584 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 "Quota gedeeld tussen mailboxen. Kan uitgedrukt worden in kB, MB (standaard) of GB. Een waarde van 0 betekent geen 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 "" +"Quota gedeeld tussen mailboxen. Kan uitgedrukt worden in kB, MB (standaard) " +"of GB. Een waarde van 0 betekent geen quota." -#: 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 "Standaard quotum in MB per mailbox. 0 betekent geen quotum." -#: 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 "Geen geauthoriseerd MX record gevonden voor dit domein" -#: 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 "Kan niet groter zijn dan domeinquotum" -#: 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 "Toegang geweigerd." -#: 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 "Dit veld is verplicht" -#: 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 "Lijst van beheerde domeinen (alleen resellers en domeinbeheerders)." -#: 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 "Niet toegestaan voor deze rol." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Moet gelijk zijn aan de mailbox full_address" -#: 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 "Dit veld is verplicht." -#: 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 "Lokaal domein {} bestaat niet" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Lijst ontvangers." -#: 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 "Gebruiker '%s' bestaat al" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Je hebt geen toegang tot dit domein." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Je hebt geen toegang tot deze mailbox." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Hier is je nieuwe Modoboa wachtwoord:{}" -#: 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 "Gebruiker '%s' bestaat al" -#: 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 "Dit moet een positief geheel getal zijn." -#: 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 "Map niet gevonden." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Map niet gevonden." -#: 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 kan niet gevonden worden. Controleer of dit geïnstalleerd is." -#: 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 "Dit veld laat alleen geldige IP-adressen (of netwerken) toe" -#: 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 "Definieer ten minste 1 geautoriseerd netwerk / adres" -#: admin/api/v2/serializers.py:508 +#: admin/api/v2/serializers.py:511 msgid "A mailbox is required to create aliases." msgstr "Er is een mailbox vereist om een alias te creëren" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown tag {}" msgid "Unknown status" msgstr "Onbekende tag {}" -#: 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 "Je hebt geen toegang tot dit domein" -#: 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 "Je kunt je eigen domein niet verwijderen" -#: 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 "Domeinen" -#: 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 "MX Controles inschakelen" -#: 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 "Controleer of ieder domein een geldig MX-record heeft" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Geldige MX'en" -#: 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 "Een lijst van IP-adressen waaraan alle MX-records moeten voldoen. Er zal een waarschuwing getoond worden voor records die niet overeenkomen." +#: 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 "" +"Een lijst van IP-adressen waaraan alle MX-records moeten voldoen. Er zal een" +" waarschuwing getoond worden voor records die niet overeenkomen." -#: 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 "Nieuwe domeinen moeten geauthoriseerde MX-record(s) gebruiken." -#: 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 "Een domein niet aanmaken als het MX-record het adres niet gebruikt." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Activeer SPF controle" + +#: 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 "Activeer SPF controle" -#: 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 "Controleer of ieder domein een geldig SPF-record heeft" -#: 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 "Activeer DKIM-controle" -#: 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 "Controleer of ieder domein met geactiveerde DKIM een geldig DNS record heeft" +msgstr "" +"Controleer of ieder domein met geactiveerde DKIM een geldig DNS record heeft" -#: 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 "Activeer DMARC-controle" -#: 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 "Controleer of ieder domein een geldig DMARC-record heeft" -#: 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 "Activeer controle van automatische configuratie" -#: 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 "Controleer of ieder domein geldige records voor automatische configuratie heeft." +msgstr "" +"Controleer of ieder domein geldige records voor automatische configuratie " +"heeft." -#: 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 "DNSBL Controles inschakelen" -#: 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 "Controleer ieder domein tegen de bekende DNSBL providers" -#: 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 "Eigen 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 "Gebruik een eigen DNS server in plaats van lokale server configuratie" -#: 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 "DKIM Key opslagdirectory" -#: 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 "Absolute pad van de directory waar DKIM private keys worden opgeslagen. Let erop dat deze directory van de root-gebruiker is en niet leesbaar is voor andere gebruikers." +#: 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 "" +"Absolute pad van de directory waar DKIM private keys worden opgeslagen. Let " +"erop dat deze directory van de root-gebruiker is en niet leesbaar is voor " +"andere gebruikers." -#: 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 "Standaard DKIM key lengte" -#: 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 "Standaard lengte in bits voor nieuw gegenereerde DKIM keys." -#: 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 "Standaard domeinquotum" -#: 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 "Standaard quotum (in MB) om op nieuw aangemaakte domeinen zonder waarde toe te passen. Een waarde van 0 betekent geen quotum." +#: 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 "" +"Standaard quotum (in MB) om op nieuw aangemaakte domeinen zonder waarde toe " +"te passen. Een waarde van 0 betekent geen quotum." -#: 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 "Standaard verzendlimiet per domein" -#: 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." -msgstr "Aantal mails dat nieuwe domeinen per dag mogen verzenden. Laat leeg voor geen limiet." +#: 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 "" +"Aantal mails dat nieuwe domeinen per dag mogen verzenden. Laat leeg voor " +"geen limiet." -#: 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 "Mailboxen" -#: 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 "Pas mailboxen op het bestandssysteem aan" -#: 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 "Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of verwijderd worden in 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 "" +"Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of " +"verwijderd worden in 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 "Standaard mailbox quota" -#: 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." -msgstr "Standaard mailboxquotum (in MB), toegepast op nieuwe mailboxen zonder gespecificeerde waarde. De waarde '0' betekent geen quotum." +#: 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 "" +"Standaard mailboxquotum (in MB), toegepast op nieuwe mailboxen zonder " +"gespecificeerde waarde. De waarde '0' betekent geen quotum." -#: 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 "Standaard verzendlimiet voor mailboxen" -#: 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." -msgstr "Aantal mails dat nieuwe mailboxen per dag mogen verzenden. Laat leeg voor geen limiet." +#: 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 "" +"Aantal mails dat nieuwe mailboxen per dag mogen verzenden. Laat leeg voor " +"geen limiet." -#: 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 "Automatish een account verwijderen" -#: 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 "Als een mailbox wordt verwijderd, verwijder dan ook het bijbehorende account" +msgstr "" +"Als een mailbox wordt verwijderd, verwijder dan ook het bijbehorende account" -#: 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 "Domein en mailbox automatisch aanmaken" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Maak een domein en mailbox aan wanneer een account automatisch is aangemaakt." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Maak een domein en mailbox aan wanneer een account automatisch is " +"aangemaakt." -#: admin/app_settings.py: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 "Maak een alias aan als een mailbox hernoemd wordt." -#: 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 "Maak een alias aan voor het oude adres als een mailbox hernoemd wordt." +msgstr "" +"Maak een alias aan voor het oude adres als een mailbox hernoemd wordt." -#: 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." -msgstr "Standaard mailboxquota (in MB) die worden toegepast op nieuwe domeinen zonder gespecificeerde waarde. Een 0 betekent geen 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 "" +"Standaard mailboxquota (in MB) die worden toegepast op nieuwe domeinen " +"zonder gespecificeerde waarde. Een 0 betekent geen quota." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Beheer" -#: 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 "Domein" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Doorstuurdomein" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "Geopend" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "Gesloten" -#: 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 "Gebruikersnaam" -#: 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 "De naam van de gebruiker. Moet een geldig e-mailadres zijn voor gebruikers of administrators met een 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 "" +"De naam van de gebruiker. Moet een geldig e-mailadres zijn voor gebruikers " +"of administrators met een mailbox." -#: 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 "Kies" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Welk niveau van rechten deze gebruiker zal hebben" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Willekeurig wachtwoord" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." -msgstr "Genereer een willekeurig wachtwoord. Als je dit account bijwerkt en deze optie aanvinkt wordt er een nieuw wachtwoord gegenereerd." +#: 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 "" +"Genereer een willekeurig wachtwoord. Als je dit account bijwerkt en deze " +"optie aanvinkt wordt er een nieuw wachtwoord gegenereerd." -#: 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 "Wachtwoord" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Bevestiging" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Herhaal wachtwoord (voor verificatie)" -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Actief" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Alleen hoofdbeheerders hebben toegang tot deze modus" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "De wachtwoorden komen niet overeen." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Je kunt je eigen account niet uitschakelen" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "mail" -#: admin/forms/account.py:228 +#: admin/forms/account.py:236 msgid "Create an alias using the old address" msgstr "Maak een alias aan met het oude adres" -#: 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 "Quota" -#: 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 "Quotum voor deze mailbox; kan uitgedrukt worden in kB, MB (standaard) of GB. Geef een aangepaste waarde of gebruik de standaard voor dit domein. Laat dit leeg voor een ongelimiteerde waarde (niet toegestaan voor domeinadministrators)." +#: 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 "" +"Quotum voor deze mailbox; kan uitgedrukt worden in kB, MB (standaard) of GB." +" Geef een aangepaste waarde of gebruik de standaard voor dit domein. Laat " +"dit leeg voor een ongelimiteerde waarde (niet toegestaan voor " +"domeinadministrators)." -#: 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 "Verzendlimiet e-mails" -#: 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 "Aantal e-mails dat deze mailbox per dag mag verzenden" -#: 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(sen)" -#: 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(en) van deze mailbox. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen. Om een 'catch-all'-adres te maken voer je alleen het domein in (bijvoorbeeld: @domein.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(en) van deze mailbox. Geef slechts een adres per regel op, en toets " +"ENTER om een nieuwe regel te krijgen. Om een 'catch-all'-adres te maken voer" +" je alleen het domein in (bijvoorbeeld: @domein.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Afzenderadressen" -#: 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 "Extra afzenderadres(sen) voor dit account. De gebruiker wordt toegestaan om dit adres als verzender te gebruiken voor uitgaande berichten, ook al bestaat dit adres niet lokaal. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen." +#: admin/forms/account.py: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 "" +"Extra afzenderadres(sen) voor dit account. De gebruiker wordt toegestaan om " +"dit adres als verzender te gebruiken voor uitgaande berichten, ook al " +"bestaat dit adres niet lokaal. Geef slechts een adres per regel op, en toets" +" ENTER om een nieuwe regel te krijgen." -#: admin/forms/account.py: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 "Domein bestaat niet" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Domein bestaat niet lokaal" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domein(en)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domein(en) die gebruiker mag beheren" -#: 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 "Algemeen" -#: 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 "Profiel" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "E-mail" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Rechten" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Account aangepast" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nieuw account" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Account aangemaakt" @@ -519,69 +619,85 @@ msgid "Email address" msgstr "mailadres" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Het alias-adres. Om een 'catch-all'-adres te maken voer je alleen het domein in (bijvoorbeeld: @domein.nl)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Het alias-adres. Om een 'catch-all'-adres te maken voer je alleen het domein" +" in (bijvoorbeeld: @domein.nl)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Ontvangers" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Adressen waarnaar deze alias zal verwijzen. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen." +#: admin/forms/alias.py:34 +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Adressen waarnaar deze alias zal verwijzen. Geef slechts een adres per regel" +" op, en toets ENTER om een nieuwe regel te krijgen." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Geen ontvanger opgegeven" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Type" -#: 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(sen) van dit domein. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen." +#: 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(sen) van dit domein. Geef slechts een adres per regel op, en toets " +"ENTER om een nieuwe regel te krijgen." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Key selector" -#: admin/forms/domain.py:52 -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Standaard quotum toegepast op alle mailboxen. Kan uitgedrukt worden in kB, MB (standaard) of GB. Een waarde van 0 betekent geen quotum." +#: 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 "" +"Standaard quotum toegepast op alle mailboxen. Kan uitgedrukt worden in kB, " +"MB (standaard) of GB. Een waarde van 0 betekent geen quotum." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "domeinalias" -#: 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 "Een %s met deze naam bestaat al" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "DKIM Key opslagdirectory niet geconfigureerd" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Je kunt geen onbeperkt quotum definiëren." -#: 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 "domein" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Maak een domeinbeheerder aan" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Automatisch een beheerder aanmaken voor dit domein" -#: 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 @@ -590,51 +706,53 @@ msgstr "Automatisch een beheerder aanmaken voor dit domein" msgid "Name" msgstr "Naam" -#: 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 "De naam van de beheerder. De domeinnaam word automatisch toegevoegd." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Genereer een willekeurig wachtwoord voor de beheerder." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Met een mailbox" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Maak een postbus voor de beheerder." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Aliassen aanmaken" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Automatisch een standaard alias voor dit domein aanmaken" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Verkeerd format" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domein gewijzigd" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opties" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Nieuw domein" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domein aangemaakt" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Scheidingsteken" @@ -642,23 +760,23 @@ msgstr "Scheidingsteken" msgid "Recipient(s)" msgstr "Ontvanger(s)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Geef een of meer ontvangers op, gescheiden door een komma" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Lokale kopie behouden" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Stuur berichten door en sla een kopie op in je mailbox" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Bestand selecteren" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Doorgaan als er een fout optreedt" @@ -666,101 +784,104 @@ msgstr "Doorgaan als er een fout optreedt" msgid "Don't treat duplicated objects as error" msgstr "Zie duplicaten niet als fout" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Versleutel wachtwoorden" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Vink deze optie aan als wachtwoorden in je bestand niet versleuteld zijn" +msgstr "" +"Vink deze optie aan als wachtwoorden in je bestand niet versleuteld zijn" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Accounts importeren mislukt (%s): domein bestaat niet" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Mailbox {} bestaat al" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Account import is mislukt (%s): verkeerde quotumwaarde" -#: 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 "Identiteiten" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Doorsturen" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Er is een mailbox nodig" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Je mag geen domeinen importeren" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Je hebt geen rechten om domeinaliassen te importeren." -#: 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 "Geen DNS record gevonden voor %s " -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Geen %(type)s record voor %(name)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 "Geen werkende nameservers gevonden" -#: 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 "DNS timeout, het was niet mogelijk om %s op te zoeken" -#: admin/lib.py:212 +#: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" msgstr "DNS naam is te lang: %s" -#: admin/lib.py:239 +#: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "Ongeldig IP-adres format voor {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Object bestaat al: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objecten succesvol geïmporteerd" -#: 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 "CSV bestand is niet gecodeerd in UTF-8, aan het proberen om de codering te raden" +msgstr "" +"CSV bestand is niet gecodeerd in UTF-8, aan het proberen om de codering te " +"raden" -#: 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 "CSV bestand aan het lezen met %(encoding)scodering" -#: 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 "Kan CSV bestand niet decoderen met %(encoding)scodering" @@ -769,23 +890,23 @@ msgstr "Kan CSV bestand niet decoderen met %(encoding)scodering" 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 "MX {} getoond door DNSBL provider {}" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "Domein heeft geen MX record" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Domein {} heeft geen MX-record" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "Ongeldig MX record: {}" -#: 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-record voor domein {0} is ongeldig: {1}" @@ -794,148 +915,147 @@ msgstr "MX-record voor domein {0} is ongeldig: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX problemen voor domein {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL problemen voor domein {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domein niet gevonden." -#: admin/models/alias.py:37 -msgid "An alias with this name already exists." -msgstr "Een alias met deze naam bestaat al." - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "adres" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Het alias adres" -#: 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 "actief" -#: 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 "Selecteer om deze alias te activeren" -#: 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 "Beschrijving" -#: 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 "Verloop op" -#: 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 "Ongeldig adres" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Lokale ontvanger {}@{} niet gevonden" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 msgid "Invalid line: {}" msgstr "Ongeldige regel: {}" -#: 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 "naam" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "De domeinnaam" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "Aantal mails dat dit domein per dag mag verzenden" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Selecteer om dit domein te activeren" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Schakel DNS checks in." -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Schakel in om DNS controles voor dit domein uit te voeren. " -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Zet DKIM ondertekening aan" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Als je deze functie aanzet, zal er een DKIM key gegenereerd worden voor dit domein." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Als je deze functie aanzet, zal er een DKIM key gegenereerd worden voor dit " +"domein." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Sleutellengte" -#: 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 "Onjuiste regel" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 msgid "{}: no authorized MX record found for domain" msgstr "{}: geen goedgekeurd MX record gevonden voor dit domein" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 msgid "{}: invalid quota value for domain" msgstr "{}: ongeldige quotumwaarde voor dit domein" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 msgid "{}: invalid default mailbox quota value for domain" msgstr "{}: ongeldige standaard quotumwaarde voor dit domein" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 msgid "{}: default mailbox quota cannot be greater than domain quota" msgstr "{}: standaard mailboxquotum kan niet groter zijn dan domeinquotum" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "De aliasnaam" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "doel" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "De domeinalias verwijst naar" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Onbekend domein %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Mailbox adres (zonder het @domein.naam deel)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Mislukt om de mailbox locatie te verkijgen (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Een quotum is vereist" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" msgstr "{}: domeinquotum overschreden" @@ -943,8 +1063,9 @@ msgstr "{}: domeinquotum overschreden" #: 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 "Sluiten" @@ -991,9 +1112,9 @@ msgstr "Hoeveelheid" #: 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 "Domeinaliassen" @@ -1028,7 +1149,7 @@ msgstr "Aangemaakt" msgid "Last login" msgstr "Laatste login" -#: 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 "Tweede e-mailadres" @@ -1037,7 +1158,7 @@ msgstr "Tweede e-mailadres" msgid "Not defined" msgstr "Niet opgegeven" -#: 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 "Telefoonnummer" @@ -1115,7 +1236,7 @@ msgstr "Geopende alarmen voor" #: 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" @@ -1139,9 +1260,9 @@ msgstr "Aanmaakdatum" msgid "Last modification date" msgstr "Laatst gewijzigd" -#: 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 "Mailbox aliassen" @@ -1197,11 +1318,12 @@ msgid "Warning" msgstr "Waarschuwing" #: 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 "DKIM sleutels bestaan al voor dit domein. Wil je ze overschrijven?" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:397 +#: lib/form_utils.py:400 msgid "No" msgstr "Nee" @@ -1209,7 +1331,7 @@ msgstr "Nee" msgid "Generate new key" msgstr "Nieuwe sleutel genereren" -#: 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 "Ja" @@ -1222,7 +1344,7 @@ msgid "Administrators" msgstr "Beheerders" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Deze bevoegdheid verwijderen" @@ -1259,13 +1381,13 @@ msgstr "Queue ID" #: 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 "Van" #: 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 "Aan" @@ -1296,9 +1418,10 @@ msgstr "uitgeschakeld" msgid "Automatically forward emails to another address" msgstr "Mail automatisch doorsturen naar een ander adres" -#: 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 "Toepassen" @@ -1315,11 +1438,31 @@ msgid "Fullname/Recipient" msgstr "Volledige naam/Ontvanger" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

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

      You can use a different character as separator.

      " -msgstr "Lever een CSV bestand en zorg ervoor dat de regels voldoen aan een van de volgende formaten:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

      Het eerste element van elke regel is verplicht en moet gelijk zijn aan een van de vorige waarden.

      Je kan een eigen scheidingsteken gebruiken.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • domain; name; quota; default mailbox quota; enabled
      • " +"
      • domainalias; name; targeted domain; enabled
      • " +"
      • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

      " +msgstr "" +"Lever een CSV bestand en zorg ervoor dat de regels voldoen aan een van de " +"volgende formaten:
      • domain; name; quota; default mailbox quota; " +"enabled
      • domainalias; name; targeted domain; " +"enabled
      • relaydomain; name; target host; target port; " +"service; enabled; verify recipients

      Het eerste element " +"van elke regel is verplicht en moet gelijk zijn aan een van de vorige " +"waarden.

      Je kan een eigen scheidingsteken gebruiken.

      " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

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

      You can use a different character as separator.

      " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
        " +"
      • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
      • alias; address; enabled; " +"recipient; recipient; ...

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

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

      " msgstr "" "Lever een CSV bestand en zorg ervoor dat de regels voldoen aan een van de volgende formaten:\n" "
        \n" @@ -1357,7 +1500,9 @@ msgstr "Bijgewerkt" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Dit IP-adres komt niet overeen met een van de valide MX'en zoals gedefinieerd in de instellingen" +msgstr "" +"Dit IP-adres komt niet overeen met een van de valide MX'en zoals " +"gedefinieerd in de instellingen" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1365,106 +1510,124 @@ msgstr "Geen geldig MX-record voor dit domein gevonden." #: 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 heeft vastgesteld dat het domein %(domain)s op de volgende DNSBL lijsten staat:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa heeft vastgesteld dat het domein %(domain)s op de volgende DNSBL " +"lijsten staat:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "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 "De reputatie van dit domein wordt hierdoor aangetast er bestaat een kans dat e-mail van dit domein als spam wordt gezien. Je zou contact moeten opnemen met deze providers en hun vragen om deze IP adressen van de lijst te halen." +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 "" +"De reputatie van dit domein wordt hierdoor aangetast er bestaat een kans dat" +" e-mail van dit domein als spam wordt gezien. Je zou contact moeten opnemen " +"met deze providers en hun vragen om deze IP adressen van de lijst te halen." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa heeft vastgesteld dat het domein %(domain)s geen geldig MX-record heeft:" +msgstr "" +"Modoboa heeft vastgesteld dat het domein %(domain)s geen geldig MX-record " +"heeft:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Zoeken" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "geactiveerd_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "geactiveerd_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Toon domeinen" -#: 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 "Toon quota" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "Berichtenlogboek" -#: 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 "Importeren" -#: 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 "Exporteren" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Toon identiteiten" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Toon de identiteiten van dit domein" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "Toon domeinalarmen" -#: 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 "Bewerk {}" -#: 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 "Verwijder %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Geen MX record voor %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 "Onjuist IP adres voor %(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 "Geen MX record voor %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Een alias met deze naam bestaat al" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Aanmaken" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nieuwe alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias aangemaakt" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias aangepast" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias verwijderd" @@ -1474,36 +1637,36 @@ msgstr[1] "Aliassen verwijderd" msgid "MX records of {}" msgstr "MX-records van {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL overzicht voor {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domeinen verwijderd" msgstr[1] "Domeinen verwijderd" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Identiteiten exporteren" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exporteer domeinen" -#: 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 "Ongeldig verzoek" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Account verwijderd" msgstr[1] "Accounts verwijderd" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importeer domeinen" @@ -1511,87 +1674,74 @@ msgstr "Importeer domeinen" msgid "Import identities" msgstr "Importeer identiteiten" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Doorstuuradres aangepast" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "Invalid code" msgid "Invalid PIN code" msgstr "Ongeldige code" -#: 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 "Lokaal" - -#: 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 "Gebruikersprofiel" - -#: 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 "Ongeldige zinsbouw" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Ongeldig nummer van rondes" - -#: 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 "Oud wachtwoord" -#: 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 "Lokaal" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Gebruikersprofiel" + +#: 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 "Ongeldige zinsbouw" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Ongeldig nummer van rondes" + +#: 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 "Gebruik de volgende code om het Modoboa wachtwoord te herstellen: {}" -#: 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 "Gebruiker '%s' successvol aangemeld" -#: 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 "Wachtwoord schema matcht niet. Updating %s wachtwoord" @@ -1601,452 +1751,517 @@ msgstr "Wachtwoord schema matcht niet. Updating %s wachtwoord" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Hashparameter van het wachtwoord klopt niet. Wachtwoord %s wijzigen" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Authenticatie" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Authenticatie type" -#: 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 "De backend gebruikt voor authenticatie" -#: 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 "Standaard wachtwoord encryptiemethode" -#: 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 "Schema dat gebruikt wordt om mailboxwachtwoorden te versleutelen" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Rondes" -#: 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 "Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en sha512crypt). Moet tussen de 1000 en 999999999 liggen." +#: 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 "" +"Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en " +"sha512crypt). Moet tussen de 1000 en 999999999 liggen." -#: 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 "Update wachtwoordschema bij inloggen" -#: 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 "Update gebruikerswachtwoord bij het inloggen om het standaard wachtwoord schema te gebruiken. " +msgstr "" +"Update gebruikerswachtwoord bij het inloggen om het standaard wachtwoord " +"schema te gebruiken. " -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Standaard wachtwoord" -#: 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 "Standaard wachtwoord voor automatisch gecreëerde accounts." -#: 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 "Lengte van willekeurig wachtwoord" -#: 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 "Lengte van willekeurig gegenereerde wachtwoorden" -#: 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 "Service-url voor wachtwoorden updaten" -#: 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)." -msgstr "De URL van een externe pagina waar gebruikers hun wachtwoord kunnen bijwerken. Alleen van toepassing op niet-lokale gebruikers die automatisch worden aangemaakt na een succesvolle externe authenticatie (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 "" +"De URL van een externe pagina waar gebruikers hun wachtwoord kunnen " +"bijwerken. Alleen van toepassing op niet-lokale gebruikers die automatisch " +"worden aangemaakt na een succesvolle externe authenticatie (LDAP, SMTP)." -#: 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 "Melding wachtwoordherstel" -#: 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 "Een tijdelijke melding die wordt getoond op de wachtwoordresetpagina." -#: 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 "Wachtwoordherstel via SMS activeren" -#: 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 "Wachtwoordherstel via SMS activeren voor gebruikers die een telefoonnummer hebben ingevuld." +msgstr "" +"Wachtwoordherstel via SMS activeren voor gebruikers die een telefoonnummer " +"hebben ingevuld." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "SMS provider" -#: 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 "Kies een provider voor het sturen van een SMS voor wachtwoordherstel." -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "LDAP instellingen" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Serveradres" -#: 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 "Het IP-adres of de hostname van LDAP-server" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Serverpoort" -#: 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 "Het TCP poortnummer van de LDAP-server" -#: 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 "Secundaire server activeren (fallback)" -#: 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" -msgstr "Activeer secundaire LDAP server, te gebruiken als de primaire server wegvalt" +#: 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 "" +"Activeer secundaire LDAP server, te gebruiken als de primaire server wegvalt" -#: 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 "Adres van secundaire server" -#: 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 "Het IP adres of DNS naam van de secundaire LDAP server" -#: 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 "secundaire-serverpoort" -#: 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 "TCP poortnummer van de secundaire LDAP server" -#: 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 "Gebruik een beveiligde verbinding" -#: 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 "Gebruik een SSL/TLS verbinding met de LDAP-server" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "De LDAP-server is een Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Beheerdergroepen" -#: 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 "Leden van deze LDAP POSIX-groepen zullen aangemaakt worden als domeinbeheerders. Gebruik ';' karakters om groepen te scheiden." +#: 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 "" +"Leden van deze LDAP POSIX-groepen zullen aangemaakt worden als " +"domeinbeheerders. Gebruik ';' karakters om groepen te scheiden." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Groeptype" -#: 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 "De LDAP groeptype dat wordt gebruikt voor uw LDAP-directory." -#: 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 "Groepen zoekbasis" -#: 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 "De gedistingeerde naam van de zoekbasis om groepen te vinden" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Wachtwoord attribuut" -#: 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 "Het attribuut dat gebruikt wordt om wachtwoorden op te slaan" -#: 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 "LDAP authenticatie-instellingen" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Authenticatiemethode" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Zoeken en koppelen" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Directe koppeling" -#: 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 "Kies de te gebruiken authenticatiemethode" -#: 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 "Koppeling 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 "De gedistingeerde naam om te gebruiken bij het koppelen met de LDAP-server. Laat leeg voor een anonieme koppeling." +#: 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 "" +"De gedistingeerde naam om te gebruiken bij het koppelen met de LDAP-server. " +"Laat leeg voor een anonieme koppeling." -#: 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 "Koppel wachtwoord" -#: 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 "Het wachtwoord om te gebruiken tijdens het koppelen met de LDAP-server (met 'koppel DN')" +msgstr "" +"Het wachtwoord om te gebruiken tijdens het koppelen met de LDAP-server (met " +"'koppel 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 "Gebruikers zoekbasis" -#: 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 "De gedistingeerde naam van de zoekbasis om gebruikers te vinden" -#: 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 "Zoekfilter" -#: 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 "Een optionele filter string (zoals '(objectClass=person)'). Om geldig te kunnen zijn, moet het tussen haakjes staan." +#: 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 "" +"Een optionele filter string (zoals '(objectClass=person)'). Om geldig te " +"kunnen zijn, moet het tussen haakjes staan." -#: 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 "Gebruiker DN template" -#: 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 "Het template dat gebruikt wordt om een gebruiker zijn/haar DN op te bouwen. Het moet een placeholder bevatten (bijvoorbeeld. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Het template dat gebruikt wordt om een gebruiker zijn/haar DN op te bouwen. " +"Het moet een placeholder bevatten (bijvoorbeeld. %(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 "LDAP synchronisatie-instellingen" -#: 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 "Activeer export naar LDAP" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" -msgstr "Activeer automatische synchronisatie tussen lokale database en LDAP directory" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" +msgstr "" +"Activeer automatische synchronisatie tussen lokale database en LDAP " +"directory" -#: 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 "Verwijder extern LDAP account als het lokale account wordt verwijderd" -#: 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." -msgstr "Verwijder extern LDAP account als het lokale account wordt verwijderd. Zo niet, dan wordt het gedeactiveerd." +#: 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 "" +"Verwijder extern LDAP account als het lokale account wordt verwijderd. Zo " +"niet, dan wordt het gedeactiveerd." -#: 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 "Account DN sjabloon" -#: 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)" -msgstr "Het sjabloon voor het opbouwen van het DN (distinguishedname). Het moet een tijdelijke aanduiding (placeholder) bevatten (bijvoorbeeld %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Het sjabloon voor het opbouwen van het DN (distinguishedname). Het moet een " +"tijdelijke aanduiding (placeholder) bevatten (bijvoorbeeld %(user)s)" -#: 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 "Activeer import van LDAP" -#: 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 "Activeer accountsynchronisatie van LDAP directory naar lokale database" +msgstr "" +"Activeer accountsynchronisatie van LDAP directory naar lokale database" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Gebruikersnaamattribuut" -#: 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 "De naam van het LDAP-attribuut waar de gebruikersnaam staat." -#: 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 "Activeer Dovecot LDAP synchronisatie" -#: 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 "LDAP authenticatie-instellingen worden toegepast op Dovecot-configuratie." +msgstr "" +"LDAP authenticatie-instellingen worden toegepast op Dovecot-configuratie." -#: 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 "Dovecot LDAP configuratiebestand" -#: 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 "Locatie van het configuratiebestand met Dovecot LDAP-instellingen." -#: 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 "Bedieningspaneel" -#: 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 "Aangepaste RSS feed." -#: 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 "Toon aangepaste RSS feed aan resellers en domein beheerders. " -#: 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 "Verberg opties widget" -#: 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 "Verberg features widget voor resellers en domein administrators. " -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Notificaties" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Afzenderadres" -#: 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 "E-mailadres dat gebruikt wordt om notificaties te versturen" -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Publieke API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Communicatie toestaan" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Communicatie met publieke Modoboa API toestaan" -#: 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 "Controleer of er een nieuwe versie beschikbaar is" -#: 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 "Controleert automatisch of een nieuwere versie beschikbaar is" -#: 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 "Stuur een e-mail als er nieuwe versies worden gevonden" -#: 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 "Stuur een e-mail naar administrators over nieuwe versies" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Ontvanger" -#: 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 "Ontvanger van notificatiemails over nieuwe versies" -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Verstuur statistieken" -#: 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 "Verstuur statistieken naar de publieke Modoboa API (statistieken en gebruikte extenties)" +msgstr "" +"Verstuur statistieken naar de publieke Modoboa API (statistieken en " +"gebruikte extenties)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Diversen" -#: 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 "Drempelwaarde inactieve gebruikers" -#: 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 "Drempelwaarde inactieve gebruikers" -#: 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 "Een gebruiker die langer dan dit aantal dagen niet ingelogd is, wordt op inactief gezet." +#: 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 "" +"Een gebruiker die langer dan dit aantal dagen niet ingelogd is, wordt op " +"inactief gezet." -#: 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 "Top notificaties controle interval" -#: 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 "Interval tussen twee notificatiecontroles (in seconden)" -#: 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 "Maximum bewaartijd van logs" -#: 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 "De maximum bewaartijd in dagen van een log record" -#: 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 "Items per pagina" -#: 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 "Aantal getoonde items per pagina" -#: 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 "Standaard top omleiding" -#: 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 "De standaard omleiding die gebruikt wordt als er geen andere applicatie is opgegeven" +msgstr "" +"De standaard omleiding die gebruikt wordt als er geen andere applicatie is " +"opgegeven" -#: 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 "USE_TZ staat op 'False', dit kan voor problemen zorgen tijdens de transitie tussen zomer- en wintertijd (bijv. dezelfde locale tijd komt twee keer voor door de tijdsverandering)" +#: 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 "" +"USE_TZ staat op 'False', dit kan voor problemen zorgen tijdens de transitie " +"tussen zomer- en wintertijd (bijv. dezelfde locale tijd komt twee keer voor " +"door de tijdsverandering)" -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Zet 'USE_TZ = TRUE' in settings.py" @@ -2078,31 +2293,31 @@ msgstr "Dummy" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Oud wachtwoord" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nieuw wachtwoord" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Oud wachtwoord komt niet overeen" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Wachtwoorden komen niet overeen" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Activeer API-toegang" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Verificatiecode" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Ongeldige code" @@ -2119,20 +2334,20 @@ msgstr "veranderd" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s door gebruiker %(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 door " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "verwijderd" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "gebruiker {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "beheeropdracht" @@ -2140,137 +2355,139 @@ msgstr "beheeropdracht" msgid "You can't delete your own account" msgstr "U kunt uw eigen account niet verwijderen" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Er zijn een of meer updates beschikbaar" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] update(s) beschikbaar" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Sta mailboxtoegang toe" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Sta deze beheerder toe om mailboxen van gebruikers te benaderen" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "wachtwoord" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "taal" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Voorkeurstaal om pagina's weer te geven" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Een alternatief e-mailadres, dit kan gebruikt worden voor herstel mogelijkheden." +msgstr "" +"Een alternatief e-mailadres, dit kan gebruikt worden voor herstel " +"mogelijkheden." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Mislukt om wachtwoord aan te passen: LDAP-module niet geinstalleerd" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "account" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Onbekend" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "U kunt geen accounts importeren met hogere rechten dan die van uzelf" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "De gebruiker '%s' moet een geldig e-mailadres hebben" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "gebruikersnaam en e-mail -velden moeten niet verschillen van '%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] "Wachtwoord moet minstens {} nummer bevatten." msgstr[1] "Wachtwoord moet minstens {} nummers bevatten. " -#: 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] "Wachtwoord moet minstens {} kleine letter bevatten. " msgstr[1] "Wachtwoord moet minstens {} kleine letters bevatten." -#: 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] "Wachtwoord moet minstens {} hoofdletter bevatten" msgstr[1] "Wachtwoord moet minstens {} hoofdletters bevatten" -#: 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] "Wachtwoord moet minstens {} speciaal teken bevatten." msgstr[1] "Wachtwoord moet minstens {} speciale tekens bevatten." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." msgstr "Uw wachtwoord moet verschillende tekens bevatten." -#: 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 "API eindpunt" -#: 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 "OVH Europa" -#: 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 "OVH Verenigde Staten" -#: 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 "OVH Noord-Amerika" -#: 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 "So you Start Europa" -#: 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 "So you Start Noord-Amerika" -#: 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 "Kimsufi Europa" -#: 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 "Kimsufi Noord-Amerika" -#: 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 "Applicatiesleutel" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Applicatiegeheim" -#: 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 "Consumentensleutel" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2297,8 +2514,12 @@ msgid "Latest news" msgstr "Laatste nieuws" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Bezoek de officiële weblog voor meer informatie." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Bezoek de officiële " +"weblog voor meer informatie." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2310,8 +2531,12 @@ msgstr "Beheer uw toegang tot de Modoboa API" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "API documentatie is beschikbaar hier." +msgid "" +"A documentation of the API is available here." +msgstr "" +"API documentatie is beschikbaar hier." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2322,7 +2547,7 @@ msgstr "API toegangstoken" msgid "Hello %(user)s." msgstr "Hallo %(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 "Informatie" @@ -2336,7 +2561,9 @@ msgstr "Eén of meer updates zijn beschikbaar!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Bekijk de volgende lijst om de componenten te vinden die bijgewerkt kunnen worden" +msgstr "" +"Bekijk de volgende lijst om de componenten te vinden die bijgewerkt kunnen " +"worden" #: core/templates/core/information.html:10 msgid "Applications" @@ -2354,7 +2581,7 @@ msgstr "Laatste versie" msgid "Active users" msgstr "Actieve gebruikers" -#: 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 "Logs" @@ -2384,7 +2611,7 @@ msgstr[1] "" "\n" "De volgende updates zijn beschikbaar:\n" -#: 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 "Parameters" @@ -2401,12 +2628,12 @@ msgstr "Opslaan" msgid "Modoboa settings" msgstr "Modoboa instellingen" -#: 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 "Instellingen" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Voorkeuren" @@ -2426,7 +2653,7 @@ msgstr "Persoonlijke informatie aanpassen" msgid "Click here to update your password" msgstr "Klik hier om je wachtwoord te wijzigen" -#: 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 #, fuzzy #| msgid "Security options" msgid "Security" @@ -2439,7 +2666,9 @@ msgid "Two-Factor authentication" msgstr "De backend gebruikt voor authenticatie" #: 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 @@ -2453,18 +2682,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" @@ -2472,12 +2710,18 @@ msgstr "" msgid "Disable 2FA" msgstr "Uitgeschakeld" +#: 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 @@ -2496,69 +2740,77 @@ msgstr "Geen record gevonden" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Versleutel wachtwoorden" + #: 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 "Uitloggen" -#: 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 "Het hoofdonderdeel van Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parameters opgeslagen" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het alstublieft opnieuw." +msgstr "" +"Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het alstublieft " +"opnieuw." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Gebruiker '{}' is uitgelogd." -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profiel aangepast" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Voorkeuren opgeslagen" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Toegang bijgewerkt" -#: 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 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "DMARC gereedschappen" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Toon DMARC rapportage voor {}" -#: 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 "" @@ -2594,11 +2846,11 @@ msgstr "Tijdelijke fout" msgid "Permanent error" msgstr "Permanente fout" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Beleid" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Toegestane fout" @@ -2674,95 +2926,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Onbekende bronnen / bedreigingen" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "Verkeerde syntax IPv4-mechanisme" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "Verkeerde format IPv4 adres" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "Verkeerde syntax IPv6-mechanisme" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "Verkeerde format IPv6 adres" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "Verkeerde syntax voor {} mechanisme" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "Ongeldig masker gevonden {}" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "Geen SPF record" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "Onbekend mechanisme {}" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "Onbekende modifier {}" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "Dubble modifier {} gevonden" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "Geen mechanisme gevonden" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "Ongeldig DKIM record" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "Ongeldige tag {}" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "Geen sleutel gevonden in record" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "Ongeldige waarde {} voor tag {}" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "Ongeldige waarde {} voor tag {}" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr "Geen geheel getal" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr " minder dan {}" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr " groter dan {}" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "Geen geldig DMARC record" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "Onbekende tag {}" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "Mist benodigde p tag" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "Publieke sleutel mismatch" @@ -2791,8 +3043,12 @@ msgid "A DNS record has been found but its syntax is not valid:" msgstr "Er is een DNS-record gevonden maar de syntax is ongeldig:" #: 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." -msgstr "Hier is een voorbeeld van een DNS-configuratie (bind format). Vervang de waarden tussen [ ] door geschikte waarden." +msgid "" +"Here is an example of DNS configuration (bind format). Replace value between" +" [ ] by the appropriate ones." +msgstr "" +"Hier is een voorbeeld van een DNS-configuratie (bind format). Vervang de " +"waarden tussen [ ] door geschikte waarden." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" @@ -2807,7 +3063,7 @@ msgstr "Automatische configuratie" msgid "hostname of your automx server" msgstr "hostnaam van je automx server" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "{} record van {}" @@ -2815,151 +3071,159 @@ msgstr "{} record van {}" msgid "Auto configuration records for {}" msgstr "Auto-configuratierecords voor {}" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "DNS-configuratie voor {}" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 #, fuzzy #| msgid "Access updated" msgid "Access denied" msgstr "Toegang bijgewerkt" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "IMAP migratie" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "IMAP migratie" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "OfflineIMAP instellingen" -#: 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 "Gelijktijdige synchronisatietaken" -#: 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 "Het maximale aantal gelijktijdige synchronisatietaken" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "OfflineIMAP instellingen" -#: 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 "OfflineIMAP instellingen" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "OfflineIMAP instellingen" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "IMAP migratie" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Verbinding met de IMAP server mislukt: %s" -#: 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 "IMAP migratie" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Aanmaken LDAP account mislukt: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Wijzigen LDAP account mislukt: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Verwijderen LDAP account mislukt: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Uitschakelen LDAP account mislukt: {}" -#: 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 "Communicatie met publieke Modoboa API toestaan" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Verbinding naar database %s niet geconfigureerd" -#: 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 "Kan de encoding van de string niet bepalen. " -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Toegang geweigerd: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Toegang geweigerd" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Vul een geldige domeinnaam in" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Vul een geldig e-mailadres in." @@ -2969,163 +3233,191 @@ msgstr "Vul een geldig e-mailadres in." msgid "Submit" msgstr "Versturen" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Aanpassen van wachtwoord mislukt: {}" -#: 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 "Onderwerp" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 #, fuzzy #| msgid "Default limits" msgid "Default per-admin limits" msgstr "Standaard limieten" -#: 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 "Domein administrators" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: limits/app_settings.py:29 limits/app_settings.py:163 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Maximum aantal toegestane domein administrators voor een nieuwe administrator" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" +msgstr "" +"Maximum aantal toegestane domein administrators voor een nieuwe " +"administrator" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: limits/app_settings.py:39 limits/app_settings.py:175 #, fuzzy #| msgid "Maximum number of allowed domains for a new administrator" -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximum aantal toegestane domeinen voor een nieuwe administrator" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: limits/app_settings.py:48 limits/app_settings.py:186 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" msgstr "Maximum aantal domein aliassen voor een nieuwe administrator" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: limits/app_settings.py:58 limits/app_settings.py:198 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximum aantal toegestane mailboxen voor een nieuwe administrator" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: limits/app_settings.py:67 limits/app_settings.py:210 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximum aantal aliassen voor een nieuwe administrator" -#: 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 #, fuzzy #| msgid "Default limits" msgid "Default per-domain limits" msgstr "Standaard per-domein limieten" -#: 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 +#: limits/app_settings.py:94 limits/app_settings.py:248 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Maximum aantal toegestane domein administrators voor een nieuwe administrator" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Maximum aantal toegestane domein administrators voor een nieuwe " +"administrator" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: limits/app_settings.py:104 limits/app_settings.py:260 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximum aantal domein aliassen voor een nieuwe administrator" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: limits/app_settings.py:114 limits/app_settings.py:272 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Maximum aantal toegestane mailboxen voor een nieuwe administrator" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: limits/app_settings.py:123 limits/app_settings.py:283 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" msgstr "Maximum aantal aliassen voor een nieuwe administrator" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limieten" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Maximum aantal domeinen die deze gebruiker aan kan maken" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Maximum aantal domein-aliassen die deze gebruiker kan aanmaken" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Maximum aantal mailboxen die deze gebruiker kan aanmaken" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Maximum mailbox aliassen die deze gebruiker kan aanmken" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" msgstr "Maximum aantal domein administrators die deze gebruiker aan kan maken" -#: 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 #, fuzzy #| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." msgstr "Maximum aantal domein-aliassen die deze gebruiker kan aanmaken" -#: limits/constants.py:46 +#: limits/constants.py:85 #, fuzzy #| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." msgstr "Maximum aantal mailboxen die deze gebruiker kan aanmaken" -#: limits/constants.py:50 +#: limits/constants.py:93 #, fuzzy #| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Maximum mailbox aliassen die deze gebruiker kan aanmken" -#: limits/constants.py:55 +#: limits/constants.py:102 #, fuzzy #| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." msgstr "Maximum aantal domein administrators die deze gebruiker aan kan maken" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Ongeldige limiet" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Capaciteiten" @@ -3138,11 +3430,11 @@ msgstr "%s: limiet bereikt" msgid "Not enough resources" msgstr "Niet genoeg capaciteit" -#: 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 "U mag geen ongelimiteerde waardes opgeven" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "ongelimiteerd" @@ -3151,99 +3443,99 @@ msgstr "ongelimiteerd" msgid "Resources usage" msgstr "Capaciteit gebruik" -#: 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 "Locatie van logbestand" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Locatie van logbestand gebruik om statistieken te maken" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Map om RRD bestanden op te slaan" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Locatie van map waar RRD bestanden staan" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" msgid "Show greylisted messages" msgstr "geweigerde berichten" -#: 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 "Statistieken" -#: 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 "Gemiddeld verkeer per minuut (berichten)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "verstuurde berichten" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "ontvangen berichten" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "geweigerde berichten" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "geweigerde berichten" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "verstuurde berichten" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "verstuurde berichten" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "geweigerde berichten" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Gemiddelde bandbreette per minuut (bytes)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "ontvangen grootte" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "verstuurde grootte" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Mailverkeer" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3271,183 +3563,195 @@ msgstr "Toepassen" msgid "No statistics available" msgstr "Geen statistieken beschikbaar" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Dag" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Week" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Maand" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Jaar" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Aangepast" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Onbekende grafische set" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Onbekende grafische set" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Ongeldige aangepaste periode" -#: 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 "Persoonlijke account informatie" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Map niet gevonden." -#: 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 "Geen document beschikbaar voor deze gebruiker" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "PDF gegevens" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." msgstr "Genereer een document enkel bij het aanmaken van een account" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Document opslag" -#: 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 "Map voor het opslaan van de documenten" -#: 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 "Pad naar de map waar de PDF documenten worden opgeslagen" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Beveiligings-opties" -#: 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 "Documenten verwijderen na eerste download" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" -msgstr "Verwijder een document automatisch nadat het eenmalig is gedownload van paneel" +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +msgid "" +"Automatically delete a document just after its first download from this " +"interface" +msgstr "" +"Verwijder een document automatisch nadat het eenmalig is gedownload van " +"paneel" -#: 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 "Genereer een document enkel bij het aanmaken van een account" -#: 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." -msgstr "Genereer een document enkel wanneer een account is nieuw aangemaakt. Indien 'nee' is geselecteerd zal bij iedere wachtwoord wijziging een nieuw document worden gemaakt. " +#: 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 "" +"Genereer een document enkel wanneer een account is nieuw aangemaakt. Indien " +"'nee' is geselecteerd zal bij iedere wachtwoord wijziging een nieuw document" +" worden gemaakt. " -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Personaliseringsopties" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Titel" -#: 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 "Titel van het document" -#: 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 "Webpaneel URL" -#: 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 "URL van het Modoboa webpaneel" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Aangepast bericht" -#: 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 "Een aangepast bericht dat aan het einde van de documenten komt te staan" +msgstr "" +"Een aangepast bericht dat aan het einde van de documenten komt te staan" -#: 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 "SMTP serveradres" -#: 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 "SMTP server poort" -#: 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 "SMTP verbinding beveiliging" -#: 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 "IMAP serveradres" -#: 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 "IMAP server poort" -#: 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 "IMAP verbinding beveiliging" @@ -3455,17 +3759,17 @@ msgstr "IMAP verbinding beveiliging" msgid "PDF credentials" msgstr "PDF gegevens" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "PDF gegevens" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Aangeboden door Modoboa - Mail hosting made simple" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3478,11 +3782,11 @@ msgstr "" "heeft voor het gebruiken van Modoboa. Onthoud deze gegevens\n" "en verwijder dit document zo snel mogelijk.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Webpaneel:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3491,31 +3795,38 @@ msgstr "" "\n" "Hier kunt u uw e-mails online bekijken, filters aanmaken, of contactpersonen beheren.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Wijzig uw wachtwoord aub!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "PC/Tablet/Smartphone configuratie:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "Gebruik deze instellingen voor uw computer, tablet of telefoon." -#: 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 "Vraag de gebruikers gegevens op als een PDF document" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "PDF gegevens" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "Het aanmaken van de map voor de PDF documenten is mislukt (%s)" @@ -3524,33 +3835,193 @@ msgstr "Het aanmaken van de map voor de PDF documenten is mislukt (%s)" msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "Het aanmaken van de map voor de PDF documenten is mislukt (%s)" -#: 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: limiet bereikt" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: limiet bereikt" + +#: 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 "Deze datum is over" + +#: 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 "Moet na de startdatum liggen" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Automatische antwoorden" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Activeer uw automatische antwoord vanaf deze datum. Formaat: JJJJ-MM-DD " +"UU:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Tot" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Activeer uw automatische antwoord tot deze datum. Formaat: JJJJ-MM-DD " +"UU:mm:ss" + +#: 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 "Automatisch antwoorden timeout" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Minimale tijd in seconden tussen twee auto-antwoorden naar dezelfde afzender" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Standaard onderwerp" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Ik ben nu niet aanwezig" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" +"Standaard onderwerp gebruikt wanneer een automatisch antwoord automatisch is" +" aangemaakt" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Standaard inhoud" + +#: 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 "" +"Momenteel ben ik niet aanwezig. Ik zal antwoorden zodra ik terug kom.\n" +"\n" +"Met vriendelijke groet,\n" +"%(name)s\n" + +#: 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 "" +"Standaard inhoud gebruikt wanneer een automatisch antwoord bericht " +"automatisch is aangemaakt. De '%(name)s' macro zal vervangen worden door de " +"naam van de gebruiker." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Auto-antwoord bericht" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Automatisch antwoord" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "onderwerp" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Het onderwerp dat zal verschijnen in verstuurde mails" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "inhoud" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "De inhoud die zal verschijnen in versuurde mails" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Activeer/Deactiveer uw auto-antwoord" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "" +"Maak een bericht dat automatisch verstuurd word wanneer u niet aanwezig bent" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Auto antwoord bericht successvol aangepast." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 #, fuzzy #| msgid "Relay domains" msgid "Transport settings" msgstr "Doorstuur domeinen" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 #, fuzzy #| msgid "target host" msgid "target host address" msgstr "doel host" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 #, fuzzy #| msgid "target host" msgid "target host port" msgstr "doel host" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "controleer ontvangers" @@ -3620,7 +4091,9 @@ msgstr "Wachtwoord vergeten?" #: 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 "Je wachtwoord is ingesteld. Je kunt nu inloggen" #: templates/registration/password_reset_confirm.html:7 @@ -3628,8 +4101,12 @@ msgid "Change password" msgstr "Wachtwoord wijzigen" #: 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 "Deze wachtwoord herstel link is ongeldig, misschien is hij al gebruikt. Vraag een nieuwe wachtwoord herstel link aan." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Deze wachtwoord herstel link is ongeldig, misschien is hij al gebruikt. " +"Vraag een nieuwe wachtwoord herstel link aan." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3640,7 +4117,11 @@ msgid "Resend code" msgstr "Stuur de code opnieuw" #: 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 "" "

        We hebben je instructies gemailt om je wachtwoord in te stellen. Als het door jou ingevulde email adres bestaat, zal je hem binnenkort ontvangen

        \n" "

        Als je geen email ontvangt, controleer dan of je het juiste email adres hebt ingevuld, en controleer je spam folder.

        " @@ -3648,13 +4129,21 @@ 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:" -msgstr "Klik op de volgende link om een wachtwoord in te stellen voor het Modoboa account %(username)s " +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Klik op de volgende link om een wachtwoord in te stellen voor het Modoboa " +"account %(username)s " #: 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 "Als u niet op bovenstaande link kunt klikken kopieer dan de URL in uw browser," +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Als u niet op bovenstaande link kunt klikken kopieer dan de URL in uw " +"browser," #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3675,22 +4164,20 @@ msgstr "Modoboa wachtwoord resetten." msgid "Invalid value" msgstr "Verkeerde regel" -#: 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 "" -#, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: limiet bereikt" +#~ msgid "An alias with this name already exists." +#~ msgstr "Een alias met deze naam bestaat al." #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Een aantal eenvoudige programmas DMARC" @@ -3699,7 +4186,6 @@ msgstr "" #~ msgstr "Genereer PDF document met de gegevens voor de gebruiker" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "IMAP migratie" @@ -3725,12 +4211,10 @@ msgstr "" #~ msgstr "De servicenaam" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote address (hostname or IP) of this domain" #~ msgstr "Externe bestemming van dit domein" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote port of this domain" #~ msgstr "Externe bestemming van dit domein" @@ -3744,15 +4228,10 @@ msgstr "" #~ msgstr "Scan" #, fuzzy -#~| msgid "The domain name" #~ msgid "The relay domain name" #~ msgstr "De domeinnaam" #, fuzzy -#~| msgid "" -#~| "\n" -#~| "
      • relaydomain; name; target host; service; enabled; verify recipients
      • \n" -#~| "
      • relaydomainalias; name; target; enabled
      • \n" #~ msgid "" #~ "\n" #~ "
      • relaydomain; name; target host; service; enabled; verify recipients
      • \n" diff --git a/modoboa/locale/no/LC_MESSAGES/django.po b/modoboa/locale/no/LC_MESSAGES/django.po index b0e433b2d..571c1830f 100644 --- a/modoboa/locale/no/LC_MESSAGES/django.po +++ b/modoboa/locale/no/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: Nils Otto Lillegrein , 2020\n" "Language-Team: Norwegian (https://www.transifex.com/tonio/teams/13749/no/)\n" @@ -21,480 +21,533 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 +#: 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 +560,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 +639,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 +693,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 +717,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 +725,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 +820,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 +845,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 "" @@ -979,9 +1039,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 +1076,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 +1085,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 +1163,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 +1187,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 "" @@ -1189,7 +1249,7 @@ 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 +1257,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 +1270,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 +1307,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 +1344,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 +1364,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:
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
        • alias; address; enabled; recipient; recipient; ...

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1344,11 +1418,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 +1439,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] "" @@ -1453,36 +1537,36 @@ msgstr[1] "" 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1490,83 +1574,69 @@ 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 "" @@ -1576,450 +1646,477 @@ 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 "" @@ -2051,31 +2148,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 "" @@ -2092,20 +2189,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 "" @@ -2113,139 +2210,139 @@ 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 "Kunne ikke oppdatere LDAP-konto: {}" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 "" @@ -2270,7 +2367,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 @@ -2283,7 +2382,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 @@ -2295,7 +2396,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 "" @@ -2327,7 +2428,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 "" @@ -2353,7 +2454,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: 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 "" @@ -2370,12 +2471,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 "" @@ -2395,7 +2496,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 "" @@ -2404,7 +2505,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 @@ -2416,28 +2519,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 @@ -2452,67 +2570,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 "" @@ -2548,11 +2670,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 "" @@ -2624,95 +2746,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 "" @@ -2741,7 +2863,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 @@ -2757,7 +2881,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2765,136 +2889,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 "Kunne ikke opprette LDAP-konto: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Kunne ikke oppdatere LDAP-konto: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Kunne ikke slette LDAP-konto: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Kunne ikke deaktivere LDAP-konto: {}" -#: 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 "" @@ -2904,135 +3036,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 "Kunne ikke oppdatere LDAP-konto: {}" -#: 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 "" @@ -3045,11 +3197,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 "" @@ -3058,91 +3210,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 "" @@ -3170,175 +3322,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 "" @@ -3346,15 +3504,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" @@ -3363,38 +3521,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 "" @@ -3403,27 +3567,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 "" @@ -3491,7 +3784,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 @@ -3499,7 +3794,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 @@ -3511,18 +3808,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 @@ -3542,14 +3847,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/pl_PL/LC_MESSAGES/django.po b/modoboa/locale/pl_PL/LC_MESSAGES/django.po index 8a41edaaf..352281160 100644 --- a/modoboa/locale/pl_PL/LC_MESSAGES/django.po +++ b/modoboa/locale/pl_PL/LC_MESSAGES/django.po @@ -15,7 +15,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: 2021-07-09 07:40+0000\n" "Last-Translator: KrystianPlichta \n" "Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/language/pl_PL/)\n" @@ -25,488 +25,589 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: admin/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 "Miejsce dzielone między skrzynki. Może być wyrażone w KB, MB (domyślnie) lub GB. Wartość 0 oznacza brak limitu." +#: 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 "" +"Miejsce dzielone między skrzynki. Może być wyrażone w KB, MB (domyślnie) lub" +" GB. Wartość 0 oznacza brak limitu." -#: 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 "Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak ograniczenia." +msgstr "" +"Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak " +"ograniczenia." -#: 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 "Nie znaleziono autoryzowanych dla tej domeny rekordów MX " -#: 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 "Nie może być wyższa niż limit domeny" -#: 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 "Odmowa dostępu" -#: 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 "To pole jest obowiązkowe" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Lista administratorów domen (tylko resellerów i administratorów domen)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Lista administratorów domen (tylko resellerów i administratorów domen)." -#: 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 "Niedozwolone dla tej roli." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Musi być równe z full_address skrzynki." -#: 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 "To pole jest wymagane" -#: 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 "Lokalna domena {} nie istnieje" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Lista odbiorców" -#: 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żytkownik '%s' już istnieje" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Nie masz dostępu do tej domeny." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Nie masz dostępu do tej skrzynki." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Twoje nowe hasło do Modoboa to: {}" -#: 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żytkownik '%s' już istnieje" -#: 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 "Musi być liczbą całkowitą dodatnią" -#: 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 "Katalog nie znaleziony." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Katalog nie znaleziony." -#: 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 "Brak openssl , upewnij się że jest zainstalowany." -#: 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 "Zdefiniuj przynajmniej jedną autoryzowaną sieć / adres" -#: 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 "Skrzynka jest obowiązkowa" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Nieznany" -#: 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 "Nie masz uprawnień dla tej domeny" -#: 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 "Nie możesz usunąć swoje własnej domeny" -#: 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 "Domeny" -#: 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 "Włącz sprawdzanie rekordów 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 "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Poprawne MXy" -#: 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 "Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie wysłany w przypadku błędu." +#: admin/app_settings.py: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 "" +"Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie" +" wysłany w przypadku błędu." -#: admin/app_settings.py: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 "Nowe domeny muszą używać autoryzowanych MX'ów" -#: 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 "Zapobiegaj tworzeniu nowych domen jeśli ich MXy nie są jednym ze zdefiniowanych adresów." +#: 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 "" +"Zapobiegaj tworzeniu nowych domen jeśli ich MXy nie są jednym ze " +"zdefiniowanych adresów." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Włącz sprawdzanie rekordów SPF" + +#: 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 "Włącz sprawdzanie rekordów SPF" -#: 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 "Sprawdź czy każda domena posiada aktualny SPF rekord" -#: 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 "Włącz sprawdzanie rekordów DKIM" -#: 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 "Sprawdź czy każda domena posiada aktualny DKIM rekord w strefie DNS" -#: 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 "Włącz sprawdzanie DMARC" -#: 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 "Sprawdź czy każda domena posiada aktualny DMARC rekord" -#: 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 "Włącz sprawdzanie poprawności autokonfiguracji" -#: 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 "Sprawdza, czy każda domena ma prawidłowe rekordy pozwalające na autokonfigurację" +msgstr "" +"Sprawdza, czy każda domena ma prawidłowe rekordy pozwalające na " +"autokonfigurację" -#: 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 "Włącz sprawdzanie 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 "Sprawdź każdą domenę po kątem głównych providerów DNSBL" -#: 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 "Własny serwer DNS" -#: 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 "Użyj własnego serwera DNS zamiast konfiguracji lokalnego serwera" -#: 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 "Katalog przechowywania kluczy 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 "Ścieżka bezwzględna do katalogu w którym będą trzymane klucze prywatne DKIM. Upewnij się że właścicielem katalogu jest \"użytkownik root\" i że katalog nie jest publicznie dostępny do odczytu." +#: 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 "" +"Ścieżka bezwzględna do katalogu w którym będą trzymane klucze prywatne DKIM." +" Upewnij się że właścicielem katalogu jest \"użytkownik root\" i że katalog " +"nie jest publicznie dostępny do odczytu." -#: 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 "Domyślna długość klucza 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 "Domyślna długość w bitach dla nowo wygenerowanych kluczy DKIM." -#: 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 "Domyślne ograniczenie dla domeny" -#: 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 "Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - brak ograniczenia)" +#: 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 "" +"Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - " +"brak ograniczenia)" -#: 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 "Domyślny limit wysyłania dla domey" -#: 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." -msgstr "Liczba wiadomości, które świeżo utworzone domeny będą mogły wysłać dziennie. Pozostaw puste dla braku limitu." +#: 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 "" +"Liczba wiadomości, które świeżo utworzone domeny będą mogły wysłać dziennie." +" Pozostaw puste dla braku limitu." -#: 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 "Skrzynki pocztowe" -#: 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 "Przechowuj skrzynka na filesystemie" -#: 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 "Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub usuniętę przez 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 "" +"Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub" +" usuniętę przez 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 "Domyślna przestrzeń dla konta pocztowego" -#: 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." -msgstr "Domyślny limit skrzynki (w MB) stosowany dla świeżo utworzonych skrzynek, dla których nie podano wartości. Wartość 0 oznacza brak limitu." +#: 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 "" +"Domyślny limit skrzynki (w MB) stosowany dla świeżo utworzonych skrzynek, " +"dla których nie podano wartości. Wartość 0 oznacza brak limitu." -#: 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 "Domyślny limit wysyłania skrzynki" -#: 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." -msgstr "Liczba wiadomości, które będą mogły wysyłać świeżo utworzone skrzynki na dzień. Pozostaw puste dla braku limitu." +#: 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 "" +"Liczba wiadomości, które będą mogły wysyłać świeżo utworzone skrzynki na " +"dzień. Pozostaw puste dla braku limitu." -#: 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 "Automatyczne usuwanie konta" -#: 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 "Gdy usuwana jest skrzynka usuń powizane z nią konto" -#: 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 "Automatyczne tworzenie domeny/skrzynki" -#: 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 "Utwórz domenę i skrzynkę gdy tworzone jest konto" -#: 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 "Utwórz alias podczas zmiany nazwy skrzynki" -#: 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 "Utwórz alias używając starego adresu podczas zmiany nazwy skrzynki." -#: admin/app_settings.py:407 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "Domyślny limit skrzynki (w MB) stosowany dla świeżo utworzonych skrzynek, dla których nie podano wartości. Wartość 0 oznacza brak limitu." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "" +"Domyślny limit skrzynki (w MB) stosowany dla świeżo utworzonych skrzynek, " +"dla których nie podano wartości. Wartość 0 oznacza brak limitu." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administracja" -#: 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 "Domena" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Domena przekazująca" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "Otwarty" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "Zamknięty" -#: 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 "Nazwa użytkownika" -#: 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 "Username musi być poprawnym adresem e-mail dla zwykłych użytkowników i administratorów posiadających skrzynkę." +#: 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 "" +"Username musi być poprawnym adresem e-mail dla zwykłych użytkowników i " +"administratorów posiadających skrzynkę." -#: 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 "Rola" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Wybierz" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Jaki zakres uprawnień będzie miał użytkownik" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Losowe hasło" -#: 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 "Wygeneruj losowe hasło. Jeśli aktualizujesz to konto i zaznaczysz te pole, to zostanie wygenerowane nowe hasło." +#: 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 "" +"Wygeneruj losowe hasło. Jeśli aktualizujesz to konto i zaznaczysz te pole, " +"to zostanie wygenerowane nowe hasło." -#: 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 "Hasło" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Potwierdzenie" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Wprowadź hasło ponownie" -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Włączone" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Tylko super administratorzy mogą korzystać z tej opcji" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Hasła nie są zgodne" -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Nie możesz wyłączyć swojego konta" -#: 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 "Utwórz alias używając starego adresu" -#: 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 "Limit" -#: 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 "Limit miejsca dla tej skrzynki. Może być wyrażony w KB, MB(domyślnie) lub GB. Podaj własną wartość lub użyj domyślnej wartości domeny. Brak limitu jeśli pozostawisz niewypełnione (opcja niedozwolona dla administratorów domen)" +#: 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 "" +"Limit miejsca dla tej skrzynki. Może być wyrażony w KB, MB(domyślnie) lub " +"GB. Podaj własną wartość lub użyj domyślnej wartości domeny. Brak limitu " +"jeśli pozostawisz niewypełnione (opcja niedozwolona dla administratorów " +"domen)" -#: 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 "Limit wysyłania wiadomości" -#: 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 "Liczba wiadomości, które ta skrzynka może wysłać w ciągu jednego dnia" -#: 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) dla tej skrzynki. Podaj jeden adres w polu. Naciśnij ENTER aby dodać kolejne pole. Aby stworzyć alias \"catchall\" po prostu podaj nazwę domeny (@domena.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(y) dla tej skrzynki. Podaj jeden adres w polu. Naciśnij ENTER aby " +"dodać kolejne pole. Aby stworzyć alias \"catchall\" po prostu podaj nazwę " +"domeny (@domena.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Adres nadawcy" -#: 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 "Dodatkowe adresy nadawcy dla tego konta. Użytkownik będzie mógł tych adresów podczas wysyłania wiadomości, nawet jeśli taki nie istnieje lokalnie. Podaj jeden adres w polu. Naciśnij ENTER aby dodać nowe pole." +#: admin/forms/account.py: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 "" +"Dodatkowe adresy nadawcy dla tego konta. Użytkownik będzie mógł tych adresów" +" podczas wysyłania wiadomości, nawet jeśli taki nie istnieje lokalnie. Podaj" +" jeden adres w polu. Naciśnij ENTER aby dodać nowe pole." -#: admin/forms/account.py: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 "Domena nie istnieje" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Domena lokalna nie istnieje" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domena(y)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domena(y), którmi zarządza użytkownik" -#: 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 "Ogólne" -#: 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 "Uprawnienia" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Konto zaktualizowane" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nowe konto" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Konto utworzone" @@ -519,69 +620,84 @@ msgid "Email address" msgstr "Adres e-mail" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Adres aliasu. W celu utworzenia aliasu typu catchall wprowadź jedynie nazwę domeny (np. @domena.pl)" +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Adres aliasu. W celu utworzenia aliasu typu catchall wprowadź jedynie nazwę " +"domeny (np. @domena.pl)" #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Odbiorcy" -#: 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 "Adres na który wskazuje alias. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny." +#: 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 "" +"Adres na który wskazuje alias. Wprowadź pojedynczo. Wciśnij ENTER aby dodać " +"kolejny." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Nie zdefiniowano odbiorców" -#: 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) tej domeny. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny." +#: 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) tej domeny. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Wybór klucza" -#: 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 "Domyślne ograniczenie miejsca dla skrzynek. Może być wyrażone w KB, MB (domyślnie) lub GB. Wartość 0 oznacza brak ograniczenia." +#: 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 "" +"Domyślne ograniczenie miejsca dla skrzynek. Może być wyrażone w KB, MB " +"(domyślnie) lub GB. Wartość 0 oznacza brak ograniczenia." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias domeny" -#: 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 "Nazwa %s już istnieje" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Katalog przechowywania kluczy DKIM nie został skonfigurowany" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Nie możesz przypisać nielimitowanej przestrzeni" -#: 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 "domena" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Utwórz administratora domeny" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Automatycznie utwórz administratora dla tej domeny" -#: 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 @@ -590,51 +706,55 @@ msgstr "Automatycznie utwórz administratora dla tej domeny" msgid "Name" msgstr "Nazwa" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "Nazwa administratora. Nie dodawaj tutaj nazwy domeny, zostanie dodana automatycznie" +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Nazwa administratora. Nie dodawaj tutaj nazwy domeny, zostanie dodana " +"automatycznie" -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Wygeneruj losowe hasło dla administratora." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Ze skrzynką" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Utwórz skrzynkę dla administratora." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Utwórz aliasy" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Automatycznie utwórz standardowe aliasy dla tej domeny" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Niepoprawny format" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domena zmodyfikowana" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opcje" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Nowa domena" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domena utworzona" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Separator" @@ -642,23 +762,23 @@ msgstr "Separator" msgid "Recipient(s)" msgstr "Odbiorca(y)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Wprowadź jednego lub wielu odbiorców używając przecinka" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Zachowuj lokalne kopie" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Przekazuj wiadomości i przechowuj kopie w twojej skrzynce" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Wybierz plik" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Kontynuuj przy błędzie" @@ -666,7 +786,7 @@ msgstr "Kontynuuj przy błędzie" msgid "Don't treat duplicated objects as error" msgstr "Nie traktuj zdublowanych obiektów jako błąd" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Szyfruj hasła" @@ -674,93 +794,95 @@ msgstr "Szyfruj hasła" msgid "Check this option if passwords contained in your file are not crypted" msgstr "Zaznacz opcję jeśli hasła w twoim pliku nie są zaszyfrowane" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Błąd importu (%s): domena nie istnieje" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Skrzynka {} już istnieje" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Błąd importu (%s): błędna wartość limitu" -#: 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 "Tożsamości" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Przekaż" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Skrzynka jest obowiązkowa" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Nie masz uprawnień do importowania domen" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Nie masz uprawnień do importowania aliasów." -#: 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 "Nie znaleziono rekordu DNS dla %s" -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Brak %(type)s zapisów dla %(name)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 "Znaleziono nie działające serwery nazw" -#: 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 "Upłynąć czas na rozwiązanie nazwy w DNS, w tym momencie nie potrafię odpytać %s" +msgstr "" +"Upłynąć czas na rozwiązanie nazwy w DNS, w tym momencie nie potrafię odpytać" +" %s" -#: 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 "Nieprawidłowy format adresu IP dla {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Obiekt %s już istnieje" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "Zaimportowano %d obiektów z sukcesem" -#: 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 "Plik CSV nie jest w formacie UTF-8, próbuję rozpoznać kodowanie" -#: 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 "Wczytywanie pliku CSV używając kodowania %(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 "Nie potrafię zdekodować pliku CSV używając kodowania %(encoding)s" @@ -769,23 +891,23 @@ msgstr "Nie potrafię zdekodować pliku CSV używając kodowania %(encoding)s" 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 "MX {} wymienione przez dostawcę DNSBL {}" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "Domena {} nie ma zdefiniowanego rekordu MX" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Domena {} nie ma zdefiniowanego rekordu MX" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "Nieprawidłowy rekord MX: {}" -#: 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 "Rekord MX dla domeny {0} jest niepoprawny: {1}" @@ -794,160 +916,158 @@ msgstr "Rekord MX dla domeny {0} jest niepoprawny: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] Wykryto problem(y) z MX dla domeny {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL problem(y) dla domeny {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domena nie znaleziona." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Alias z taką nazwą już istnieje" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "adres" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Adres 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 "włączone" -#: 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 "Zaznacz aby aktywować ten alias" -#: 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 "Opis" -#: 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 "Wygasa" -#: 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 "Niepoprawny adres" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Lokalny odbiorca {}@{} nie został odnaleziony" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Niepoprawna linia: %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 "nazwa" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Nazwa domeny" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "Liczba wiadomości, które ta domena może wysłać w ciągu jednego dnia" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Zaznacz, aby aktywować tą domenę" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Aktywuj sprawdzanie rekordów DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Zaznacz aby aktywować sprawdzanie DNS dla tej domeny" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Włącz podpisywanie DKIM" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Jeśli włączysz tą funkcjonalność, dla tej domeny zostanie wygenerowany klucz DKIM" +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Jeśli włączysz tą funkcjonalność, dla tej domeny zostanie wygenerowany klucz" +" DKIM" -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Długość klucza" -#: 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 "Niepoprawna linia" -#: 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 "Nie znaleziono autoryzowanego rekordu MX dla domeny {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Niepoprawna wartość przydziału (quoty) dla domeny {}" -#: 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 "Niepoprawna wartość domyślna przydziału (quoty) dla domeny '{}'" -#: 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 "Domyślna wartość przydziału (quota) nie może być wyższa niż przydział domeny" +msgstr "" +"Domyślna wartość przydziału (quota) nie może być wyższa niż przydział domeny" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Nazwa aliasu" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "cel" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Alias domeny wskazuje na" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Nieznana domena %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adres skrzynki (bez części @domena.pl)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Błąd - nie udało się odczytać lokalizacji skrzynki (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Limit jest wymagany" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -957,8 +1077,9 @@ msgstr "Przekroczono limit przydziału" #: 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 "Zamknij" @@ -1007,9 +1128,9 @@ msgstr "Ilość" #: 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 "Aliasy domen" @@ -1044,7 +1165,7 @@ msgstr "Utworzono" msgid "Last login" msgstr "Ostatnio zalogowany" -#: 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 "Zapasowy email" @@ -1053,7 +1174,7 @@ msgstr "Zapasowy email" msgid "Not defined" msgstr "Nie zdefiniowano" -#: 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 "Numer telefonu" @@ -1131,7 +1252,7 @@ msgstr "Alarm otwarty dla" #: 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 "Data" @@ -1155,9 +1276,9 @@ msgstr "Data utworzenia" msgid "Last modification date" msgstr "Data ostatniej modyfikacji" -#: 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 skrzynki" @@ -1213,11 +1334,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 "Nie" @@ -1225,7 +1347,7 @@ msgstr "Nie" msgid "Generate new key" msgstr "Wygeneruj nowy klucz" -#: 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 "tak" @@ -1238,7 +1360,7 @@ msgid "Administrators" msgstr "Administratorzy" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Usuń to uprawnienie" @@ -1275,13 +1397,13 @@ msgstr "ID kolejki" #: 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 "Do" @@ -1312,11 +1434,12 @@ msgstr "wyłączone" msgid "Automatically forward emails to another address" msgstr "Automatycznie przekazuj wiadomości do do innych odbiorców" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Aktualizuj" +msgstr "Zaktualizuj" #: admin/templates/admin/identities.html:32 msgid "Account" @@ -1331,7 +1454,14 @@ msgid "Fullname/Recipient" msgstr "Pełna nazwa/Odbiorca" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " msgstr "" "Przygotuj plik CSV gdzie linie są nastepującego formatu:\n" "
        • domain; nazwa; quota; domyślna quota skrzynki; enabled
        • \n" @@ -1342,7 +1472,13 @@ msgstr "" "

          Możesz użyc różnych znaków jako separatora pól.

          " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
          • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
          • alias; address; enabled; recipient; recipient; ...

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

          You can use a different character as separator.

          " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
            " +"
          • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
          • alias; address; enabled; " +"recipient; recipient; ...

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

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

          " msgstr "" "Przygotuj plik CSV gdzie linie są następującego formatu:\n" "
            \n" @@ -1378,7 +1514,8 @@ msgstr "Zaktualizowane" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Ten IP nie pasuje do żadnego poprawnego MX'a określonego w parametrach" +msgstr "" +"Ten IP nie pasuje do żadnego poprawnego MX'a określonego w parametrach" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1386,106 +1523,123 @@ msgstr "Nie znaleziono rekordu MX dla tej domeny" #: 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 znalazło tą domenę %(domain)s na liście DNSBL poniższych providerów:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa znalazło tą domenę %(domain)s na liście DNSBL poniższych providerów:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -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 "Reputacja domeny zostanie naruszona i istnieje szansa, że wiadomości z niej pochodzące zostaną zakwalifikowane jako spam. Powinieneś skontaktować się z tymi dostawcami i poprosić o usunięcie wykrytych adresów (IP)." +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 "" +"Reputacja domeny zostanie naruszona i istnieje szansa, że wiadomości z niej " +"pochodzące zostaną zakwalifikowane jako spam. Powinieneś skontaktować się z " +"tymi dostawcami i poprosić o usunięcie wykrytych adresów (IP)." #: 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 sygnalizuje że ta domena %(domain)s nie posiada poprawnego rekordu MX:" +msgstr "" +"Modoboa sygnalizuje że ta domena %(domain)s nie posiada poprawnego rekordu " +"MX:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Szukaj" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "aktywowany_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "aktywowany_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Lista domen" -#: 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 "Lista limitów" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "Logi wiadomości" -#: 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 "Importuj" -#: 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 "Exportuj" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Lista tożsamości" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Pokaż tożsamości domeny" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "Wyświetl alarmy domeny" -#: 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 "Edytuj {}" -#: 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 "Usunąć %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Brak wpisów MX dla %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 "Nieprawidłowy format adresu IP dla %(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 "Brak wpisów MX dla %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Alias z taką nazwą już istnieje" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Utwórz" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nowy alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias utworzony" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias zmodyfikowany" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias skasowano" @@ -1497,11 +1651,11 @@ msgstr[3] "Aliasy skasowano" msgid "MX records of {}" msgstr "Rekordy MX dla {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL podsumowanie dla {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domena usunięta" @@ -1509,20 +1663,20 @@ msgstr[1] "Domeny usunięte" msgstr[2] "Domeny usunięte" msgstr[3] "Domeny usunięte" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Eksportuj tożsamości" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Eksportuj domeny" -#: 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 "Nieprawidłowe żądanie" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto usunięte" @@ -1530,7 +1684,7 @@ msgstr[1] "Konta usunięte" msgstr[2] "Konta usunięte" msgstr[3] "Konta usunięte" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importuj domeny" @@ -1538,85 +1692,72 @@ msgstr "Importuj domeny" msgid "Import identities" msgstr "Importuj tożsamości" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Reguła przekazywania zmodyfikowana" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Nieprawidłowy kod PIN" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA jest już włączone" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" -msgstr "2FA nie jest włączone" - -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Lokalnie" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" +#: 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: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 użytkownika" - -#: 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 "Nieprawidłowa składnia" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Nieprawidłowa liczba rund" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "Ten kod jest nieprawidłowy" - -#: 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 "Stare hasło" -#: 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 "2FA nie jest włączone" + +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Lokalnie" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Profil użytkownika" + +#: 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 "Nieprawidłowa składnia" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Nieprawidłowa liczba rund" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "Ten kod jest nieprawidłowy" + +#: 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 "Proszę użyć następującego kodu, aby odzyskać hasło Modoboa: {}" -#: 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 "Użytkownik '%s' pomyślnie zalogowany" -#: 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 "Niezgodny schemat hasła. Aktualizuję hasło %s" @@ -1626,452 +1767,515 @@ msgstr "Niezgodny schemat hasła. Aktualizuję hasło %s" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Niezgodny schemat hasła. Aktualizuję hasło %s" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Uwierzytelnianie" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Typ uwierzytelniania" -#: 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 "Backend używany do uwierzytelniania" -#: 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 "Domyślny schemat hasła" -#: 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 "Schemat używany do szyfrowania haseł do skrzynek" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Rund" -#: 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 "Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać pomiędzy 1000 a 999999999 włącznie." +#: 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 "" +"Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać " +"pomiędzy 1000 a 999999999 włącznie." -#: 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 "Aktualizuj schemat haseł przy logowaniu" -#: 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 "Zaktualizuj hasło użytkownika przy logowaniu, tak aby używało domyślnego schematu haseł" +msgstr "" +"Zaktualizuj hasło użytkownika przy logowaniu, tak aby używało domyślnego " +"schematu haseł" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Domyślne hasło" -#: 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 "Domyślne hasło dla automatycznie dodawanych kont." -#: 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 "Długość losowego hasła" -#: 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 "Długość losowo wygenerowanego hasła" -#: 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 "Zaktualizuj URL usługi hasła" -#: 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)." -msgstr "Adres URL zewnętrznej strony, gdzie użytkownicy będą mogli zmieniać swoje hasła. Ustawienie dotyczy tylko użytkowników innych niż lokalni, np. utworzonych automatycznie po prawidłowym zalogowaniu do zewnętrznych usług (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 "" +"Adres URL zewnętrznej strony, gdzie użytkownicy będą mogli zmieniać swoje " +"hasła. Ustawienie dotyczy tylko użytkowników innych niż lokalni, np. " +"utworzonych automatycznie po prawidłowym zalogowaniu do zewnętrznych usług " +"(LDAP, SMTP)." -#: 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 "Komunikat o odzyskiwaniu hasła" -#: 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 "Tymczasowa wiadomość, która będzie wyświetlana na stronie resetowania hasła." +msgstr "" +"Tymczasowa wiadomość, która będzie wyświetlana na stronie resetowania hasła." -#: 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 "Włącz odzyskiwania hasła przez SMS" -#: 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 "Włącz odzyskiwanie hasła przez SMS dla użytkowników, którzy podali numer telefonu." +msgstr "" +"Włącz odzyskiwanie hasła przez SMS dla użytkowników, którzy podali numer " +"telefonu." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "Dostawca SMS" -#: 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 "Wybierz dostawcę, aby wysłać SMS odzyskiwania hasła Dostawca SMS" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "Ustawienia 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 "Adres serwera" -#: 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 "IP lub nazwa DNS serwera 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 "Port" -#: 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 "Port TCP używany przez 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 "Włącz dodatkowy serwer (awaryjny)" -#: 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" -msgstr "Włącz dodatkowy serwer LDAP, który będzie użyty, gdy pierwszorzędny nie będzie dostępny" +#: 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 "" +"Włącz dodatkowy serwer LDAP, który będzie użyty, gdy pierwszorzędny nie " +"będzie dostępny" -#: 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 "Adres serwera dodatkowego" -#: 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 "Adres IP lub nazwa DNS dodatkowego serwera LDAP" -#: 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 "Port na serwerze dodatkowym" -#: 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 "Numer portu TCP używanego przez dodatkowy serwer LDAP" -#: 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 "Użyj połączenia bezpiecznego" -#: 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 "Użyj SSL/STARTTLS dla połączenia z serwerem 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 "Active Directory" -#: 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 "Czy LDAP jest Active Directory " -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Administrator grup" -#: 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 "Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. Użyj znaku ';' jako separatora grup." +#: 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 "" +"Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny." +" Użyj znaku ';' jako separatora grup." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Typ grupy" -#: 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 "Typ grupy LDAP do wykorzystania z Twoim katalogiem." -#: 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 "Wyszukiwarka grup" -#: 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 "Nazwa wyróżniająca bazy wyszukiwania użyte do znalezienia grupy" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atrybut hasła" -#: 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 "Atrybut używany do przechowywania haseł użytkowników" -#: 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 "Ustawienia uwierzytelniania LDAP" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Metoda autentykacji" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Wyszukaj i powiąż" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Bezpośrednie powiązanie" -#: 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 "Wybierz metode autentykacji" -#: 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 "Przypnij do 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 "DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego podłączenia" +#: 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 "" +"DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego " +"podłączenia" -#: 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 "Hasło" -#: 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 "Hasło używane do połdłączenia do LDAP'a (z wskazanym 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 "Wyszukiwania użytkowników" -#: 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 "Nazwa wyróżniająca bazy wyszukiwania użyte do znalezienia grupy" -#: 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 "Filtr wyszukiwania" -#: 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 "Użyj szablonu DN" -#: 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 "Użyj szablonu 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 "Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden symbol zastępczy (np. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden " +"symbol zastępczy (np. %(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 "Ustawienia synchronizacji z LDAP" -#: 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 "Włącz export do LDAP" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" -msgstr "Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" +msgstr "" +"Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP" -#: 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 "Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne" -#: 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." -msgstr "Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne, w innym przypadku zostanie ono wyłączone." +#: 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 "" +"Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne, w innym" +" przypadku zostanie ono wyłączone." -#: 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 "Szablon konta DN" -#: 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)" -msgstr "Szablon używany do budowy DN konta. Powinien zawierać jeden placeholder (ie. %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Szablon używany do budowy DN konta. Powinien zawierać jeden placeholder (ie." +" %(user)s)" -#: 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 "Włącz import z LDAP" -#: 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 "Włącz synchronizację konta ze katalogu LDAP z lokalną bazą danych" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Atrybut nazwa użytkownika" -#: 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 "Nazwa atrybutu LDAP, w którym można znaleźć nazwę użytkownika." -#: 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 "Włącz synchronizację Dovecot LDAP" -#: 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 "Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji Dovecot." +msgstr "" +"Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji " +"Dovecot." -#: 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 "Plik konfiguracyjny Dovecot LDAP" -#: core/app_settings.py:384 core/app_settings.py:1004 -msgid "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "Lokalizacja pliku konfiguracyjnego, który zawiera ustawienia Dovecot LDAP." +#: core/app_settings.py:374 core/app_settings.py:1134 +msgid "" +"Location of the configuration file which contains Dovecot LDAP settings." +msgstr "" +"Lokalizacja pliku konfiguracyjnego, który zawiera ustawienia Dovecot LDAP." -#: 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 "Panel główny" -#: 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 "Spersonalizowany kanał RSS" -#: 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 "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen" +msgstr "" +"Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen" -#: 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 "Ukryj kontrolki opcji" -#: 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 "Ukryj kontrolki opcji dla administratorów domeny i resellerów" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Powiadomienia" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Adres nadawcy" -#: 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 "Adres e-mail używany do wysyłania powiadomień" -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Publiczne API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Włącz komunikację" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Włącz komunikację z publicznym API 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 "Sprawdź nowe wersje" -#: 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 "Automatycznie sprawdzaj czy nowa wersja jest dostępna" -#: 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 "Wyślij email, jeżeli została znaleziona nowa wersja" -#: 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 "Wyślij email, by powiadomić aministratorów o nowej wersji" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Odbiorca" -#: 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 "Odbiorca emaili z powiadomieniem o nowej wersji" -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Wyślij statystyki" -#: 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 "Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)" +msgstr "" +"Prześlij statystyki do publicznego API Modoboa (licznik i użyte " +"rozszerzenia)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Różne" -#: 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 "Próg nieaktywności konta" -#: 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 "Próg nieaktywności konta" -#: 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 "Konto z datą ostatniego logowania większą niż podany próg (w dniach) zostanie uznane za nieaktywne. " +#: 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 "" +"Konto z datą ostatniego logowania większą niż podany próg (w dniach) " +"zostanie uznane za nieaktywne. " -#: 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 "Odstęp pomiędzy powiadomieniami " -#: 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 "Odstęp pomiędzy dwoma powiadomieniami (w sek.)" -#: 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 "Max wiek wpisu w logu" -#: 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 "Max wiek w dniach dla wpisu w logu" -#: 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 "Elementów na stronie" -#: 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 "Liczba wyświetlanych elementów na stronie" -#: 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 "Domyślne górne przekierowanie" -#: 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 "Domyślne górne przekierowanie kiedy nie wskazano aplikacji" -#: 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 "Masz ustawione USE_TZ na False, co może powodować problemy przy zmianach czasu pomiędzy letnim a zimowym (ten sam czas będzie występował dwa razy z powodu zmiany godziny)." +#: 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 "" +"Masz ustawione USE_TZ na False, co może powodować problemy przy zmianach " +"czasu pomiędzy letnim a zimowym (ten sam czas będzie występował dwa razy z " +"powodu zmiany godziny)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Ustaw `USE_TZ = True` w settings.py" @@ -2103,31 +2307,31 @@ msgstr "Atrapa" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Stare hasło" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nowe hasło" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Niezgodność ze starym gasłem" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Niezgodność haseł" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Włądze dostęp API" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Kod weryfikacyjny" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Nieprawidłowy kod" @@ -2144,20 +2348,20 @@ msgstr "zmodyfikowano" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s przez użytkownika %(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 przez" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "usunięto" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "użytkownik {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "polecenie zarządzania" @@ -2165,65 +2369,65 @@ msgstr "polecenie zarządzania" msgid "You can't delete your own account" msgstr "Nie możesz usunąć własnego konta" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Jedna lub więcej aktualizacji jest dostępnych" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Aktualizacja(y) dostępna(e)" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Zezwól na dostęp do skrzynek" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Zezwól temu administratorowi na dostęp do skrzynek użytkowników" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "hasło" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "Język" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Preferowany język" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "Alternatywny email, może zostać użyty do odzyskania hasła" -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Nieudana zmiana hasła: moduł LDAP nie został zainstalowany" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "konto" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Nieznany" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Nie możesz zaimportować konta z rolą wyższą od własnej" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Prosty uzytkownik '%s' musi posiadać prawidłowy adres email" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "pola nazwa użytkownika i email nie mogą się różnić dla '%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] "Hasło musi zawierać przynajmniej {} cyfrę." @@ -2231,7 +2435,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} cyfry." msgstr[2] "Hasło musi zawierać przynajmniej {} cyfr." msgstr[3] "Hasło musi zawierać przynajmniej {} cyfr." -#: 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] "Hasło musi zawierać przynajmniej {} małą literę." @@ -2239,7 +2443,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} małe litery." msgstr[2] "Hasło musi zawierać przynajmniej {} małych liter." msgstr[3] "Hasło musi zawierać przynajmniej {} małych liter." -#: 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] "Hasło musi zawierać przynajmniej {} duża literę." @@ -2247,7 +2451,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} duże litery." msgstr[2] "Hasło musi zawierać przynajmniej {} dużych liter." msgstr[3] "Hasło musi zawierać przynajmniej {} dużych liter." -#: 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] "Hasło musi zawierać przynajmniej {} znak specjalny." @@ -2255,55 +2459,55 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} znaki specjalne." msgstr[2] "Hasło musi zawierać przynajmniej {} znaków specjalnych." msgstr[3] "Hasło musi zawierać przynajmniej {} znaków specjalnych." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." msgstr "Hasło musi zawierać kombinację różnych typów znaków." -#: 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 "Punkt końcowy API" -#: 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 "OVH Europa" -#: 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 "OVH USA" -#: 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 "OVH North-America" -#: 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 "Zaczynasz Europe" -#: 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 "Zaczynasz Amerykę Północną" -#: 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 "Kimsufi Europa" -#: 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 "Kimsufi North America" -#: 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 "Klucz aplikacji" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Hasło aplikacji" -#: 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 "Klucz konsumenta" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2330,8 +2534,12 @@ msgid "Latest news" msgstr "Ostatnie wiadomości" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Odwiedź oficjalny blog aby uzyskać więcej informacji." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Odwiedź oficjalny " +"blog aby uzyskać więcej informacji." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2343,8 +2551,12 @@ msgstr "Kontroluj dostęp do Modoboa API" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Dokumentacja API jest dostępna tutaj." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Dokumentacja API jest dostępna tutaj." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2355,7 +2567,7 @@ msgstr "Token dostępowy do API" msgid "Hello %(user)s." msgstr "Cześć %(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 "Informacja" @@ -2369,7 +2581,9 @@ msgstr "Aktualizacje są dostępne!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Sprawdź poniższą listę, aby znaleźć komponenty, które mogą być aktualizowane." +msgstr "" +"Sprawdź poniższą listę, aby znaleźć komponenty, które mogą być " +"aktualizowane." #: core/templates/core/information.html:10 msgid "Applications" @@ -2387,7 +2601,7 @@ msgstr "Ostatnia wersja" msgid "Active users" msgstr "Aktywni użytkownicy" -#: 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 "Logi" @@ -2423,7 +2637,7 @@ msgstr[3] "" "\n" "Dostępne są następujące aktualizacje:\n" -#: 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 "Parametry" @@ -2440,12 +2654,12 @@ msgstr "Zapisz" msgid "Modoboa settings" msgstr "Ustawienia 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 "Ustawienia" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Preferencja" @@ -2465,7 +2679,7 @@ msgstr "Aktualizuj swoje dane osobowe" msgid "Click here to update your password" msgstr "Kliknij tutaj, by ustawić swoje hasło." -#: 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 "Bezpieczeństwo" @@ -2474,8 +2688,13 @@ msgid "Two-Factor authentication" msgstr "Uwierzytelnianie dwuskładnikowe" #: 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." -msgstr "Zainstaluj aplikację uwierzytelniającą soft token, taką jak FreeOTP lub Google Authenticator z repozytorium aplikacji i użyj jej do zeskanowania tego kodu QR." +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 "" +"Zainstaluj aplikację uwierzytelniającą soft token, taką jak FreeOTP lub " +"Google Authenticator z repozytorium aplikacji i użyj jej do zeskanowania " +"tego kodu QR." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2486,29 +2705,53 @@ msgid "Register" msgstr "Zarejestruj się" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "Gratulacje! Uwierzytelnianie dwuskładnikowe jest teraz włączone dla Twojego konta." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." +msgstr "" +"Gratulacje! Uwierzytelnianie dwuskładnikowe jest teraz włączone dla Twojego " +"konta." #: 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." -msgstr "Poniższe kody odzyskiwania można użyć jednorazowo, aby odzyskać dostęp do swojego konta, na przykład w przypadku utraty telefonu. Upewnij się, że zapisałeś je w bezpiecznym miejscu, w przeciwnym razie nie będziesz miał już dostępu do swojego konta." +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 "" +"Poniższe kody odzyskiwania można użyć jednorazowo, aby odzyskać dostęp do " +"swojego konta, na przykład w przypadku utraty telefonu. Upewnij się, że " +"zapisałeś je w bezpiecznym miejscu, w przeciwnym razie nie będziesz miał już" +" dostępu do swojego konta." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "Uwierzytelnianie dwuskładnikowe jest włączone dla Twojego konta." +#: 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 "Wyłącz 2FA" +#: 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 "Resetowanie kodów odzyskiwania" #: 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." -msgstr "Uwierzytelnianie dwuskładnikowe (Two-Factor Authentication, 2FA) nie jest jeszcze aktywne dla Twojego konta. Włączenie tej funkcji zwiększy bezpieczeństwo Twojego konta." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." +msgstr "" +"Uwierzytelnianie dwuskładnikowe (Two-Factor Authentication, 2FA) nie jest " +"jeszcze aktywne dla Twojego konta. Włączenie tej funkcji zwiększy " +"bezpieczeństwo Twojego konta." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2522,71 +2765,77 @@ msgstr "Nowe kody odzyskiwania" msgid "Here are your new recovery codes. " msgstr "Oto twoje nowe kody odzyskiwania. " +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Szyfruj hasła" + #: 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 "Wyloguj" -#: 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 "Zasadnicza część Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parametry zapisano" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "Twoja nazwa użytkownika i hasło są niepoprawne. Spróbuj ponownie" -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Użytkownik '{}' wylogowany pomyślnie" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil zaktualizowano" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Preferencje zapisano" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Dostęp zaktualizowany" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "Ustawienia LDAP" -#: 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 #, fuzzy #| msgid "No MX record for %s" msgid "Show DMARC report for {}" msgstr "Brak wpisów MX dla %s" -#: 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 #, fuzzy #| msgid "Not defined" msgid "Not resolved" @@ -2632,11 +2881,11 @@ msgstr "Port na serwerze dodatkowym" 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 "" @@ -2716,95 +2965,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 "" @@ -2833,7 +3082,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 @@ -2849,7 +3100,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2857,95 +3108,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 "Dostęp zaktualizowany" -#: 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 "Włącz podpisywanie 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 "Włącz podpisywanie 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 "Utwórz aliasy" -#: 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 "Ustawienia 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 @@ -2954,52 +3213,52 @@ msgstr "" msgid "IMAP migration" msgstr "Administracja" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Niepowodzenie w trakcie dodawania konta LDAP" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Niepowodzenie w trakcie aktualizacji konta LDAP" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Niepowodzenie w trakcie usuwania konta LDAP" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Niepowodzenie w trakcie wyłaczania konta LDAP" -#: 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 "Włącz komunikację z publicznym API Modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Połączenie do bazy danych %s nie zostało skonfigurowane" -#: 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 "nie potrafi rozpoznać kodowania tekstu" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Odmowa dostepu: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Dostęp zabroniony" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Wprowadź prawidłową nazwę domeny" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Wprowadź prawidłowy adres email" @@ -3009,133 +3268,174 @@ msgstr "Wprowadź prawidłowy adres email" msgid "Submit" msgstr "Temat" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Nieudana zmiana hasła: {}" -#: 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 "Temat" -#: 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 "Domyślne limity na admina" -#: 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 "Włącz limity na admina" -#: 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 "Włącz lub wyłącz limity na admina" -#: 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 "Administratorzy domeny" -#: 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 "Maksymalna dozwolona liczba administratorów domen dla nowego administratora. (0 - tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Maksymalna dozwolona liczba administratorów domen dla nowego administratora." +" (0 - tworzenie niedozwolone, -1 nielimitowana ilość)" -#: 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 "Maksymalna dozwolona ilość domen dla nowego administratora. (0 dla tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Maksymalna dozwolona ilość domen dla nowego administratora. (0 dla tworzenie" +" niedozwolone, -1 nielimitowana ilość)" -#: 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 "Maksymalna dozwolona ilość aliasów domen dla nowego administratora. (0 dla tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Maksymalna dozwolona ilość aliasów domen dla nowego administratora. (0 dla " +"tworzenie niedozwolone, -1 nielimitowana ilość)" -#: 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 "Maksymalna dozwolona liczba skrzynek dla nowego administratora. (0 - tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Maksymalna dozwolona liczba skrzynek dla nowego administratora. (0 - " +"tworzenie niedozwolone, -1 nielimitowana ilość)" -#: 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 "Maksymalna dozwolona liczba aliasów dla nowego administratora. (0 - tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Maksymalna dozwolona liczba aliasów dla nowego administratora. (0 - " +"tworzenie niedozwolone, -1 nielimitowana ilość)" -#: 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 "Pojemność jaką reseller może dzielić między domenami które utworzy. (0 oznacza brak limitu)" +#: 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 "" +"Pojemność jaką reseller może dzielić między domenami które utworzy. (0 " +"oznacza brak limitu)" -#: 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 "Domyślne limity na domenę" -#: 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 "Włącz limity na domenę" -#: 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 "Włącz lub wyłącz limity na domenę" -#: 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 "Max liczba administratrów nowej domeny. (0 tworzenie niedozwolone, -1 dla braku limitu)" +#: 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 "" +"Max liczba administratrów nowej domeny. (0 tworzenie niedozwolone, -1 dla " +"braku limitu)" -#: 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 "Max liczba aliasów domen nowej domeny. (0 tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Max liczba aliasów domen nowej domeny. (0 tworzenie niedozwolone, -1 " +"nielimitowana ilość)" -#: 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 "Max liczba skrzynek dla nowej domeny. (0 tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Max liczba skrzynek dla nowej domeny. (0 tworzenie niedozwolone, -1 " +"nielimitowana ilość)" -#: 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 "Max liczba aliasów dla nowej domeny. (0 tworzenie niedozwolone, -1 nielimitowana ilość)" +#: 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 "" +"Max liczba aliasów dla nowej domeny. (0 tworzenie niedozwolone, -1 " +"nielimitowana ilość)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limity" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Maksymalna liczba domen, które może stworzyć użytkownik" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Maksymalna liczba aliasów domen, które może stworzyć użytkownik" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Maksymalna liczba skrzynek, które może stworzyć użytkownik" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Maksymalna liczba aliasów skrzynek, które może stworzyć użytkownik" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Maksymalna liczba kont aministratorów domen, które może stworzyć użytkownik" +msgstr "" +"Maksymalna liczba kont aministratorów domen, które może stworzyć użytkownik" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Pojemność współdzielona między domenami tego resellera" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Max liczba aliasów domen dla tej domeny." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Max liczba skrzynek dla tej domeny." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Max liczba aliasów dla tej domeny." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "Max liczba administratorów domeny." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Nieprawidłowy limit" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Zasoby" @@ -3148,11 +3448,11 @@ msgstr "Osiągnięto limit: %s" msgid "Not enough resources" msgstr "Brak wystarczających zasobów" -#: 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 "Nie jesteś uprawniony do wprowadzenia nielimitowanej wartości" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "nielimitowane" @@ -3161,91 +3461,91 @@ msgstr "nielimitowane" msgid "Resources usage" msgstr "Wykorzystanie zasobów" -#: 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 "Ścieżka do pliku z logiem" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Sćieżka do pliku z logiem dla colect " -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Katalog do przechowywania plików RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Katalog gdzie przechowywane są pliki RRD" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Pokaż greylistowane wiadomości" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Rozróżniaj twarde i miękkie odrzuty (greylisting)" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "Statystyki" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "Nie znaleziono binarki rrdtool." -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Średni ruch (wiadomości/minutę)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "Wysłane wiadomości" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "Odebrane wiadomości" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "Odbite wiadomości" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "Odrzucone wiadomości" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "wiadomości zawirusowane" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "wiadomości spam" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "wiadomości opóźnione (greylisting)" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Średnia normalna wielkość ruchu (bajtów/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "Ilość odebranych danych" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "Ilość wysłanych danych" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Ruch e-mail" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Średnia ilość tworzonych kont (konto/godzina)" @@ -3273,183 +3573,194 @@ msgstr "Zastosuj" msgid "No statistics available" msgstr "Brak dostępnych statysty" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Dzień" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Tydzień" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Miesiąc" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Rok" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Własne" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Unknown graphic set" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Unknown graphic set" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Nieprawudłowy przedział czasowy" -#: 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 "Informacje o koncie osobistym" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Katalog nie znaleziony." -#: 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 "Brak dokumentu dla tego użytkownika" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "Poświadczenia PDF" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." msgstr "Generuj dokumenty tylko podczas zakładania konta" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Magazyn dokumentów" -#: 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 "Lokalizacja gdzie zapisywać dokumenty" -#: 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 "Ścieżka do lokalizacji, gdzie będą zapisywane PDF'y" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Opcje bezpieczeństwa" -#: 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 "Usuwaj dokumenty po ich pierwszym pobraniu" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" -msgstr "Automatycznie usuwaj dokumenty jak tylko zostaną pobranie przez ten interfejs" +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +msgid "" +"Automatically delete a document just after its first download from this " +"interface" +msgstr "" +"Automatycznie usuwaj dokumenty jak tylko zostaną pobranie przez ten " +"interfejs" -#: 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 "Generuj dokumenty tylko podczas zakładania konta" -#: 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." -msgstr "Generuj nowy dokument tylko wtedy, kiedy nowe konto jest zakładane. Jeśli ustawione na nie, to nowy dokument będzie tworzony przy każdej zmianie hasła." +#: 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 "" +"Generuj nowy dokument tylko wtedy, kiedy nowe konto jest zakładane. Jeśli " +"ustawione na nie, to nowy dokument będzie tworzony przy każdej zmianie " +"hasła." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Opcje dostosowania" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Tytuł" -#: 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 "Tytuł dokumentu" -#: 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 "URL panelu Web" -#: 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 "URL panelu Modoboa" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Własna wiadomość" -#: 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 "Dodatkowa wiadomość która pojawi się na końcu dokumentu." -#: 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 "Załącz ustawienia połączenia dla programu pocztowego klienta" -#: 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 "Załącz wymagane do konfiguracji, informacje o połączeniu SMTP i IMAP " -#: 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 "Adres serwera SMTP" -#: 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 "Adres serwera SMTP (nazwa hosta lub IP)" -#: 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 "Port serwera SMTP" -#: 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 "Port nasłuchujący serwera SMTP" -#: 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 "Zabezpieczenia połączenia SMTP" -#: 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 "Mechanizm zabezpieczenia połączenia" -#: 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 "Adres serwera IMAP" -#: 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 "Adres serwera IMAP (nazwa hosta lub IP)" -#: 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 "Port serwera IMAP" -#: 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 "Port nasłuchujący serwera IMAP" -#: 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 "Zabezpieczenie połączenia IMAP" @@ -3457,17 +3768,17 @@ msgstr "Zabezpieczenie połączenia IMAP" msgid "PDF credentials" msgstr "Poświadczenia PDF" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "Poświadczenia PDF" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Powered by Modoboa - Mail hosting made simple" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3478,11 +3789,11 @@ msgstr "" "\n" "Drogi użytkowniku %s, ten dokument zawiera dane uwierzytelniające które będzeisz potrzebował to połączenia się. Zapoznaj się z nim i usuń go najszybciej jak to możliwe.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Panel web:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3492,31 +3803,38 @@ msgstr "" "Pod tym adresem możesz online przeczytać swoje wiadomości, stworzyć filtry lub zarządzać\n" " listą kontaktów.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Proszę zmienić swoje hasło!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "konfiguracją PC/Tabletu/Smartfonu:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "Użyj tych ustawień w swoim komputerze, tablecie lub telefonie." -#: 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 "Pobieranie danych uwierzytelniających użytkownika w formacie PDF" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "Poświadczenia PDF" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "Nie można utworzyć katalogu do przechowywania PDF'ów (%s)" @@ -3525,29 +3843,184 @@ msgstr "Nie można utworzyć katalogu do przechowywania PDF'ów (%s)" msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "Nie można utworzyć katalogu do przechowywania PDF'ów (%s)" -#: 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 "Osiągnięto limit: %s" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "Osiągnięto limit: %s" + +#: 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 code is invalid" +msgid "This date is over" +msgstr "Data z przeszłości" + +#: 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 "Musi być większa niż data początkowa" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Autoamtyczne odpowiedzi" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Włącz auto-odpowiedzi od tej daty. Format : RRRR-MM-DD GG:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Do" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Włącz auto-odpowiedzi do tej daty Format : RRRR-MM-DD GG:mm:ss" + +#: 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 "" +"Zawartość Twojej odpowiedzi. Możesz używać następujących zmiennych, które " +"zostaną automatycznie zastąpione odpowiednią wartością: %(name)s, " +"%(fromdate)s, %(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Automatyczny limit czasu odpowiedzi" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Limit w sek. pomiędzie dwiema auto-odpowiedziami dla tego samego odbiorcy" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Domyślny temat" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Jestem niedostępny" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "Domyślny temat używany dla automatycznych autoodpowiedzi" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Domyślna zawartość" + +#: 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 "" +"Aktualnie jestem niedostępny. Odpowiem po powrocie.\n" +"\n" +"Pozdrawiam,\n" +"%(name)s\n" + +#: 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 "" +"Domyślna zawartość dla automatycznych auto-odpowiedzi. Macro '%(name)s' " +"zostanie zastąpione przez pełną nazwę użytkownika." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Wadomość auto-odpowiedź" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Automatyczna odpowidź" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "temat" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Temat, który się pojawi w wysłanych wiadomościach" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "zawartość" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Zawartość, która pojawi się w wysłanych wiadomościach" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Włącz/Wyłącz auto-odpowiedzi" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "Zdefiniuj wiadmość wysyłaną kiedy jesteś niedostępny" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Auto reply message updated successfully." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 #, fuzzy #| msgid "Relay settings" msgid "Transport settings" msgstr "Ustawienia przekazywania" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "adres hosta docelowego" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "docelowy port hosta" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "sprawdź odbiorców" @@ -3617,16 +4090,24 @@ msgstr "Zapomniane hasło?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Twoje hasło zostało zapisane. Teraz możesz się zalogować." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Twoje hasło zostało zapisane. Teraz możesz się zalogować." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Zmień hasło" #: 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 "Link resetowania hasła jest niepoprawny, być może został już użyty. Wykonaj nowy reset hasła. " +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Link resetowania hasła jest niepoprawny, być może został już użyty. Wykonaj " +"nowy reset hasła. " #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3637,19 +4118,35 @@ msgid "Resend code" msgstr "Ponowne wysłanie kodu" #: 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 "

            Wysłaliśmy do Ciebie instrukcje n/t ustawienia hasła, na adres który podałeś. Wkrótce powinieneś je odebrać.

            Jeżeli nie otrzymałeś wiadomości, upewnij się że wprowadziłeś właściwy adres email, oraz sprawdź folder spamu.

            " +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 "" +"

            Wysłaliśmy do Ciebie instrukcje n/t ustawienia hasła, na adres który " +"podałeś. Wkrótce powinieneś je odebrać.

            Jeżeli nie otrzymałeś " +"wiadomości, upewnij się że wprowadziłeś właściwy adres email, oraz sprawdź " +"folder spamu.

            " #: 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 "Aby rozpocząć proces nadania nowego hasła dla konta %(username)s kliknij link poniżej:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Aby rozpocząć proces nadania nowego hasła dla konta %(username)s kliknij " +"link poniżej:" #: 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 "Jeżeli kliknięcie w powyższy link nie działa, proszę skopiować i wkleić adres w nowym oknie przeglądarki." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Jeżeli kliknięcie w powyższy link nie działa, proszę skopiować i wkleić " +"adres w nowym oknie przeglądarki." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3668,22 +4165,21 @@ msgstr "Resetowanie hasła Modoboa" msgid "Invalid value" msgstr "Zła wartość" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "wzorzec" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "usługa" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "następny krok" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "Osiągnięto limit: %s" +#~ msgid "An alias with this name already exists." +#~ msgstr "Alias z taką nazwą już istnieje" #~ msgid "Generate PDF documents containing users' credentials" #~ msgstr "Generuj dokumenty PDF zawierające dane uwierzytelniające użytkowników" diff --git a/modoboa/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/locale/pt_BR/LC_MESSAGES/django.po index 21d0e0af3..bbb005884 100644 --- a/modoboa/locale/pt_BR/LC_MESSAGES/django.po +++ b/modoboa/locale/pt_BR/LC_MESSAGES/django.po @@ -21,7 +21,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: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/language/pt_BR/)\n" @@ -31,516 +31,623 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem cota." +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." +msgstr "" +"Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem " +"cota." -#: admin/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 "Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem cota." +msgstr "" +"Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem " +"cota." -#: 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 "Não pode ser maior do que a cota de domínio" -#: 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 "Permissão negada." -#: 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 "Este campo é obrigatório" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Lista dos domínios administrados (somente revendedores e administradores de domínio)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Lista dos domínios administrados (somente revendedores e administradores de " +"domínio)." -#: 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 "Não permitido para este perfil." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Deve ser igual ao endereço completo da conta" -#: 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 "Este campo é obrigatório." -#: 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 "Domínio local {} não existe" -#: 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 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "O usuário '%s' já existe" + +#: 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 "O usuário '%s' já existe" -#: 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 "Deve ser um inteiro positivo" -#: 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 "Diretório não encontrado." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Diretório não encontrado." -#: 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 não encontrado, por favor, verifique se ele está instalado." -#: 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 "Defina pelo menos uma rede ou endereço autorizado" -#: 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 "Um caixa de mensagens é obrigatória" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Desconhecido" -#: 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 "Você não tem acesso a esse domínio" -#: 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 "Você não pode deletar seu próprio domínio" -#: 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ínios" -#: 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 "Habilitar checagens 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 "Checar se todo domínio tem um registro MX válido" -#: 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 válidos" -#: 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 "Uma lista de IP ou endereços de rede devem ser compatíveis com todas as entradas MX. Um a será enviado caso alguma entrada não respeitar isso." +#: admin/app_settings.py: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 "" +"Uma lista de IP ou endereços de rede devem ser compatíveis com todas as " +"entradas MX. Um a será enviado caso alguma entrada não respeitar isso." -#: admin/app_settings.py: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 "Novos domínios devem usar MX (s) autorizados" -#: 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 "Impedir a criação de um novo domínio se o registro MX não usar um dos endereços definidos." +#: admin/app_settings.py: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 "" +"Impedir a criação de um novo domínio se o registro MX não usar um dos " +"endereços definidos." -#: admin/app_settings.py: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 "Habilitar verificação 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 "Habilitar verificação 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 "Checar se todo domínio tem um registro MX válido" -#: 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 "Habilitar checagens 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 "Checar se todo domínio tem um registro MX válido" -#: 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 "Habilitar checagens 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 "Checar se todo domínio tem um registro MX válido" -#: 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 "Habilitar checagens 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 "Checar se todo domínio tem um registro MX válido" -#: 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 "Habilitar checagens 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 "Checar cada domínio em relação aos principais provedores DNSBL." -#: 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 "Diretório de armazenamento de chaves 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 "Caminho absoluto do diretório onde as chaves privadas DKIM serão armazenadas. Certifique-se de que este diretório pertença ao usuário root e não seja legível pelo mundo externo." +#: admin/app_settings.py: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 "" +"Caminho absoluto do diretório onde as chaves privadas DKIM serão " +"armazenadas. Certifique-se de que este diretório pertença ao usuário root e " +"não seja legível pelo mundo externo." -#: admin/app_settings.py:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "Comprimento padrão da chave 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 "Comprimento padrão em bits para chaves DKIM recém-geradas." -#: 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 "Cota padrão do domínio" -#: 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 "Cota padrão (em MB) aplicada para novos domínios sem nenhum valor especificado. Um valor de 0 indica que não existe cota." +#: admin/app_settings.py: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 "" +"Cota padrão (em MB) aplicada para novos domínios sem nenhum valor " +"especificado. Um valor de 0 indica que não existe cota." -#: admin/app_settings.py: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 "Cota padrão do domínio" -#: 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 "Caixas de correios" -#: 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 "Tratar caixas de mensagens no sistema de arquivos." -#: 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 "Renomeia ou remove caixas de mensagens do sistema de arquivos quando elas são renomeadas ou removidas dentro do 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 "" +"Renomeia ou remove caixas de mensagens do sistema de arquivos quando elas " +"são renomeadas ou removidas dentro do 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 "Cota padrão da caixa de correio" -#: 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 "Cota padrão para caixas de correio (em MB) aplicadas a domínios recém criados sem nenhum valor especificado. Um valor de 0 significa sem cota." +#| 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 "" +"Cota padrão para caixas de correio (em MB) aplicadas a domínios recém " +"criados sem nenhum valor especificado. Um valor de 0 significa sem cota." -#: admin/app_settings.py: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 "Cota padrão da caixa de correio" -#: 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 "Remoção automática da conta" -#: 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 "Quando uma caixa de correio é removida, também remove a conta associada" +msgstr "" +"Quando uma caixa de correio é removida, também remove a conta associada" -#: admin/app_settings.py:178 admin/app_settings.py:426 +#: admin/app_settings.py:174 admin/app_settings.py:488 msgid "Automatic domain/mailbox creation" msgstr "Criação automática de domínio/caixa de correio" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Criar um domínio e uma caixa de correio quando uma conta é automaticamente criada." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Criar um domínio e uma caixa de correio quando uma conta é automaticamente " +"criada." -#: admin/app_settings.py: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 "Criar um alias quando uma caixa de correio é renomeada" -#: 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 "Crie um alias usando o endereço antigo quando uma caixa de correio for renomeada." +msgstr "" +"Crie um alias usando o endereço antigo quando uma caixa de correio for " +"renomeada." -#: admin/app_settings.py: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 "Cota padrão para caixas de correio (em MB) aplicadas a domínios recém criados sem nenhum valor especificado. Um valor de 0 significa sem cota." +#| 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 "" +"Cota padrão para caixas de correio (em MB) aplicadas a domínios recém " +"criados sem nenhum valor especificado. Um valor de 0 significa sem cota." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administração" -#: 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ínio" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Domínio de relay" -#: 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 "Fechar" -#: 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 "Nome de usuário" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." -msgstr "O nome de usuário. Deve ser um endereço de e-mail válido para usuários simples ou administradores com uma caixa de mensagens." +#: 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 "" +"O nome de usuário. Deve ser um endereço de e-mail válido para usuários " +"simples ou administradores com uma caixa de mensagens." -#: admin/forms/account.py: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 "Função" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Escolher" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Qual nível de permissão terá esse usuário" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Senha aleatória" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." -msgstr "Gerar uma senha aleatória. Se você estiver atualizando esta conta e marcar essa opção, uma nova senha será gerada." +#: 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 "" +"Gerar uma senha aleatória. Se você estiver atualizando esta conta e marcar " +"essa opção, uma nova senha será gerada." -#: admin/forms/account.py: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 "Senha" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Confirmação" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Para verificação, digite a mesma senha que a anterior." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Ativado" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Apenas super administradores estão liberados para este modo" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Os dois campos de senha não coincidiram." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Você não pode desabilitar seu própria conta" -#: 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 "Criar um alias usando o endereço antigo" -#: 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 "Cota" -#: admin/forms/account.py:236 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgstr "Cota em MB para esta caixa de mensagens. Defina um valor customizado ou use o padrão do domínio. Deixe em branco para definir um valor ilimitado (não permitido para administradores de domínios)." +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "" +"Cota em MB para esta caixa de mensagens. Defina um valor customizado ou use " +"o padrão do domínio. Deixe em branco para definir um valor ilimitado (não " +"permitido para administradores de domínios)." -#: admin/forms/account.py: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(es)" -#: 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(es) desta caixa de e-mail. Indique apenas um endereço por entrada, pressione ENTER para adicionar uma nova entrada. Para criar um catchall alias, apenas insira o nome do domínio (@domain.tld)." +#: admin/forms/account.py: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(es) desta caixa de e-mail. Indique apenas um endereço por entrada, " +"pressione ENTER para adicionar uma nova entrada. Para criar um catchall " +"alias, apenas insira o nome do domínio (@domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Endereços do remetente" -#: 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 "Endereço(s) do remetente adicional(is) para esta conta. O usuário poderá enviar e-mails usando este(s) endereço(s), mesmo que ele(s) não exista(m) localmente. Indique um endereço por entrada. Pressione ENTER para adicionar uma nova entrada." +#: admin/forms/account.py: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 "" +"Endereço(s) do remetente adicional(is) para esta conta. O usuário poderá " +"enviar e-mails usando este(s) endereço(s), mesmo que ele(s) não exista(m) " +"localmente. Indique um endereço por entrada. Pressione ENTER para adicionar " +"uma nova entrada." -#: admin/forms/account.py: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ínio não existe" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Domínio local não existe" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domínio(s)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domínio(s) que o usuário administra" -#: 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 "Geral" -#: 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 "Perfil" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Correio" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Permissões" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Conta atualizada" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nova conta" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Conta criada" @@ -553,71 +660,88 @@ msgid "Email address" msgstr "Endereço de e-mail" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "O endereço alias. Para criar um alias de captura, basta digitar o nome de domínio (@domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"O endereço alias. Para criar um alias de captura, basta digitar o nome de " +"domínio (@domain.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Destinatários" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Endereços que este alias vai apontar. Indique apenas um endereço por entrada, pressione ENTER para adicionar uma nova entrada." +#: 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 "" +"Endereços que este alias vai apontar. Indique apenas um endereço por " +"entrada, pressione ENTER para adicionar uma nova entrada." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Nenhum destinatário definido" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Tipo" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias(es) para esse domínio. Indique apenas um nome por entrada, pressione ENTER para adicionar uma nova entrada." +#: 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(es) para esse domínio. Indique apenas um nome por entrada, pressione " +"ENTER para adicionar uma nova entrada." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:52 +#: admin/forms/domain.py:57 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem cota." +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem " +"cota." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias de domínio" -#: 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 "Já existe um %s com este nome" -#: 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 "Você não pode definir cota ilimitada." -#: 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ínio" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Criar um administrador de domínio" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Criar automaticamente um administrador para este domínio" -#: 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 @@ -626,51 +750,55 @@ msgstr "Criar automaticamente um administrador para este domínio" msgid "Name" msgstr "Nome" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "O nome de administrador. Não inclua aqui o nome de domínio. Ele será automaticamente adicionado." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"O nome de administrador. Não inclua aqui o nome de domínio. Ele será " +"automaticamente adicionado." -#: 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 "Criar alias" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Criar automaticamente aliases padrão para este domínio" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Formato inválido" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domínio alterado" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opções" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Novo domínio" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domínio criado" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Separador" @@ -678,23 +806,23 @@ msgstr "Separador" msgid "Recipient(s)" msgstr "Destinatário(s)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Indique um ou mais destinatários separados por uma ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Manter cópias locais" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Encaminhar mensagens e armazenar cópias em sua caixa de correio local" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Selecione um arquivo" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Continuar em caso de erro" @@ -702,104 +830,105 @@ msgstr "Continuar em caso de erro" msgid "Don't treat duplicated objects as error" msgstr "Não tratar como erro objetos duplicados" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Criptografar senhas" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Marcar essa opção se as senhas contidas no seu arquivo estão criptografadas" +msgstr "" +"Marcar essa opção se as senhas contidas no seu arquivo estão criptografadas" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Falha ao importar a conta (%s): domínio não existe" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Caixa de e-mail {} já existente" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Falha na importação de conta (%s): valor de cota errado" -#: admin/handlers.py: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 "Identidades" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Encaminhar" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Um caixa de mensagens é obrigatória" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Você não tem permissão para importar domínios" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Você não tem permissão para importar aliases de domínio." -#: admin/lib.py: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 MX record found for this domain." msgid "No DNS record found for %s" msgstr "Nenhum registro MX foi encontrado para este domínio." -#: admin/lib.py:202 +#: admin/lib.py:204 #, fuzzy, python-format #| msgid "No MX record found for this domain." msgid "No %(type)s record for %(name)s" msgstr "Nenhum registro MX foi encontrado para este domínio." -#: admin/lib.py: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 #, fuzzy, python-brace-format #| msgid "Invalid quota value for domain '{}'" msgid "Invalid IP address format for {domain}; {addr}" msgstr "Valor de cota inválida para o domínio '{}'" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "O objeto já existe: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objetos importados com sucesso" -#: 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 "" @@ -808,27 +937,27 @@ 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 #, fuzzy #| msgid "Domain {} has no MX record" msgid "Domain has no MX record" msgstr "O domínio {} não possui registro MX" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "O domínio {} não possui registro MX" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 #, fuzzy #| msgid "MX records of {}" msgid "Invalid MX record: {}" msgstr "Registro MX para {}" -#: 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 "O registro MX para o domínio {0} é inválido: {1}" @@ -837,160 +966,157 @@ msgstr "O registro MX para o domínio {0} é inválido: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] Problema(s) de MX para o domínio {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] Problema(s) de DNSBL para o domínio {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domínio não encontrado." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Um alias para esse nome já existe" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "endereço" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "O endereço 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 "ativado" -#: 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 "Verificar para ativar o alias" -#: 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 "Descrição" -#: 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 "Expira em" -#: 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 "Endereço inválido" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Destinatário local {}@{} não encontrado" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Linha inválida: %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 "nome" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Nome do domínio" -#: 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 "Marque para ativar esse domínio" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Habilitar verificação DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Marque para habilitar verificações DNS para este domínio" -#: 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 "Linha inválida" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 #, fuzzy #| msgid "No MX record found for this domain." msgid "{}: no authorized MX record found for domain" msgstr "Nenhum registro MX foi encontrado para este domínio." -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Valor de cota inválida para o domínio '{}'" -#: 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 "Valor padrão de cota inválido para caixas de correio do domínio '{}'" -#: 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 "Valor padrão de cota para caixas de correio não pode ser maior que a cota do domínio" +msgstr "" +"Valor padrão de cota para caixas de correio não pode ser maior que a cota do" +" domínio" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Nome de alias" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "alvo" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Esse alias aponta para o domínio" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Domínio desconhecido %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Endereço da caixa de correio (sem a parte @meu.dominio)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Falha ao recuperar a localização da caixa de mensagens (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Uma cota é requerida" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -1000,8 +1126,9 @@ msgstr "Cota do domínio excedida" #: 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 "Fechar" @@ -1050,9 +1177,9 @@ msgstr "Quantidade" #: 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 "Alias de domínios" @@ -1087,7 +1214,7 @@ msgstr "Criado" msgid "Last login" msgstr "Último login" -#: 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 "E-mail secundário" @@ -1096,7 +1223,7 @@ msgstr "E-mail secundário" msgid "Not defined" msgstr "Não definido" -#: 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 "Número de telefone" @@ -1174,7 +1301,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 "Data" @@ -1200,9 +1327,9 @@ msgstr "Data de criação" msgid "Last modification date" msgstr "Data da última modificação" -#: 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 "Alias de caixas de correio" @@ -1261,11 +1388,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 "Não" @@ -1273,7 +1401,7 @@ msgstr "Não" 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 "Sim" @@ -1286,7 +1414,7 @@ msgid "Administrators" msgstr "Administradores" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Remover essa persmissão" @@ -1323,13 +1451,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 "De" #: 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 "Para" @@ -1360,9 +1488,10 @@ msgstr "desabilitado" msgid "Automatically forward emails to another address" msgstr "Encaminhar e-mails automaticamente para outro endereço" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Atualizar" @@ -1379,12 +1508,38 @@ msgid "Fullname/Recipient" msgstr "Nome completo/Destinatário" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " -msgstr "Forneça um arquivo CSV onde as linhas respeitem um dos seguintes formatos:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

            O primeiro elemento de cada linha é obrigatório e deve ser igual a um dos valores anteriores.

            Você pode usar um carácter diferente como separador.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " +msgstr "" +"Forneça um arquivo CSV onde as linhas respeitem um dos seguintes formatos: " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

            O primeiro elemento de cada linha é " +"obrigatório e deve ser igual a um dos valores anteriores.

            Você pode " +"usar um carácter diferente como separador.

            " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " -msgstr "Proveja um arquivo CSV onde as linhas respeitem um dos seguintes formatos:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

            O primeiro elemento de cada linha é obrigatório e deve ser igual a um dos valores anteriores.

            Você pode usar um carácter diferente como separador.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " +msgstr "" +"Proveja um arquivo CSV onde as linhas respeitem um dos seguintes formatos: " +"
            • account; loginname; password; first name; last name; enabled; " +"group; address; quota; [, domain, ...]
            • alias; address; " +"enabled; recipient; recipient; ...

            O primeiro elemento de" +" cada linha é obrigatório e deve ser igual a um dos valores anteriores.

            " +"

            Você pode usar um carácter diferente como separador.

            " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1412,7 +1567,8 @@ msgstr "Atualizado" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Este IP não corresponde a nenhum dos MXs válidos definidos nos parâmetros" +msgstr "" +"Este IP não corresponde a nenhum dos MXs válidos definidos nos parâmetros" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1420,108 +1576,125 @@ msgstr "Nenhum registro MX foi encontrado para este domínio." #: 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 "O Modoboa detectou que o domínio %(domain)s está listado pelos seguintes provedores DNSBL:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"O Modoboa detectou que o domínio %(domain)s está listado pelos seguintes " +"provedores DNSBL:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." -msgstr "A reputação do domínio será afetada e há uma chance que os e-mails vindos dele sejam considerados spam. Você deve contatar aqueles provedores e pedir a eles a retirada do(s) endereço(s) IP(s) detectado(s) da lista." +msgid "" +"The domain's reputation will be affected and there is a chance that emails " +"coming from it are considered as spam. You should contact those providers " +"and ask them to unlist detected IP address(es)." +msgstr "" +"A reputação do domínio será afetada e há uma chance que os e-mails vindos " +"dele sejam considerados spam. Você deve contatar aqueles provedores e pedir " +"a eles a retirada do(s) endereço(s) IP(s) detectado(s) da lista." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "O Modoboa detectou que o domínio %(domain)s não possui registro MX válido." +msgstr "" +"O Modoboa detectou que o domínio %(domain)s não possui registro MX válido." #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Busca" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "Ativado" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "Ativada" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Listardomínios" -#: 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 "Listar quotas" -#: 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 "Importar" -#: 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 "Exportar" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Listar identidades" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Ver as identidades de domínios" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "alias de domínio" -#: 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 "Editar {}" -#: 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 "Remover %s?" -#: 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 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No AAAA record for %s" +msgstr "Nenhum registro MX foi encontrado para este domínio." + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Um alias para esse nome já existe" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Criar" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Novo alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias criado" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias modificado" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Aliases apagados" @@ -1531,36 +1704,36 @@ msgstr[1] "Aliases apagados" msgid "MX records of {}" msgstr "Registro MX para {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Sumário DNSBL para {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domínio deletado" msgstr[1] "Domínios deletados" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Exportar identidades" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exportar domínios" -#: 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 "Solicitação inválida" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Conta deletada" msgstr[1] "Contas deletadas" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importar domínios" @@ -1568,87 +1741,74 @@ msgstr "Importar domínios" msgid "Import identities" msgstr "Importar identidades" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Encaminhamento atualizado" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "MX records of {}" msgid "Invalid PIN code" msgstr "Registro MX para {}" -#: 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 "Local" - -#: 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 "Perfil do usuário" - -#: 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 "Sintaxe inválida" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Número de ciclos inválido" - -#: 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 "Senha antiga" -#: 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 "Local" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Perfil do usuário" + +#: 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 "Sintaxe inválida" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Número de ciclos inválido" + +#: 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 "Usuário '%s' autenticado com sucesso" -#: 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 "" @@ -1658,452 +1818,502 @@ 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 "Autenticação" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Tipo de autenticação" -#: 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 "O backend usado para autenticação" -#: 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 "Esquema padrão de senha" -#: 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 "Esquema usado para criptografar as senhas das caixas de correio" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Ciclos" -#: 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 "Número de ciclos a ser usado (utilizado apenas por sha256crypt e sha512crypt). Deve estar entre 1000 e 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 "" +"Número de ciclos a ser usado (utilizado apenas por sha256crypt e " +"sha512crypt). Deve estar entre 1000 e 999999999, inclusive." -#: 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 "Atualização da senha do usuário no login para usar o esquema de senha padrão" +msgstr "" +"Atualização da senha do usuário no login para usar o esquema de senha padrão" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Senha padrão" -#: 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 "Senha padrão para contas criadas automaticamente." -#: 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 "Tamanho de senha aleatório" -#: 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 "Tamanho das senhas geradas aleatoriamente." -#: 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 "Configurações do 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 "Endereço do servidor" -#: 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 "O endereço IP do nome DNS do servidor 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 "Porta do servidor" -#: 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 "O número da porta TCP usada pelo servidor 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 "Usar conexão segura" -#: 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 "Usar uma conexão SSL/STARTTLS para acessar o servidor 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 "Active Directory" -#: 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 "Informe se o servidor LDAP é um Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Grupos de administradores" -#: 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 "Membros dos grupos do LDAP Posix serão criados como administradores de domínio. Use o caractere ';' para separar grupos." +#: 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 "" +"Membros dos grupos do LDAP Posix serão criados como administradores de " +"domínio. Use o caractere ';' para separar grupos." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Tipo de grupo" -#: 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 "O tipo de grupo LDAP para ser usado em seu diretório." -#: 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 "Base de pesquisa de grupos" -#: 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 "O nome distinto da base de pesquisa usada para encontrar grupos" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atributo de senha" -#: 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 "O atributo usado para armazenar senhas de usuários" -#: 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 "Método de autenticação" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Pesquisar e vincular" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Vinculação direta" -#: 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 "Escolha o método de autenticação para usar" -#: 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 "Vincular 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 "O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para vincular anonimamente" +#: 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 "" +"O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para" +" vincular anonimamente" -#: 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 "Vincular senha" -#: 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 "A senha usada quando vincular ao servidor LDAP (com 'Vincular 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 "Base de pesquisa de usuários" -#: 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 "O nome distinto da base de pesquisa usada para encontrar usuários" -#: 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 "Filtro de pesquisa" -#: 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 "Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser válida, deve estar entre parênteses." +#: 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 "" +"Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser " +"válida, deve estar entre parênteses." -#: 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 "Usar template 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 "A template usada para construir um DN de usuário. Deve conter um placeholder (por ex: %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"A template usada para construir um DN de usuário. Deve conter um placeholder" +" (por ex: %(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 "Painel" -#: 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 "Feed RSS personalizado" -#: 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 "Mostrar um feed RSS personalizado para revendedores e administradores de domínio" +msgstr "" +"Mostrar um feed RSS personalizado para revendedores e administradores de " +"domínio" -#: 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 "Ocultar widget de apresentação" -#: 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 "Ocultar recursos widget para revendedores e administradores de domínio" +msgstr "" +"Ocultar recursos widget para revendedores e administradores de domínio" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Notificações" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Endereço do remente" -#: 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 "Endereço de e-mail usado para enviar notificações." -#: 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 Pública" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Habilitar comunicação" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Habilitar comunicação com API pública do 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 "Verificar novas versões" -#: 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 "Verificar automaticamente se uma nova versão está disponível" -#: 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 "Enviar estatísticas" -#: 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 "Enviar estatísticas à API pública do Modoboa (contadores e extensões utilizadas)" +msgstr "" +"Enviar estatísticas à API pública do Modoboa (contadores e extensões " +"utilizadas)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Diversos" -#: 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 "Limite de conta inativa" -#: 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 "Limite de conta inativa" -#: 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 "Uma conta com uma data de login maior que este limite (em dias) será considerado como inativo" +#: 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 "" +"Uma conta com uma data de login maior que este limite (em dias) será " +"considerado como inativo" -#: 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 "Intervalo de verificação de verificações de topo" -#: 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 "Intervalo entre checagem de notificações (em segundos)" -#: 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 "Idade máxima do registro de log" -#: 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 "A idade máxima em dias de um registro de log" -#: 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 "Itens por página" -#: 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 "Número de itens exibidos por página" -#: 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 "Redirecionamento de topo padrão" -#: 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 "O redirecionamento padrão usado quando nenhuma aplicação é especificada" +msgstr "" +"O redirecionamento padrão usado quando nenhuma aplicação é especificada" -#: 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 "Você tem USE_TZ definido como falso, isso pode resultar em problemas durante as transições entre horário de verão / inverno (ou seja, o mesmo local de tempo que ocorre duas vezes devido a alteração do relógio)." +#: 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 "" +"Você tem USE_TZ definido como falso, isso pode resultar em problemas durante" +" as transições entre horário de verão / inverno (ou seja, o mesmo local de " +"tempo que ocorre duas vezes devido a alteração do relógio)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Definir `USE_TZ = TRUE em settings.py" @@ -2135,31 +2345,31 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Senha antiga" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nova senha" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Senha antiga não confere" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Senhas não conferem" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Ativar acesso à 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 "" @@ -2176,20 +2386,20 @@ msgstr "modificado" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s pelo(s) usuário(s) %(user)s" -#: 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 "removido" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "usuário {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "comando de gerenciamento" @@ -2197,137 +2407,139 @@ msgstr "comando de gerenciamento" msgid "You can't delete your own account" msgstr "Você não pode remover sua própria conta" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Uma ou mais atualizações disponíveis" -#: 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 "Permitir acesso a caixa de correio" -#: core/models.py:54 -msgid "Allow this administrator to access user mailboxes" -msgstr "Permitir que este administrador acesse as caixas de correio de usuários" - #: core/models.py:57 +msgid "Allow this administrator to access user mailboxes" +msgstr "" +"Permitir que este administrador acesse as caixas de correio de usuários" + +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "senha" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "idioma" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Linguagem padrão para visualizar mensagens" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Endereço de e-mail alternativo, use-o para recuperar a conta caso precise" +msgstr "" +"Endereço de e-mail alternativo, use-o para recuperar a conta caso precise" -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Falha ao atualizar senha: módulo LDAP não instalado" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "conta" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Desconhecido" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Você não pode importar uma conta com um papel maior que o seu" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "O usuário simples '%s' deve ter um endereço de e-mail válido" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "os campos nome de usuário e e-mail não diferem de '%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] "Senha deve conter ao menos {} dígitos." msgstr[1] "Senha deve conter ao menos {} dígitos." -#: 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] "Senha deve conter ao menos {} letras minúsculas." msgstr[1] "Senha deve conter ao menos {} letras minúsculas." -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 #, fuzzy #| msgid "Applications" msgid "Appication secret" @@ -2354,8 +2566,12 @@ msgid "Latest news" msgstr "Últimas notícias" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Visite o weblog oficial para mais informação." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Visite o weblog " +"oficial para mais informação." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2367,8 +2583,12 @@ msgstr "Controle seu acesso a API Modoboa" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Uma documentação da API está disponível aqui." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Uma documentação da API está disponível aqui." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2379,7 +2599,7 @@ msgstr "Token de acesso a API" msgid "Hello %(user)s." msgstr "Olá %(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 "Informação" @@ -2393,7 +2613,8 @@ msgstr "Uma ou mais atualizações disponíveis" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Checar a seguinte lista a procura de componente(s) que pode ser atualizado" +msgstr "" +"Checar a seguinte lista a procura de componente(s) que pode ser atualizado" #: core/templates/core/information.html:10 msgid "Applications" @@ -2411,7 +2632,7 @@ msgstr "Última versão" msgid "Active users" msgstr "Usuários ativos" -#: 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 "Logs" @@ -2437,7 +2658,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: 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 "Parâmetros" @@ -2454,12 +2675,12 @@ msgstr "Salvar" msgid "Modoboa settings" msgstr "Configurações do 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 "Configurações" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Preferências" @@ -2479,7 +2700,7 @@ msgstr "Atualizar sua informação pessoal" 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 #, fuzzy #| msgid "Security options" msgid "Security" @@ -2492,7 +2713,9 @@ msgid "Two-Factor authentication" msgstr "O backend usado para autenticação" #: 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 @@ -2504,18 +2727,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" @@ -2523,12 +2755,18 @@ msgstr "" msgid "Disable 2FA" msgstr "Desabilitado" +#: 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 @@ -2547,69 +2785,75 @@ msgstr "Diretório não encontrado." msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Criptografar senhas" + #: 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 "Sair" -#: 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 "Core do Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parêmetros salvos" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "Seu usuário e senha não conferem. Por favor tente novamente." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Usuário '{}' saiu com sucesso" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Perfil atualizado" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Preferências salvas" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Acesso atualizado" -#: 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 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "Ferramentas DMARC" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Mostrar relatório DMARC para {}" -#: 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 "" @@ -2645,11 +2889,11 @@ msgstr "Erro temporário" msgid "Permanent error" msgstr "Erro permanente" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Política" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Falha leve" @@ -2725,95 +2969,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Fontes desconhecidas / Ameaças" -#: 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 "" @@ -2842,7 +3086,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 @@ -2858,7 +3104,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2866,151 +3112,159 @@ 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 "Acesso atualizado" -#: 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 "IMAP migration" msgid "Enable IMAP Migration" msgstr "Migração IMAP" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "Migração IMAP" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "Configurações OfflineIMAP" -#: 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 "Tarefas de sincronismo concorrentes" -#: 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 "O número máximo de tarefas de sincronismo concorrentes" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "Configurações OfflineIMAP" -#: 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 "Configurações OfflineIMAP" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "Configurações OfflineIMAP" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "Migração IMAP" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Falha ao conectar no servidor IMAP: %s" -#: 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 "Migração IMAP" -#: 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 "Habilitar comunicação com API pública do Modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "A conexão com o banco de dados %s não está configurada" -#: 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 "Permissão negada: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Permissão negada" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Digite um nome de domínio válido" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Digite um endereço de e-mail válido" @@ -3020,133 +3274,174 @@ msgstr "Digite um endereço de e-mail válido" msgid "Submit" msgstr "Enviar" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Falha ao atualizar a senha: {}" -#: 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 "Assunto" -#: 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 "Limite padrão por administrador" -#: 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 "Habilitar limites por administrador" -#: 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 "Habilitar ou desabilitar limites por administrador" -#: 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 "Administradores de domínio" -#: 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 "Número máximo de administradores de domínio permitido para um novo administrador. (0 a negar qualquer criação, -1 para permitir criações ilimitadas)" +#: 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 "" +"Número máximo de administradores de domínio permitido para um novo " +"administrador. (0 a negar qualquer criação, -1 para permitir criações " +"ilimitadas)" -#: 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 "Número máximo de domínios permitidos para um novo administrador. (0 a negar qualquer criação, -1 para permitir criações ilimitadas)" +#: 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 "" +"Número máximo de domínios permitidos para um novo administrador. (0 a negar " +"qualquer criação, -1 para permitir criações ilimitadas)" -#: 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 "O número máximo de alias de domínio permitidos para um novo administrador. (0 a negar qualquer criação, -1 para permitir criações ilimitadas)" +#: 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 "" +"O número máximo de alias de domínio permitidos para um novo administrador. " +"(0 a negar qualquer criação, -1 para permitir criações ilimitadas)" -#: 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 "Número máximo de caixas de correio permitido para um novo administrador. (0 a negar qualquer criação, -1 para permitir criações ilimitadas)" +#: 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 "" +"Número máximo de caixas de correio permitido para um novo administrador. (0 " +"a negar qualquer criação, -1 para permitir criações ilimitadas)" -#: 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 "Número máximo de alias permitidos para um novo administrador. (0 a negar qualquer criação, -1 para permitir criações ilimitadas)" +#: 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 "" +"Número máximo de alias permitidos para um novo administrador. (0 a negar " +"qualquer criação, -1 para permitir criações ilimitadas)" -#: 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 "Limite padrão por domínio" -#: 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 "Habilitar limites por domínio" -#: 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 "Habilitar ou desabilitar limites por domínio" -#: 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 "Número máximo de administradores permitido para um novo domínio (0 para negar qualquer adição, -1 para permitir adições ilimitadas)." +#: 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 "" +"Número máximo de administradores permitido para um novo domínio (0 para " +"negar qualquer adição, -1 para permitir adições ilimitadas)." -#: 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 "Número máximo de apelidos (aliases) permitido para um novo domínio (0 para negar qualquer adição, -1 para permitir adições ilimitadas)." +#: 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 "" +"Número máximo de apelidos (aliases) permitido para um novo domínio (0 para " +"negar qualquer adição, -1 para permitir adições ilimitadas)." -#: 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 "Número máximo de contas permitido para um novo domínio (0 para negar qualquer adição, -1 para permitir adições ilimitadas)." +#: 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 "" +"Número máximo de contas permitido para um novo domínio (0 para negar " +"qualquer adição, -1 para permitir adições ilimitadas)." -#: 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 "Número máximo de apelidos (aliases) permitido para um novo domínio (0 para negar qualquer adição, -1 para permitir adições ilimitadas)." +#: 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 "" +"Número máximo de apelidos (aliases) permitido para um novo domínio (0 para " +"negar qualquer adição, -1 para permitir adições ilimitadas)." -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limites" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Número máximo de domínio que esse usuário pode criar" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Número máximo de aliases de domínio que esse usuário pode criar" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Número máximo de caixas de correios que esse usuário pode criar" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Número máximo de aliases de caixas de correio que esse usuário pode criar" +msgstr "" +"Número máximo de aliases de caixas de correio que esse usuário pode criar" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Número máximo de administradores de domínios que esse usuário pode criar" +msgstr "" +"Número máximo de administradores de domínios que esse usuário pode criar" -#: 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 "Quantidade máxima permitida de apelidos (aliases) para este domínio" -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Número " -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Quantidade máxima de apelidos (aliases) permitido para este domínio" -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "Quantidade máxima de administradores permitido para este domínio" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Limite inválido" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Recursos" @@ -3159,11 +3454,11 @@ msgstr "%s: limite alcançado" msgid "Not enough resources" msgstr "Sem recursos suficientes" -#: 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 "Você não tem permissão para definir valores ilimitados" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "ilimitado" @@ -3172,99 +3467,99 @@ msgstr "ilimitado" msgid "Resources usage" msgstr "Uso de recursos" -#: 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 "Caminho para o arquivo de log" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Caminho para o arquivo de log usado para coletar estatísticas" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Diretório para armazenar arquivos RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Caminho para o diretório onde os arquivos RRD são armazenados" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" msgid "Show greylisted messages" msgstr "mensagens rejeitadas" -#: 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 "Estatísticas" -#: 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 "Tráfego médio (msgs/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "mensagens enviadas" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "mensagens recebidas" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "mensagens devolvidas" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "mensagens rejeitadas" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "mensagens enviadas" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "mensagens enviadas" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "mensagens rejeitadas" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Tamanho médio de tráfego (bytes/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "tamanho recebido" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "tamanho enviado" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Tráfego de e-mail" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3292,183 +3587,195 @@ msgstr "Aplicar" msgid "No statistics available" msgstr "Não há estatísticas disponíveis" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Dia" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Semana" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Mês" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Ano" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Customizado" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Conjunto gráfico desconhecido" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Conjunto gráfico desconhecido" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Período customizado inválido" -#: 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 "Informações da conta pessoal" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Diretório não encontrado." -#: 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 "Nenhum documento disponível para esse usuário" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "PDF credentials" msgid "Enable PDF credentials" msgstr "Credenciais PDF" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 #, fuzzy #| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." msgstr "Apenas gerar documentos na criação da conta" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Armazenamento de documentos" -#: 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 "Diretório para salvar documentos" -#: 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 "Caminho para o diretório onde os arquivos PDF serão salvos" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Opções de segurança" -#: 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 "Deletar documentos após o primeiro download" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" -msgstr "Excluir automaticamente um documento logo após a sua primeira transferência a partir desta 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 "" +"Excluir automaticamente um documento logo após a sua primeira transferência " +"a partir desta interface" -#: 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 "Apenas gerar documentos na criação da conta" -#: 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." -msgstr "Gerar um novo documento apenas quando uma nova conta é criada. Se definido como não, um novo documento será criado cada vez que uma senha é atualizada." +#: 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 "" +"Gerar um novo documento apenas quando uma nova conta é criada. Se definido " +"como não, um novo documento será criado cada vez que uma senha é atualizada." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Opções de customização" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Título" -#: 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 "Título do documento" -#: 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 "URL do painel web" -#: 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 "URL do painel web do Modoboa" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Mensagem personalizada" -#: 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 "Uma mensagem personalizada irá aparecer no fim do documento" -#: 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 "Incluir configurações de conexão do cliente de email" -#: 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" -msgstr "Incluir informações de conexão SMTP e IMAP necessárias para configurar um cliente de e-mail, um tablet ou um telefone" +#: 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 "" +"Incluir informações de conexão SMTP e IMAP necessárias para configurar um " +"cliente de e-mail, um tablet ou um telefone" -#: 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 "Endereço do servidor SMTP" -#: 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 "Endereço do servidor SMTP (hostname ou IP)" -#: 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 "Porta do servidor SMTP" -#: 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 "Conexão segura SMTP" -#: 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 "Mecanismo de conexão segura" -#: 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 "Endereço do servidor IMAP" -#: 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 "Porta do servidor IMAP" -#: 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 "Conexão segura IMAP" @@ -3476,17 +3783,17 @@ msgstr "Conexão segura IMAP" msgid "PDF credentials" msgstr "Credenciais PDF" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 #, fuzzy #| msgid "PDF credentials" msgid "PDF Credentials" msgstr "Credenciais PDF" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Desenvolvido por Modoboa - Hospedagem de email de forma simples" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3499,11 +3806,11 @@ msgstr "" "para conectar ao Modoboa. Verifique o conteúdo e destrua\n" "este documento assim que possível.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Painel web:" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" @@ -3513,31 +3820,38 @@ msgstr "" "Aqui você poderá ver seus emails a qualquer momento online, crie filtros ou gerencie \n" "seus contatos.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Por favor mude sua senha!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "Configuração para PC/Tablet/Smartphone:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "Use essas configurações para seu computador, tablet ou telefone." -#: 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 "Recuperar credenciais do usuário como um documento PDF" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 #, fuzzy #| msgid "PDF credentials" msgid "Download PDF credentials" msgstr "Credenciais PDF" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 #, fuzzy -#| msgid "Failed to create the directory that will contain PDF documents (%s)" +#| msgid "" +#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "Falha ao criar o diretório que conterá documentos PDF (%s)" @@ -3546,27 +3860,188 @@ msgstr "Falha ao criar o diretório que conterá documentos PDF (%s)" msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "Falha ao criar o diretório que conterá documentos PDF (%s)" -#: 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: limite alcançado" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: limite alcançado" + +#: 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 "Esta data já passou" + +#: 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 "Deve ser maior que a data de início" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Respostas automáticas" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Ativar auto resposta a partir dessa data. Formato: YYYY-MM-DD HH:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Até" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Ativar auto resposta até essa data. Formato: YYYY-MM-DD HH:mm:ss" + +#: 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 "" +"O conteúdo da sua resposta. Você pode usar as seguintes variáveis, que serão" +" automaticamente substituídas pelo valor apropriado: %(name)s, %(fromdate)s," +" %(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Tempo de resposta automática" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Timeout em segundos entre duas respostas automáticas para o mesmo " +"destinatário" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Assunto padrão" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Ausente" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" +"Assunto padrão usado quando uma mensagem de auto-resposta é criada " +"automaticamente" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Conteúdo padrão" + +#: 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 "" +"Eu estou atualmente fora e responderei assim que retornar.\n" +"\n" +"Saudações,\n" +"%(name)s\n" + +#: 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 "" +"Conteúdo padrão usado quando uma mensagem de auto-resposta é criada " +"automaticamente. A macro '%(name)s' será trocada pelo nome completo do " +"usuário." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Mensagem de auto resposta" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Auto resposta" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "assunto" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "O assunto que aparecerá nos e-mails enviados" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "conteúdo" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "O conteúdo que parecerá nos e-mails enviados" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Ativar/Desativar sua resposta automática" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "" +"Defina uma mensagem para enviar automaticamente quando você estiver ausente" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Resposta automática atualizada com sucesso." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "Serviço não suportado" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Configurações de transporte" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Transporte" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "Endereço do host alvo" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "Porta do host alvo" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "verificar destinatários" @@ -3636,7 +4111,9 @@ msgstr "Esqueceu a senha?" #: 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 @@ -3644,7 +4121,9 @@ msgid "Change password" msgstr "Alterar senha" #: 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 @@ -3656,18 +4135,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 @@ -3687,22 +4174,21 @@ msgstr "Redefinição de senha do Modoboa" msgid "Invalid value" msgstr "Valor inválido" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "modelo" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "serviço" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "próximo salto" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: limite alcançado" +#~ msgid "An alias with this name already exists." +#~ msgstr "Um alias para esse nome já existe" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Um conjunto de ferramentas para fácil integração do DMARC" @@ -3711,7 +4197,6 @@ msgstr "próximo salto" #~ msgstr "Gerar documentos em PDF contendo as credenciais dos usuários" #, fuzzy -#~| msgid "IMAP migration" #~ msgid "IMAP migrations" #~ msgstr "Migração IMAP" @@ -3744,20 +4229,19 @@ msgstr "próximo salto" #~ msgstr "Nome do arquivo" #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No {type} record found for MX {mx}" #~ msgstr "Nenhum registro MX foi encontrado para este domínio." #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No AAAA record found for MX %(domain)s" #~ msgstr "Nenhum registro MX foi encontrado para este domínio." #~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota." -#~ msgstr "Cota em MB compartilhada entre caixas de correio. Um valor de 0 significa sem cota." +#~ msgstr "" +#~ "Cota em MB compartilhada entre caixas de correio. Um valor de 0 significa " +#~ "sem cota." #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No DNS records found without MX for %(domain)s" #~ msgstr "Nenhum registro MX foi encontrado para este domínio." diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/locale/pt_PT/LC_MESSAGES/django.po index 0249466d9..232dbcb31 100644 --- a/modoboa/locale/pt_PT/LC_MESSAGES/django.po +++ b/modoboa/locale/pt_PT/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: 2014-12-29 12:51+0000\n" "Last-Translator: Mike C. \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/modoboa/language/pt_PT/)\n" @@ -23,526 +23,622 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." +msgstr "" +"Quota (em MB) a aplicar a domínios recentemente criados sem valor " +"especificado. Um valor de 0 implica sem quota." -#: admin/api/v1/serializers.py:42 +#: admin/api/v1/serializers.py:49 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgstr "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem quota." +msgstr "" +"Quota (em MB) a aplicar a domínios recentemente criados sem valor " +"especificado. Um valor de 0 implica sem quota." -#: 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 #, fuzzy #| msgid "Permissions" msgid "Permission denied." msgstr "Permissões" -#: 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 "Este campo é obrigatório" -#: 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 #, fuzzy #| msgid "A mailbox is required" msgid "This field is required." msgstr "É necessária uma caixa de correio" -#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:520 +#: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 #, fuzzy #| msgid "Domain does not exist" msgid "Local domain {} does not exist" msgstr "O domínio não existe" -#: 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 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "O utilizador '%s' já existe" + +#: admin/api/v1/serializers.py:565 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this domain." msgstr "Não tem acesso a este domínio" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this mailbox." msgstr "Não tem acesso a este domínio" -#: 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 "O utilizador '%s' já existe" -#: 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 "Tem de ser um inteiro, positivo" -#: 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 #, fuzzy #| msgid "Domain modified" msgid "Directory not found." msgstr "Domínio alterado" -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Domain modified" msgid "Directory non-writable" msgstr "Domínio alterado" -#: 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 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "É necessária uma caixa de correio" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown domain %s" msgid "Unknown status" msgstr "Domínio desconhecido: %s" -#: 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ão tem acesso a este domínio" -#: 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ão é possível eliminar o seu próprio domínio" -#: 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ínios" -#: 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 "Quota pré-definida para o domínio" -#: 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 "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem 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 "" +"Quota (em MB) a aplicar a domínios recentemente criados sem valor " +"especificado. Um valor de 0 implica sem quota." -#: 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 "Quota pré-definida para o domínio" -#: 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 "Caixas de Correio" -#: 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 "Lidar com caixas de correio no sistema de ficheiros" -#: 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 "Renomear ou remover as caixas de correio no sistema de ficheiros quando estas são renomeadas no 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 "" +"Renomear ou remover as caixas de correio no sistema de ficheiros quando " +"estas são renomeadas no 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 #, fuzzy #| msgid "Default domain quota" msgid "Default mailbox quota" msgstr "Quota pré-definida para o domínio" -#: admin/app_settings.py:156 +#: admin/app_settings.py:151 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created mailboxes with no value specified. A value of 0 means no quota." -msgstr "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created mailboxes with no " +"value specified. A value of 0 means no quota." +msgstr "" +"Quota (em MB) a aplicar a domínios recentemente criados sem valor " +"especificado. Um valor de 0 implica sem quota." -#: admin/app_settings.py:162 admin/app_settings.py:413 +#: admin/app_settings.py:157 admin/app_settings.py:467 #, fuzzy #| msgid "Default domain quota" msgid "Default mailbox sending limit" msgstr "Quota pré-definida para o domínio" -#: 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 "Remoção automática de conta" -#: 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 "Ao remover uma caixa de correio estará também a remover a conta associada" +msgstr "" +"Ao remover uma caixa de correio estará também a remover a conta associada" -#: 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 "Criação automatica de domino/caixa de correio" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Criar um dominio e uma caixa de correio quando uma conta é criada automátiamente." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "" +"Criar um dominio e uma caixa de correio quando uma conta é criada " +"automátiamente." -#: admin/app_settings.py: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 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgstr "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created domains with no " +"value specified. A value of 0 means no quota." +msgstr "" +"Quota (em MB) a aplicar a domínios recentemente criados sem valor " +"especificado. Um valor de 0 implica sem quota." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administração" -#: 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ínio" -#: admin/constants.py:29 +#: admin/constants.py:24 #, fuzzy #| msgid "domain" msgid "Relay domain" msgstr "domínio" -#: 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 "Nome de Utilizador" -#: 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 "Papel" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Escolher" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Que nível de permissões terá o utilizador" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 #, fuzzy #| msgid "Invalid request" msgid "Random password" msgstr "Pedido inválido" -#: 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 "Password" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Confirmação" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Repita a password acima, para verificação." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Ativo" -#: 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 "Os dois campos de password não são idênticos." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Não pode desativar a sua própria conta" -#: 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 "" -#: 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 "Quota" -#: admin/forms/account.py:236 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgstr "Quota em MB para esta caixa de correio. Definir uma valor personalizado ou usar o valor predefinido pelo domínio. Deixar em branco para definir uma valor ilimitado (não permitido para administradores do domínio)." +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "" +"Quota em MB para esta caixa de correio. Definir uma valor personalizado ou " +"usar o valor predefinido pelo domínio. Deixar em branco para definir uma " +"valor ilimitado (não permitido para administradores do domínio)." -#: admin/forms/account.py: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(es)" -#: admin/forms/account.py:256 +#: admin/forms/account.py:269 #, fuzzy -#| msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. Use the '*' character to create a 'catchall' alias (ex: *@domain.tld)." -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Alias(es) desta caixa de correio. Indique apenas um endereço por entrada, clique ENTER para adicionar uma nova entrada. Use o '*' para criar um alias 'catchall' (ex: *@domain.tld)." +#| msgid "" +#| "Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +#| "to add a new input. Use the '*' character to create a 'catchall' alias (ex: " +#| "*@domain.tld)." +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Alias(es) desta caixa de correio. Indique apenas um endereço por entrada, " +"clique ENTER para adicionar uma nova entrada. Use o '*' para criar um alias " +"'catchall' (ex: *@domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 #, fuzzy #| msgid "Invalid request" msgid "Sender addresses" msgstr "Pedido inválido" -#: admin/forms/account.py:265 +#: admin/forms/account.py:278 #, fuzzy -#| msgid "Mailbox(es) this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgid "Additional sender address(es) for this account. The user will be allowed to send emails using this address, even if it does not exist locally. Indicate one address per input. Press ENTER to add a new input." -msgstr "Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um endereço por entrada, pressionar ENTER para acrescentar uma nova entrada." +#| msgid "" +#| "Mailbox(es) this alias will point to. Indicate only one address per input, " +#| "press ENTER to add a new input." +msgid "" +"Additional sender address(es) for this account. The user will be allowed to " +"send emails using this address, even if it does not exist locally. Indicate " +"one address per input. Press ENTER to add a new input." +msgstr "" +"Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um " +"endereço por entrada, pressionar ENTER para acrescentar uma nova entrada." -#: admin/forms/account.py: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 "O domínio não existe" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 #, fuzzy #| msgid "Domain does not exist" msgid "Local domain does not exist" msgstr "O domínio não existe" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domínio(s)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domínio(s) administrado pelo utilizador" -#: 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 "Geral" -#: 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 "Perfil" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Correio" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Permissões" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Conta actualizada" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nova conta" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Conta criada" @@ -558,74 +654,96 @@ msgstr "Endereço de e-mail" #: admin/forms/alias.py:25 #, fuzzy -#| msgid "The alias address (without the domain part). For a 'catch-all' address, just enter an * character." -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "O endereço do alias (sem a parte do domínio). Para um endereço 'cath-all', digite apenas o caractere *" +#| msgid "" +#| "The alias address (without the domain part). For a 'catch-all' address, just" +#| " enter an * character." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"O endereço do alias (sem a parte do domínio). Para um endereço 'cath-all', " +"digite apenas o caractere *" #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Destinatários" -#: admin/forms/alias.py:33 +#: admin/forms/alias.py:34 #, fuzzy -#| msgid "Mailbox(es) this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um endereço por entrada, pressionar ENTER para acrescentar uma nova entrada." +#| msgid "" +#| "Mailbox(es) this alias will point to. Indicate only one address per input, " +#| "press ENTER to add a new input." +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um " +"endereço por entrada, pressionar ENTER para acrescentar uma nova entrada." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Sem destinatário definido" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Tipo" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias(es) deste domínio. Indicar apenas um nome por entrada, pressionar ENTER para acrescentar uma nova entrada." +#: 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(es) deste domínio. Indicar apenas um nome por entrada, pressionar " +"ENTER para acrescentar uma nova entrada." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:52 +#: admin/forms/domain.py:57 #, fuzzy -#| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem quota." +#| msgid "" +#| "Default quota (in MB) applied to freshly created domains with no value " +#| "specified. A value of 0 means no quota." +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Quota (em MB) a aplicar a domínios recentemente criados sem valor " +"especificado. Um valor de 0 implica sem quota." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "'Alias' de domínio" -#: 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 "Já existe um(a) %s com este nome. " -#: 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 "domínio" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Criar um administrador de domínio" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Criar automaticamente um administrador para este domínio" -#: 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 @@ -634,55 +752,59 @@ msgstr "Criar automaticamente um administrador para este domínio" msgid "Name" msgstr "Nome" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "O nome do administrador. Não inclua o nome do domínio já que este será automaticamente anexado." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"O nome do administrador. Não inclua o nome do domínio já que este será " +"automaticamente anexado." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 #, fuzzy #| msgid "Create a domain administrator" msgid "Generate a random password for the administrator." msgstr "Criar um administrador de domínio" -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 #, fuzzy #| msgid "Create a domain administrator" msgid "Create a mailbox for the administrator." msgstr "Criar um administrador de domínio" -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr " Criar aliases" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Criar automaticamente aliases para este domínio" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Formato inválido" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domínio alterado" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opções" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Novo domínio" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domínio criado" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Separador" @@ -690,23 +812,24 @@ msgstr "Separador" msgid "Recipient(s)" msgstr "Destinatário(s)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Indicar um ou mais destinatários separados por ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Conservar cópias locais" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "Reencaminhar mensagens e armazenar cópias na sua caixa de correio local" +msgstr "" +"Reencaminhar mensagens e armazenar cópias na sua caixa de correio local" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Escolha um ficheiro" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Continua com erro" @@ -714,106 +837,107 @@ msgstr "Continua com erro" msgid "Don't treat duplicated objects as error" msgstr "Não tratar objetos duplicados como erro" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Passwords encriptadas" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Marque esta opção se as senhas contidas no arquivo não são encriptadas" +msgstr "" +"Marque esta opção se as senhas contidas no arquivo não são encriptadas" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Importação da conta falhou (%s): domínio não existe" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 #, fuzzy #| msgid "Mailbox %s already exists" msgid "Mailbox {} already exists" msgstr "Caixa de correio %s já existe" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Importação da conta falhou (%s): valor para quota inválido" -#: admin/handlers.py: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 "Identidades" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Reencaminhar" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "É necessária uma caixa de correio" -#: admin/lib.py:138 +#: admin/lib.py:141 #, fuzzy #| msgid "You can't delete your own domain" msgid "You are not allowed to import domains" msgstr "Não é possível eliminar o seu próprio domínio" -#: admin/lib.py: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 #, fuzzy, python-brace-format #| msgid "Invalid quota value for domain '%s'" msgid "Invalid IP address format for {domain}; {addr}" msgstr "Valor de quota inválido para o dominio '%s'" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Este objeto já existe: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objetos importados com sucesso" -#: 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 "" @@ -822,25 +946,25 @@ 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 #, fuzzy #| msgid "Domain modified" msgid "Domain has no MX record" msgstr "Domínio alterado" -#: 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 "" @@ -849,168 +973,163 @@ 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 #, fuzzy #| msgid "Domain modified" msgid "Domain not found." msgstr "Domínio alterado" -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Já existe um 'alias' com este nome" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "endereços" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 #, fuzzy #| msgid "The alias name" msgid "The alias address." msgstr "O nome do '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 "ativo" -#: 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 "Marcar para ativar este alias" -#: 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 "Descrição" -#: 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 "alias" -#: admin/models/alias.py:159 +#: admin/models/alias.py:177 #, fuzzy #| msgid "Invalid request" msgid "Invalid address" msgstr "Pedido inválido" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 #, fuzzy #| msgid "Local recipient %s not found" msgid "Local recipient {}@{} not found" msgstr "O destinatário local %s não foi encontrado" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Linha inválida: %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 "nome" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "O nome do domínio" -#: 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 "Marcar para ativar este domínio" -#: 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 #, fuzzy #| msgid "Check to activate this domain" msgid "Check to enable DNS checks for this domain" msgstr "Marcar para ativar este domínio" -#: admin/models/domain.py: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 "Linha inválida" -#: 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 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "{}: invalid quota value for domain" msgstr "Valor de quota inválido para o dominio '%s'" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "{}: invalid default mailbox quota value for domain" msgstr "Valor de quota inválido para o dominio '%s'" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "{}: default mailbox quota cannot be greater than domain quota" msgstr "Valor de quota inválido para o dominio '%s'" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "O nome do 'alias'" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "alvo" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "O domínio para o qual este alias irá apontar" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Domínio desconhecido: %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Endereços das caixas de correio (sem a parte @domain.tld)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Falha ao recuperar a localização da caixa de correio (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "É necessário uma quota" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain created" msgid "{}: domain quota exceeded" @@ -1020,8 +1139,9 @@ msgstr "Domínio criado" #: 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 "Fechar" @@ -1076,9 +1196,9 @@ msgstr "Quantidade" #: 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 "Aliases de domínio" @@ -1121,7 +1241,7 @@ msgstr "Criar" msgid "Last login" msgstr "Último login" -#: 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 "" @@ -1132,7 +1252,7 @@ msgstr "" msgid "Not defined" msgstr "Sem destinatário definido" -#: 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 "" @@ -1224,7 +1344,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 "Data" @@ -1250,9 +1370,9 @@ msgstr "Data de criação" msgid "Last modification date" msgstr "Data da última modificação" -#: 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 "Aliases para caixas de correio" @@ -1310,11 +1430,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 "Não" @@ -1322,7 +1443,7 @@ msgstr "Não" 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 "Sim" @@ -1337,7 +1458,7 @@ msgid "Administrators" msgstr "Administradores" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Remover esta permissão" @@ -1380,13 +1501,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 "" +msgstr "De" #: 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 "" @@ -1419,9 +1540,10 @@ msgstr "inativo" msgid "Automatically forward emails to another address" msgstr "Reenviar automaticamente e-mails para outro endereço" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Actualizar" @@ -1440,11 +1562,24 @@ msgid "Fullname/Recipient" msgstr "Nome Completo / Destinatário" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1483,11 +1618,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 @@ -1499,92 +1639,98 @@ msgstr "" msgid "Search" msgstr "Procurar" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Listar domínios" -#: 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 "Listar as quotas" -#: 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 "Importar" -#: 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 "Exportar" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Listar identidades" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Visualizar as identidades do domínio" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "'Alias' de domínio" -#: 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 "Eliminar %s?" -#: 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 +#, fuzzy, python-format +#| msgid "Domain modified" +msgid "No AAAA record for %s" +msgstr "Domínio alterado" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Já existe um 'alias' com este nome" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Criar" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Novo 'alias'" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias criado" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "'Alias' modificado" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 #, fuzzy #| msgid "Alias created" msgid "Alias deleted" @@ -1596,36 +1742,36 @@ msgstr[1] "Alias criado" 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] "Domínio criado" msgstr[1] "Domínios eliminados" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Exportar identidades" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exportar domínios" -#: 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 "Pedido inválido" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Conta eliminada" msgstr[1] "Contas eliminadas" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importar domínios" @@ -1633,89 +1779,76 @@ msgstr "Importar domínios" msgid "Import identities" msgstr "Importar identidades" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Reencaminhamento atualizado" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "Invalid line" msgid "Invalid PIN code" msgstr "Linha inválida" -#: 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 +#, fuzzy +#| msgid "Old password" +msgid "Invalid password" +msgstr "Password antiga" + +#: 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 "Local" -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (fraco)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (fraco)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (fraco)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (fraco)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "plain (fraco)" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 +#: core/api/v2/serializers.py:164 core/app_settings.py:24 #, fuzzy #| msgid "Profile" msgid "User profile" msgstr "Perfil" #: 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 "Sintax inválida" -#: 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 "Número de linhas inválido" -#: 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 -#, fuzzy -#| msgid "Old password" -msgid "Invalid password" -msgstr "Password antiga" - -#: 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 "O utilizador '%s' fez login com sucesso" -#: 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 "" @@ -1725,485 +1858,527 @@ 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 "Autenticação" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Tipo de autenticação" -#: 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 "Backend usado para autenticação" -#: 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 "Esquema pré-definido para passwords" -#: 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 "Esquema usado para encriptar as passwords das caixas de correio" -#: 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 #, fuzzy #| msgid "Default password scheme" msgid "Update password scheme at login" msgstr "Esquema pré-definido para passwords" -#: 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 #, fuzzy #| msgid "Default password scheme" msgid "Default password" msgstr "Esquema pré-definido para passwords" -#: 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 #, fuzzy #| msgid "Bind password" msgid "Random password length" msgstr "Password para bind" -#: 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 #, fuzzy #| msgid "Default password scheme" msgid "Update password service URL" msgstr "Esquema pré-definido para passwords" -#: 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 "Definições do serviço de directório" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Endereço do Servidor" -#: 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 "O endereço IP do servidor de DNS do servidor 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 "Porta do Servidor" -#: 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 " A porta TCP usada pelo servidor 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 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Endereço do Servidor" -#: core/app_settings.py:159 core/app_settings.py:822 +#: core/app_settings.py:156 core/app_settings.py:869 #, fuzzy #| msgid "The IP address or the DNS name of the LDAP server" msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "O endereço IP do servidor de DNS do servidor LDAP" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Porta do Servidor" -#: core/app_settings.py:166 core/app_settings.py:829 +#: core/app_settings.py:163 core/app_settings.py:879 #, fuzzy #| msgid "The TCP port number used by the LDAP server" msgid "The TCP port number used by the LDAP secondary server" msgstr " A porta TCP usada pelo servidor LDAP" -#: 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 "Utilizar uma ligação segura" -#: core/app_settings.py:174 core/app_settings.py:835 +#: core/app_settings.py:171 core/app_settings.py:888 #, fuzzy #| msgid "Use an SSL/TLS connection to access the LDAP server" msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "Usar SSL/TLS na ligaçao de acesso ao servidor 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 "Active Directory" -#: 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 "Especificar se o servidor LDAP e um Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Grupos de Administrador" -#: 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 "Os membros destes grupos \"LDAP Posix\" serão criados como administradores de domínio. Use ';' para separar os grupos." +#: 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 "" +"Os membros destes grupos \"LDAP Posix\" serão criados como administradores " +"de domínio. Use ';' para separar os grupos." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 #, fuzzy #| msgid "Group name" msgid "Group type" msgstr "Nome do grupo" -#: 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 "Base para pesquisa de Grupos" -#: 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 "O nome único para a base de pesquisa, usado para encontrar grupos" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atributo de palavra-passe" -#: 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 "O atributo utilizado para armazenar palavras-passe" -#: core/app_settings.py:220 core/app_settings.py:869 +#: core/app_settings.py:214 core/app_settings.py:943 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Método de autenticação" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Método de autenticação" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Procurar e vincular (bind)" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "\"Direct bind\"" -#: 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 "Escolher o método de autenticação" -#: 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 "\"Bind 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 "O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario para \"bind\" anónimo" +#: 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 "" +"O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario " +"para \"bind\" anónimo" -#: 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 "Password para bind" -#: 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 "A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind 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 "Base para pesquisa de utilizadores" -#: 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 "O nome único a usar para pesquisa de utilizadores" -#: 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 "Filtro de pesquisa" -#: 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 "Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre parênteses para ser válido" +#: 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 "" +"Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre " +"parênteses para ser válido" -#: 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 "Template DN de utilizador" -#: 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 "O template usado para construir o DN (nome único). Deve apenas conter um 'placeholder' (ex: %(user)s) " +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"O template usado para construir o DN (nome único). Deve apenas conter um " +"'placeholder' (ex: %(user)s) " -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "Definições do serviço de directório" -#: 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 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "Template DN de utilizador" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, fuzzy, 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 an account's DN. It should contain one placeholder (ie. %(user)s)" -msgstr "O template usado para construir o DN (nome único). Deve apenas conter um 'placeholder' (ex: %(user)s) " +#| msgid "" +#| "The template used to construct a user'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 "" +"O template usado para construir o DN (nome único). Deve apenas conter um " +"'placeholder' (ex: %(user)s) " -#: 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 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Atributo de palavra-passe" -#: 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 #, fuzzy #| msgid "Authentication" msgid "Notifications" msgstr "Autenticação" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 #, fuzzy #| msgid "Server address" msgid "Sender address" msgstr "Endereço do Servidor" -#: 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 "Procurar novas versões" -#: 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 "Verifica automaticamente se existem novas versões" -#: 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 "Vários" -#: 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 "Intervalo de tempo para verificar notificações (no topo)" -#: core/app_settings.py:479 core/app_settings.py:1101 +#: core/app_settings.py:462 core/app_settings.py:1292 #, fuzzy #| msgid "Interval between two top notification checks" msgid "Interval between two top notification checks (in seconds)" msgstr "Intervalo de tempo de verificação entre duas notificações (no topo)" -#: 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 "Idade máxima do registo no log" -#: 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 "A idade maxima do registo de um log, em dias, e de" -#: 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 "Itens por página" -#: 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 "Número de itens apresentados por página" -#: 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 "Redirecionamento pré-definido" -#: 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 "O redirecionamento padrão usado quando nenhuma aplicação se encontra especificada" +msgstr "" +"O redirecionamento padrão usado quando nenhuma aplicação se encontra " +"especificada" -#: 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 "" @@ -2237,33 +2412,33 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Password antiga" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nova password" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Incompatibilidade da password antiga" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Passwords não coincidem" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "" -#: core/forms.py:152 +#: core/forms.py:170 #, fuzzy #| msgid "Authentication" msgid "Verification code" msgstr "Autenticação" -#: core/forms.py:163 +#: core/forms.py:181 #, fuzzy #| msgid "Invalid line" msgid "Invalid code" @@ -2282,21 +2457,21 @@ msgstr "modificado" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s pelo utilizador %(user)s" -#: core/handlers.py:63 +#: core/handlers.py:64 #, fuzzy, python-format #| msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgid "%(object)s '%(name)s' %(action)s by " msgstr "%(object)s '%(name)s' %(action)s pelo utilizador %(user)s" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "apagado" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "" @@ -2304,149 +2479,151 @@ msgstr "" msgid "You can't delete your own account" msgstr "Não pode apagar a sua própria conta" -#: core/handlers.py:131 +#: core/handlers.py:128 #, fuzzy #| msgid "An update is available!" msgid "One or more updates are available" msgstr "Uma nova versão está disponível!" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 #, fuzzy #| msgid "An update is available!" msgid "[modoboa] Update(s) available" msgstr "Uma nova versão está disponível!" -#: 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 "password" -#: core/models.py:60 +#: core/models.py:62 #, fuzzy #| msgid "Prefered language" msgid "language" msgstr "Idioma preferido" -#: core/models.py:63 +#: core/models.py:66 #, fuzzy #| msgid "Prefered language to display pages" msgid "Prefered language to display pages." msgstr "Idioma preferido para exibir páginas" -#: 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 msgid "Failed to update password: LDAP module not installed" msgstr "Falha ao actualizar password: Modulo LDAP não instalado" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "conta" -#: 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 "Não é possível importa uma conta com permissões superiores" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "O simple utilizador '%s' deve ter endereço de e-mail válido" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "Os campos nome de utilizador e endereço de email não deve ser diferente para '%s'" +msgstr "" +"Os campos nome de utilizador e endereço de email não deve ser diferente para" +" '%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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 #, fuzzy #| msgid "Authentication" msgid "Application key" msgstr "Autenticação" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 #, fuzzy #| msgid "Authentication" msgid "Application secret" msgstr "Autenticação" -#: 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 "Authentication" msgid "Appication secret" @@ -2473,7 +2650,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 @@ -2486,7 +2665,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 @@ -2498,7 +2679,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 "Informação" @@ -2536,7 +2717,7 @@ msgstr "Último login" msgid "Active users" msgstr "Utilizadores ativos" -#: 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 "Logs" @@ -2564,7 +2745,7 @@ msgid_plural "" msgstr[0] "Uma nova versão está disponível!" msgstr[1] "Uma nova versão está disponível!" -#: 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 "Parâmetros" @@ -2581,12 +2762,12 @@ msgstr "Guardar" msgid "Modoboa settings" msgstr "Definições do 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 "Definições" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Preferências" @@ -2610,7 +2791,7 @@ msgstr "Atualizar o sua informação pessoal" msgid "Click here to update your password" msgstr "Falha ao actualizar a password: %s" -#: 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 "" @@ -2621,7 +2802,9 @@ msgid "Two-Factor authentication" msgstr "Backend usado para autenticação" #: 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 @@ -2635,30 +2818,45 @@ 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 #| msgid "disabled" msgid "Disable 2FA" msgstr "inativo" +#: 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 @@ -2677,75 +2875,81 @@ msgstr "Domínio alterado" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Passwords encriptadas" + #: 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 "Sair" -#: core/templatetags/core_tags.py:131 +#: core/templatetags/core_tags.py:154 msgid "API" msgstr "" -#: core/utils.py:32 +#: core/utils.py:33 #, fuzzy #| msgid "Welcome to Modoboa" msgid "The core part of Modoboa" msgstr "Benvindo ao Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parâmetros salvos" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "O seu nome de utilizador" -#: core/views/auth.py:135 +#: core/views/auth.py:144 #, fuzzy #| msgid "User '%s' successfully logged in" msgid "User '{}' successfully logged out" msgstr "O utilizador '%s' fez login com sucesso" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Perfil atualizado" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Preferências salvas" -#: core/views/user.py:110 +#: core/views/user.py:118 #, fuzzy #| msgid "Profile updated" msgid "Access updated" msgstr "Perfil atualizado" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "Definições do serviço de directório" -#: 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 #, fuzzy #| msgid "No recipient defined" msgid "Not resolved" @@ -2791,11 +2995,11 @@ msgstr "Porta do Servidor" 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 "" @@ -2877,95 +3081,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 "" @@ -2994,7 +3198,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 @@ -3010,7 +3216,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -3018,91 +3224,99 @@ 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 "Profile updated" msgid "Access denied" msgstr "Perfil atualizado" -#: 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 #, fuzzy #| msgid "Create aliases" msgid "Create Folders" msgstr " Criar aliases" -#: 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 "Definições do serviço de directório" -#: 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 @@ -3111,51 +3325,51 @@ msgstr "" msgid "IMAP migration" msgstr "Administração" -#: 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 #, 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 "A ligação à base de dados %s não está devidamente configurada" -#: 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 "Acesso negado: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Acesso negado" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Introduzir um nome de domínio válido " -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 #, fuzzy #| msgid "Enter a valid domain name" msgid "Enter a valid email address." @@ -3167,165 +3381,201 @@ msgstr "Introduzir um nome de domínio válido " msgid "Submit" msgstr "Enviar" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 #, fuzzy #| msgid "Failed to update password: %s" msgid "Failed to update password: {}" msgstr "Falha ao actualizar a password: %s" -#: 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 "Assunto" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 #, fuzzy #| msgid "Default limits" msgid "Default per-admin limits" msgstr "Limites predefinidos" -#: 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 "Administradores de domínio" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: limits/app_settings.py:29 limits/app_settings.py:163 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo permitido de administradores de domínio para um novo administrador" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo permitido de administradores de domínio para um novo " +"administrador" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: limits/app_settings.py:39 limits/app_settings.py:175 #, fuzzy #| msgid "Maximum number of allowed domains for a new administrator" -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo permitido de domínios para novo administrador" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: limits/app_settings.py:48 limits/app_settings.py:186 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo permitido de aliases de domínio para um novo administrador" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo permitido de aliases de domínio para um novo administrador" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: limits/app_settings.py:58 limits/app_settings.py:198 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo permitido de caixas de correio para novo administrador" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: limits/app_settings.py:67 limits/app_settings.py:210 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo de aliases permitidas para um novo administrador" -#: 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 #, fuzzy #| msgid "Default limits" msgid "Default per-domain limits" msgstr "Limites predefinidos" -#: 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 +#: limits/app_settings.py:94 limits/app_settings.py:248 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo permitido de administradores de domínio para um novo administrador" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo permitido de administradores de domínio para um novo " +"administrador" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: limits/app_settings.py:104 limits/app_settings.py:260 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Número máximo permitido de aliases de domínio para um novo administrador" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Número máximo permitido de aliases de domínio para um novo administrador" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: limits/app_settings.py:114 limits/app_settings.py:272 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "Número máximo permitido de caixas de correio para novo administrador" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: limits/app_settings.py:123 limits/app_settings.py:283 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" msgstr "Número máximo de aliases permitidas para um novo administrador" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limites" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Número máximo de domínios que este utilizador pode criar" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Número máximo de aliases de domínio que este utilizador pode criar" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Número máximo de caixas de correio que este utilizador por criar" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Número máximo de aliases para caixas de correio que este utilizador por criar" +msgstr "" +"Número máximo de aliases para caixas de correio que este utilizador por " +"criar" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Número máximo de administradores de domínio que este utilizador pode criar" +msgstr "" +"Número máximo de administradores de domínio que este utilizador pode criar" -#: 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 #, fuzzy #| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." msgstr "Número máximo de aliases de domínio que este utilizador pode criar" -#: limits/constants.py:46 +#: limits/constants.py:85 #, fuzzy #| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." msgstr "Número máximo de caixas de correio que este utilizador por criar" -#: limits/constants.py:50 +#: limits/constants.py:93 #, fuzzy #| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Número máximo de aliases para caixas de correio que este utilizador por criar" +msgstr "" +"Número máximo de aliases para caixas de correio que este utilizador por " +"criar" -#: limits/constants.py:55 +#: limits/constants.py:102 #, fuzzy #| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." -msgstr "Número máximo de administradores de domínio que este utilizador pode criar" +msgstr "" +"Número máximo de administradores de domínio que este utilizador pode criar" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Limite inválido" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Recursos" @@ -3338,11 +3588,11 @@ msgstr "%s: limite atingido" msgid "Not enough resources" msgstr "Recursos insuficientes" -#: 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ão está autorizado a definir valores ilimitados" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "ilimitado" @@ -3351,99 +3601,99 @@ msgstr "ilimitado" msgid "Resources usage" msgstr "Utilização de recursos" -#: 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 "Caminho para o ficheiro log" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Caminho para o ficheiro de log usado para recolher as estatísticas" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Diretório para armazenar os ficheiros RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Caminho para o diretório onde os ficheiros RRD são guardados" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" msgid "Show greylisted messages" msgstr "mensagens rejeitadas" -#: 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 "Estatísticas" -#: 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 "Trafego em média (msgs/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "mensagens enviadas" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "mensagens recebidas" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "mensagens devolvidas" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "mensagens rejeitadas" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "mensagens enviadas" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "mensagens enviadas" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "mensagens rejeitadas" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Tráfego em média normal por tamanho (bytes/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "tamanho recebido" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "tamanho enviado" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Tráfego de correio" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3471,179 +3721,185 @@ msgstr "Aplicar" msgid "No statistics available" msgstr "Não há estatísticas disponíveis" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Dia" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Semana" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Mês" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "Ano" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Personalizado" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Conjunto de gráficos desconhecido" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown graphic set" msgid "Unknown domain" msgstr "Conjunto de gráficos desconhecido" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Período personalizado inválido" -#: 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 #, fuzzy #| msgid "Domain modified" msgid "Directory is not writable" msgstr "Domínio alterado" -#: 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 "" @@ -3651,15 +3907,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" @@ -3668,38 +3924,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 "" @@ -3708,31 +3970,179 @@ 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: limite atingido" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: limite atingido" + +#: 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 "Esta data ultrapassa" + +#: postfix_autoreply/api/v2/serializers.py:32 postfix_autoreply/forms.py:101 +msgid "Must be greater than start date" +msgstr "Tem de ser posterior à data de inicio." + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Respostas automáticas" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Ative a resposta automática a partir desta data" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Até" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Ativar o seu aviso de ausência até esta data" + +#: 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 "Tempo limite de resposta automática" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" +"Tempo limite em segundos entre duas respostas automáticas para o mesmo " +"destinatário" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Assunto pré-definido" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Estou indisponível" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "Assunto pré-definido, usado nas respostas automáticas." + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Contéudo pré-definido" + +#: 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 "" +"Estou indisponível de momento. Responderei logo que possível.\n" +"\n" +"Melhores cumprimentos,\n" +"%(name)s\n" +"\n" + +#: 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 "Mensagem de resposta automática" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Respostas automáticas" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "assunto" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "O assunto que irá constar nos e-mails enviados" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "conteúdo" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "O conteúdo que irá constar nos e-mails enviados" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Ativar/desativar repostas automáticas" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "Enviar a mensagem automaticamente quando estiver ausente" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Mensagem de resposta automática actualizada com sucesso" + +#: 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 #, fuzzy #| msgid "target host" msgid "target host address" msgstr "endereço de destino" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 #, fuzzy #| msgid "target host" msgid "target host port" msgstr "endereço de destino" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "verificar destinatários" @@ -3804,7 +4214,9 @@ msgstr "password" #: 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 @@ -3814,7 +4226,9 @@ msgid "Change password" msgstr "Nova password" #: 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 @@ -3826,18 +4240,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 @@ -3859,22 +4281,36 @@ msgstr "" msgid "Invalid value" msgstr "Linha inválida" -#: 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 "" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: limite atingido" +#~ msgid "An alias with this name already exists." +#~ msgstr "Já existe um 'alias' com este nome" + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (fraco)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (fraco)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (fraco)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (fraco)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (fraco)" #~ msgid "Secret key" #~ msgstr "Chave secreta" @@ -3886,12 +4322,10 @@ msgstr "" #~ msgstr "A chave deve ter tamanho de 16, 24, ou 32 bytes" #, fuzzy -#~| msgid "Group name" #~ msgid "First name" #~ msgstr "Nome do grupo" #, fuzzy -#~| msgid "Last login" #~ msgid "Last name" #~ msgstr "Último login" @@ -3899,7 +4333,6 @@ msgstr "" #~ msgstr "último login" #, fuzzy -#~| msgid "User '%s' logged out" #~ msgid "User {} logged out" #~ msgstr "O utilizador '%s' fez logout" @@ -3919,12 +4352,10 @@ msgstr "" #~ msgstr "O nome do serviço" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote address (hostname or IP) of this domain" #~ msgstr "Endereço de destino remoto deste domínio" #, fuzzy -#~| msgid "Remote destination of this domain" #~ msgid "Remote port of this domain" #~ msgstr "Endereço de destino remoto deste domínio" @@ -3935,7 +4366,6 @@ msgstr "" #~ msgstr "Analisar" #, fuzzy -#~| msgid "The domain name" #~ msgid "The relay domain name" #~ msgstr "O nome do domínio" @@ -3950,7 +4380,6 @@ msgstr "" #~ msgstr "O domínio '%s' não existe" #, fuzzy -#~| msgid "Invalid format" #~ msgid "Raw format" #~ msgstr "Formato inválido" @@ -3958,15 +4387,24 @@ msgstr "" #~ msgstr "Nome do ficheiro" #, fuzzy -#~| msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." #~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota." -#~ msgstr "Quota (em MB) a aplicar a domínios recentemente criados sem valor especificado. Um valor de 0 implica sem quota." +#~ msgstr "" +#~ "Quota (em MB) a aplicar a domínios recentemente criados sem valor " +#~ "especificado. Um valor de 0 implica sem quota." -#~ msgid "Default quota in MB applied to mailboxes. Leave empty to use the default value." -#~ msgstr "Quota (em MB) aplicada às caixas de correio. Deixe em branco para manter o valor pré-definido." +#~ msgid "" +#~ "Default quota in MB applied to mailboxes. Leave empty to use the default " +#~ "value." +#~ msgstr "" +#~ "Quota (em MB) aplicada às caixas de correio. Deixe em branco para manter o " +#~ "valor pré-definido." -#~ msgid "You can't define a forward to a local destination. Please ask your administrator to create an alias instead." -#~ msgstr "Não é possível definir um reencaminhamento para um destino local. Por favor informe-se junto de um administrador para criar um alias." +#~ msgid "" +#~ "You can't define a forward to a local destination. Please ask your " +#~ "administrator to create an alias instead." +#~ msgstr "" +#~ "Não é possível definir um reencaminhamento para um destino local. Por favor " +#~ "informe-se junto de um administrador para criar um alias." #~ msgid "Quota is greater than the allowed domain's limit (%dM)" #~ msgstr "A quota excede o limite permitido pelo domínio (%dM)" diff --git a/modoboa/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/locale/ro_RO/LC_MESSAGES/django.po index ed1dd63e0..315ecaf1c 100644 --- a/modoboa/locale/ro_RO/LC_MESSAGES/django.po +++ b/modoboa/locale/ro_RO/LC_MESSAGES/django.po @@ -10,498 +10,610 @@ 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: 2021-10-04 13:27+0000\n" "Last-Translator: Simona Iacob \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/" +"language/ro_RO/)\n" "Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: admin/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 "Limită distribuită intre căsuțele postale. Poate fi exprimată in KB, MB (implicit) sau GB. Valoarea 0 reprezintă nelimitat." +#: 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 "" +"Limită distribuită intre căsuțele postale. Poate fi exprimată in KB, MB " +"(implicit) sau GB. Valoarea 0 reprezintă nelimitat." -#: 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 "Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 înseamnă fără cotă." +msgstr "" +"Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 " +"înseamnă fără cotă." -#: 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 "Nu s-au gasit înregistrări MX autorizate pentru acest domeniu" -#: 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 "Nu poate fi mai mare decat cota domeniului" -#: 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 "Permisiune refuzată." -#: 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 "Acest câmp este necesar" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." -msgstr "Lista domenilor administrate (doar reselleri și administratori de domeniu)" +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." +msgstr "" +"Lista domenilor administrate (doar reselleri și administratori de domeniu)" -#: 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 "Ne permis pentru acest rol." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Trebuie să fie egal cu mailbox full_address" -#: 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 "Acest câmp este necesar." -#: 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 "Domeniu local {} nu există" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "O listă de destinatari" -#: 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 "Utilizatorul '%s'  exista deja" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Nu ai acces la acest domeniu." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Nu ai acces la această cutie postală" -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Aici este noua ta parolă Modoboa: {}" -#: 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 "Utilizatorul '%s'  exista deja" -#: 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 "Trebuie să fie un număr întreg pozitiv" -#: 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 "Directorul nu a fost găsit." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Directorul nu a fost găsit." -#: 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 nu a fost găsit, asigurați-vă că este instalat." -#: 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 "Definiți cel puțin o adresă de rețea autorizată" -#: 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 "O căsuță poștală este necesară" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Necunoscut" -#: 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 "Nu aveți acces la acest domeniu" -#: 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 "Nu poți să îți ștergi propriul domeniu" -#: 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 "Domenii" -#: 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 "Activează verificările 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 "Verifică ca fiecare domeniu are asociat un MX valid" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "MX-uri valide" -#: 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 "O listă de IP-uri sau de adrese de rețea care pentru fiecare înregistrare MX ar trebui să se potrivească. O avertizare va fi trimisă dacă o înregistrare nu respectă această conformitate." +#: admin/app_settings.py: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 "" +"O listă de IP-uri sau de adrese de rețea care pentru fiecare înregistrare MX " +"ar trebui să se potrivească. O avertizare va fi trimisă dacă o înregistrare " +"nu respectă această conformitate." -#: admin/app_settings.py: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 "Domeniile noi trebuie să utilizeze MX(-uri) autorizate" -#: 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 "Împiedică crearea unui nou domeniu dacă înregistrarea MX nu utilizează una dintre adresele definite." +#: 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 "" +"Împiedică crearea unui nou domeniu dacă înregistrarea MX nu utilizează una " +"dintre adresele definite." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Activează verificările SPF" + +#: 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 "Activează verificările SPF" -#: 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 "Verificați dacă fiecare domeniu are o înregistrare SPF validă" -#: 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 "Activați verificările DKIM" -#: 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 "Verificați dacă fiecare domeniu cu autentificarea DKIM activată are o înregistrare DNS validă." +msgstr "" +"Verificați dacă fiecare domeniu cu autentificarea DKIM activată are o " +"înregistrare DNS validă." -#: 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 "Activați verificările DMARC" -#: 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 "Verificați dacă fiecare domeniu are o înregistrare DMARC validă" -#: 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 "Activați verificările de autoconfigurare" -#: 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 "Verificați dacă fiecare domeniu are o înregistrare validă pentru autoconfigurare" +msgstr "" +"Verificați dacă fiecare domeniu are o înregistrare validă pentru " +"autoconfigurare" -#: 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 "Activează verificările 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 "Verificați fiecare domeniu folosind furnizorii DNSBL majori" -#: 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 "Servere DNS personalizate" -#: 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 "Utilizează un server DNS personalizat in locul celui local" -#: 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 "Folderul de stocare pentru cheile 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 "Calea absolută a directorului în care vor fi stocate cheile private DKIM. Asigurați-vă că acest director aparține utilizatorului root și nu poate fi citit de orice user." +#: admin/app_settings.py: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 "" +"Calea absolută a directorului în care vor fi stocate cheile private DKIM. " +"Asigurați-vă că acest director aparține utilizatorului root și nu poate fi " +"citit de orice user." -#: admin/app_settings.py:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "Mărimea implicită în caractere a chei 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 "Mărimea implicită în biți pentru o cheie DKIM nou generată" -#: 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 "Cota-parte implicită a domeniului" -#: 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 "Cota implicită (în MB) aplicată domeniilor nou create, care nu au nicio valoare specificată. O valoare de 0 înseamnă că nu există o cotă." +#: admin/app_settings.py: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 "" +"Cota implicită (în MB) aplicată domeniilor nou create, care nu au nicio " +"valoare specificată. O valoare de 0 înseamnă că nu există o cotă." -#: admin/app_settings.py:133 admin/app_settings.py:386 +#: admin/app_settings.py:128 admin/app_settings.py:426 msgid "Default domain sending limit" msgstr "Limita implicită de trimitere a domeniului" -#: 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." -msgstr "Numărul de mesaje pe care domeniile nou create vor putea să le trimită pe zi. Lăsați gol pentru nicio 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 "" +"Numărul de mesaje pe care domeniile nou create vor putea să le trimită pe " +"zi. Lăsați gol pentru nicio limită." -#: 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 "Cutii poștale" -#: 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 "Gestionați cutiile poștale în sistemul de fișiere" -#: 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 "Redenumește sau eliminează căsuțele poștale din sistemul de fișiere atunci când se redenumesc sau se elimină în Modoboa" +#: admin/app_settings.py:142 admin/app_settings.py:448 +msgid "" +"Rename or remove mailboxes on the filesystem when they get renamed or " +"removed within Modoboa" +msgstr "" +"Redenumește sau eliminează căsuțele poștale din sistemul de fișiere atunci " +"când se redenumesc sau se elimină în Modoboa" -#: 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 "Cota implicită pentru cutia poștală" -#: 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." -msgstr "Cota implicită a căsuței poștale (în MB) aplicată căsuțelor poștale nou create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu există cotă." +#: 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 "" +"Cota implicită a căsuței poștale (în MB) aplicată căsuțelor poștale nou " +"create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu " +"există cotă." -#: 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 "Limita implicită de trimitere a căsuței poștale" -#: 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." -msgstr "Numărul de mesaje pe care cutiile poștale nou create vor putea să le trimită pe zi. Lăsați gol pentru nicio 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 "" +"Numărul de mesaje pe care cutiile poștale nou create vor putea să le trimită " +"pe zi. Lăsați gol pentru nicio limită." -#: 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 "Ștergere automată a contului" -#: 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 "Când se șterge o cutie poștală, șterge, de asemenea și contul asociat" -#: 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 "Crearea automată a domeniului / cutiei poștale" -#: admin/app_settings.py:181 admin/app_settings.py:428 +#: admin/app_settings.py:177 admin/app_settings.py:491 msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "Creați un domeniu și o căsuță poștală atunci când un cont este creat automat." +msgstr "" +"Creați un domeniu și o căsuță poștală atunci când un cont este creat automat." -#: 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 "Creați un alias când o cutie poștală este redenumită" -#: 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 "Creați un alias utilizând vechea adresă atunci când o cutie poștală este redenumită." +msgstr "" +"Creați un alias utilizând vechea adresă atunci când o cutie poștală este " +"redenumită." -#: admin/app_settings.py:407 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "Cota implicită a căsuței poștale (în MB) aplicată căsuțelor poștale nou create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu există cotă." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "" +"Cota implicită a căsuței poștale (în MB) aplicată căsuțelor poștale nou " +"create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu " +"există cotă." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administrare" -#: 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 "Domeniu" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Domeniu de relay" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "Deschis" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "Închis" -#: 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 "Utilizator" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." -msgstr "Numele de utilizator. Trebuie sa fie o adresa de e-mail valida pentru tilizatori simpli sau pentru administratori care au casuță poștală." +#: 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 "" +"Numele de utilizator. Trebuie sa fie o adresa de e-mail valida pentru " +"tilizatori simpli sau pentru administratori care au casuță poștală." -#: admin/forms/account.py: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 "Alege" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Ce nivel de permisiune va avea acest utilizator" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Parolă aleatorie" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." -msgstr "Generați o parolă aleatorie. Dacă actualizați acest cont și bifați această casetă, va fi generată o nouă parolă." +#: 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 "" +"Generați o parolă aleatorie. Dacă actualizați acest cont și bifați această " +"casetă, va fi generată o nouă parolă." -#: admin/forms/account.py: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 "Parolă" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Confirmare" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Introduce aceiași parolă ca deasupra, pentru verificare." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Activat" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Numai superadministratorii sunt permiși la acest mod" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Cele două câmpuri de parolă nu s-au potrivit." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Nu poți să îți ștergi propriul cont" -#: 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 "Crează un alias folosind vechea adresă" -#: 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 "Cotă-parte" -#: 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 "Limita pentru această căsuță poștală, poate fi exprimată in KB, MB (implicit) sau GB. Defineste o valoare particularizată sau folosește valoarea implicită a domeniului. Lăsati necompletat pentru a defini o valoare nelimitată (nu este permis pentru administratorii de domeniu)." +#: 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 "" +"Limita pentru această căsuță poștală, poate fi exprimată in KB, MB " +"(implicit) sau GB. Defineste o valoare particularizată sau folosește " +"valoarea implicită a domeniului. Lăsati necompletat pentru a defini o " +"valoare nelimitată (nu este permis pentru administratorii de domeniu)." -#: 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 "Limita de trimitere a mesajelor" -#: 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 "Numărul de mesaje pe care această căsuță poștală le poate trimite pe zi" +msgstr "" +"Numărul de mesaje pe care această căsuță poștală le poate trimite pe zi" -#: 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(uri)" -#: 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(uri) la această căsuță poștală. Indicați numai o singură adresă pentru fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă. Pentru a crea un alias de captură care sa prindă toate emailurile, trebuie doar să introduceți numele domeniului (@ domain.tld)." +#: admin/forms/account.py: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(uri) la această căsuță poștală. Indicați numai o singură adresă pentru " +"fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă. Pentru a crea " +"un alias de captură care sa prindă toate emailurile, trebuie doar să " +"introduceți numele domeniului (@ domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Adresa expeditorului" -#: 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 "Adresa(e) suplimentare a expeditorului pentru acest cont. Utilizatorului i se va permite să trimită e-mailuri utilizând această adresă, chiar dacă nu există pe plan local. Indicați o adresă pentru fiecare intrare. Apăsați ENTER pentru a adăuga o intrare nouă." +#: admin/forms/account.py: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 "" +"Adresa(e) suplimentare a expeditorului pentru acest cont. Utilizatorului i " +"se va permite să trimită e-mailuri utilizând această adresă, chiar dacă nu " +"există pe plan local. Indicați o adresă pentru fiecare intrare. Apăsați " +"ENTER pentru a adăuga o intrare nouă." -#: admin/forms/account.py: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 "Domeniul nu există" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Domeniul local nu există" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domeniu(ii)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domeniu(ii) pe care utilizatorul le administrează" -#: 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 "General" -#: 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 "Permisiuni" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Cont actualizat" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Cont nou" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Cont creat" @@ -514,69 +626,85 @@ msgid "Email address" msgstr "Adresă email" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Adresa aliasului. Pentru a crea un alias care caputrează tot, trebuie doar să introduceți numele domeniului (@ domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Adresa aliasului. Pentru a crea un alias care caputrează tot, trebuie doar " +"să introduceți numele domeniului (@ domain.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Destinatarii" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Adresele pe care sunt asociate cu acest alias. Indicați numai o singură adresă pentru fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă." +#: 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 "" +"Adresele pe care sunt asociate cu acest alias. Indicați numai o singură " +"adresă pentru fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Nu fost definit niciun destinatar" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Tip" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias (uri) la acest domeniu. Indicați un singur nume pe fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă." +#: admin/forms/domain.py:38 +msgid "" +"Alias(es) of this domain. Indicate only one name per input, press ENTER to " +"add a new input." +msgstr "" +"Alias (uri) la acest domeniu. Indicați un singur nume pe fiecare intrare, " +"apăsați ENTER pentru a adăuga o intrare nouă." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Selector cheie" -#: 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 "Limita implicită aplicată căsuțelor postale. Poate fi exprimată in KB, MB (implicit) sau GB. Valoarea 0 reprezintă nelimitat." +#: 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 "" +"Limita implicită aplicată căsuțelor postale. Poate fi exprimată in KB, MB " +"(implicit) sau GB. Valoarea 0 reprezintă nelimitat." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias domeniu" -#: 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 "Itemul%s cu acest nume există" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Folderul de stocare a cheilor DKIM nu este configurat" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Nu poți sa definești o cotă nelimitată" -#: 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 "domeniu" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Creați un administrator de domeniu" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Creează automat un administrator pentru acest domeniu" -#: 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 @@ -585,51 +713,55 @@ msgstr "Creează automat un administrator pentru acest domeniu" msgid "Name" msgstr "Nume" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "Numele administratorului. Nu include aici si numele domeniului, el va fi automat alipit. " +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Numele administratorului. Nu include aici si numele domeniului, el va fi " +"automat alipit. " -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Generează o parolă aleatorie pentru administrator." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Cu casuță postală" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Creează o căsuță postală pentru administrator. " -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Crează aliasuri " -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Creează automat aliasuri standard pentru acest domeniu" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Format invalid" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domeniu modficat" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Opțiuni" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Domeniu nou" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domeniu creat" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Sepatator" @@ -637,23 +769,24 @@ msgstr "Sepatator" msgid "Recipient(s)" msgstr "Destinatar(i)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Indica unul sau mai mulți destinatari separați prin ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Ține o copii locale" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "Redirecționează mesajele și stochează copiile în căsuța postală locală " +msgstr "" +"Redirecționează mesajele și stochează copiile în căsuța postală locală " -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Selectează un fișier" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Continuă și dacă apar erori" @@ -661,101 +794,106 @@ msgstr "Continuă și dacă apar erori" msgid "Don't treat duplicated objects as error" msgstr "Nu trata obiecte dublicat ca eroare" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Encriptează parola" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Bifeaza această opțune dacă parolele conținute în fșierul tău nu sunt encriptate" +msgstr "" +"Bifeaza această opțune dacă parolele conținute în fșierul tău nu sunt " +"encriptate" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Importul de cont a esuat (%s): domeniul nu există" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Căsuța poștală {} deja există" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Importul de cont a esuat (%s): valuare de cotă incorectă" -#: 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 "Identități" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Redirecționează" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "O căsuță poștală este necesară" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Nu ești autorizat să imporți domenii" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Nu ești autorizat să imporți aliasuri de domenii" -#: 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 " Nu s-a găsit nicio înregistrare DNS pentru %s" -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Nu %(type)sînregistrati pentru %(name)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 "Nu s-au găsit NS-uri funcționale" -#: 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 "Timeout întâmpinat la rezolvarea cererii DNS, imposibilă de interogat %s în acest moment" +msgstr "" +"Timeout întâmpinat la rezolvarea cererii DNS, imposibilă de interogat %s în " +"acest moment" -#: admin/lib.py: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 "Adresă IP invalidă pentru {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Obiectul deja există: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d obiecte importate cu succes" -#: 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 "Fișierul CSV nu este codat UTF-8, incercăm să determinăm codarea automat" +msgstr "" +"Fișierul CSV nu este codat UTF-8, incercăm să determinăm codarea automat" -#: 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 "Citim fișierul CSV folosind codarea %(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 "Imposibil de decodat fișierul CSV folosind codarea %(encoding)s" @@ -764,23 +902,23 @@ msgstr "Imposibil de decodat fișierul CSV folosind codarea %(encoding)s" 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 "MX {} listat de furnizorul DNSBL {}" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "Domeniul nu are înregistrare MX" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Domeniul {} nu are înregistrări MX" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "Înregistrare MX invalidă: {}" -#: 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 "Înregistrarea MX pentru domeniul {0} este invalidă: {1}" @@ -789,160 +927,159 @@ msgstr "Înregistrarea MX pentru domeniul {0} este invalidă: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] Problemă(e) MX pentru domeniul {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] Problemă(e) DNSBL pentru domeniul {} " -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domeniu negăsit" -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Un alias cu acelasi nume deja există" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "adresă" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Adresă 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 "activat" -#: 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 "Bifează pentru a activa acest alias" -#: 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 "Descriere" -#: 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 "Expiră la" -#: 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 "Adresă invalidă" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Destinatar local {}@{} nu poate fi găsit" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Linie invalidă: %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 "nume" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Numele domeniului" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "Numărul de mesaje pe care acest domeniu le poate trimite pe zi" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Bifează pentru a activa domeniul" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Activează verificările DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Bifează pentru a activa verificările DNS pentru acest domeniu" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Activează semnarea DKIM" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Dacă activezi această facilitate, o chieie DKIM se va genera pt acest domeniu." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Dacă activezi această facilitate, o chieie DKIM se va genera pt acest " +"domeniu." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Mărime cheie" -#: 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 "Linie invalidă" -#: 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 "Nu s-au gasit înregistrări MX autorizate pentru acest domeniu {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Valuare de cotă invalidă pentru domeniul '{}'" -#: 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 "Valuare implicită de cotă invalidă pentru domeniul '{}'" -#: 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 "Valuarea de cotă implicită a unei cutii poștale nu poate fi mai mare decât cota de domeniu" +msgstr "" +"Valuarea de cotă implicită a unei cutii poștale nu poate fi mai mare decât " +"cota de domeniu" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Numele aliasului" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "Țintă" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Domeniul către care indică acest alias" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Domeniu necunoscut %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresa de email (fără partea @domeniu)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Nu s-a reușit preluarea locației pentru cutia poștală (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "O cotă este necesară" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -1002,9 +1139,9 @@ msgstr "Cantitate" #: 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 "Aliasuri de domeniu" @@ -1039,7 +1176,7 @@ msgstr "Creat" msgid "Last login" msgstr "Ultima autentificare" -#: 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 "Email secundar" @@ -1048,7 +1185,7 @@ msgstr "Email secundar" msgid "Not defined" msgstr "Nedefinit" -#: 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 "Numar de telefon" @@ -1126,7 +1263,7 @@ msgstr "Alarme deschise pentru" #: 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 "Dată" @@ -1150,9 +1287,9 @@ msgstr "Dată de creare" msgid "Last modification date" msgstr "Data ultimei modficări" -#: 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 "Alias-uri cutii poștale" @@ -1212,7 +1349,7 @@ 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 "Nu" @@ -1220,7 +1357,7 @@ msgstr "Nu" msgid "Generate new key" msgstr "Generează o cheie nouă" -#: 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 "Da" @@ -1233,7 +1370,7 @@ msgid "Administrators" msgstr "Administratori" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Elimină această permisie" @@ -1270,13 +1407,13 @@ msgstr "Queue ID" #: 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 "De la" #: 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 "Către" @@ -1307,9 +1444,10 @@ msgstr "dezactivat" msgid "Automatically forward emails to another address" msgstr "Redirecționează automat emailuri la altă adresă" -#: admin/templates/admin/forward.html:9 admin/views/alias.py: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 "Actualizare" @@ -1326,12 +1464,39 @@ msgid "Fullname/Recipient" msgstr "Nume Complet/Destinatar" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " -msgstr "Furnizați un fișier CSV unde liniile respectă unul dintre următoarele formate
              :
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients
            Primul element al fiecărei linii este obligatoriu și trebuie să fie egal cu una dintre valorile anterioare. Puteți utiliza un caracter diferit ca separator." +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " +msgstr "" +"Furnizați un fișier CSV unde liniile respectă unul dintre următoarele " +"formate
              :
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients
            Primul element al fiecărei linii este " +"obligatoriu și trebuie să fie egal cu una dintre valorile anterioare. Puteți " +"utiliza un caracter diferit ca separator." #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " -msgstr "Furnizați un fișier CSV unde liniile respectă unul dintre următoarele formate:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

            Primul element al fiecărei linii este obligatoriu și trebuie să fie egal cu una dintre valorile anterioare.

            Puteți utiliza un caracter diferit ca separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " +msgstr "" +"Furnizați un fișier CSV unde liniile respectă unul dintre următoarele " +"formate:
            • account; loginname; password; first name; last name; " +"enabled; group; address; quota; [, domain, ...]
            • alias; " +"address; enabled; recipient; recipient; ...

            Primul element " +"al fiecărei linii este obligatoriu și trebuie să fie egal cu una dintre " +"valorile anterioare.

            Puteți utiliza un caracter diferit ca separator." +"

            " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1359,7 +1524,8 @@ msgstr "Actualizat" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Acest IP nu se potrivește cu nicio înregistrare MX definită în parametrii" +msgstr "" +"Acest IP nu se potrivește cu nicio înregistrare MX definită în parametrii" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1367,106 +1533,123 @@ msgstr "Nu există înregistrări MX pentru acest domeniu." #: 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 a detectat ca domeniul %(domain)s este listat sub DNSBL la urmatorii furnizori DNSBL:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa a detectat ca domeniul %(domain)s este listat sub DNSBL la urmatorii " +"furnizori DNSBL:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." -msgstr "Reputația domeniului va fi afectată și există șansa ca e-mailurile provenite de la acestă adresă să fie considerate spam. Ar trebui să contactați acești furnizori și să îi solicitați să elimine adresele(sau adresa) IP detectate." +msgid "" +"The domain's reputation will be affected and there is a chance that emails " +"coming from it are considered as spam. You should contact those providers " +"and ask them to unlist detected IP address(es)." +msgstr "" +"Reputația domeniului va fi afectată și există șansa ca e-mailurile provenite " +"de la acestă adresă să fie considerate spam. Ar trebui să contactați acești " +"furnizori și să îi solicitați să elimine adresele(sau adresa) IP detectate." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa a detectat ca domeniul %(domain)s nu are înregistrări MX valide: " +msgstr "" +"Modoboa a detectat ca domeniul %(domain)s nu are înregistrări MX valide: " #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Caută" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "activat_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "activat_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Listă domenii" -#: 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 "Listă cote" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "Jurnalele de mesaje" -#: 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 "Import" -#: 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 "Export" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Listare identități" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Afișare identități domeniului" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "Vezi alarmele domeniului" -#: 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 "Editează {}" -#: 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 "Șterge %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Nu există înregistrări MX pentru %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 "Format invalid de IP pentru %(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 "Nu există înregistrări MX pentru %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Un alias cu acelasi nume deja există" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Creează" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Alias nou" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias creat" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias modificat" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias șters" @@ -1477,38 +1660,38 @@ msgstr[2] "Aliasuri șterse" msgid "MX records of {}" msgstr "Înregistrări MX ale {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Sumar DNSBL pentru {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domeniu șters" msgstr[1] "Domenii șterse" msgstr[2] "Domenii șterse" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Exportă identități" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exportă domenii" -#: 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 "Cerere invalidă" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Cont șters" msgstr[1] "Conturi șterse" msgstr[2] "Conturi șterse" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importă domenii" @@ -1516,85 +1699,72 @@ msgstr "Importă domenii" msgid "Import identities" msgstr "Importă identități" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Redirecționare actualizată" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Cod PIN invalid" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA este deja activat" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" -msgstr "2FA nu este activat" - -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Local" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" +#: 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: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 utilizator" - -#: 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 "Sintaxă invalidă" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Număr invalid de iterații" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "Acest cod nu este valabil" - -#: 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 "Vechea parolă" -#: core/api/v2/serializers.py:328 core/views/auth.py:180 core/views/auth.py:235 -msgid "Please use the following code to recover your Modoboa password: {}" -msgstr "Vă rugăm să folosiți următorul cod pentru a vă recupera parola Modoboa: {}" +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 +msgid "2FA is not enabled" +msgstr "2FA nu este activat" -#: core/api/v2/views.py:54 +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Local" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Profil utilizator" + +#: 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 "Sintaxă invalidă" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Număr invalid de iterații" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "Acest cod nu este valabil" + +#: 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 "" +"Vă rugăm să folosiți următorul cod pentru a vă recupera parola Modoboa: {}" + +#: 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 "Utilizatorul '%s' conectat cu succes" -#: 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 "Schema parola diferită. Reinoim %s parole" @@ -1604,452 +1774,523 @@ msgstr "Schema parola diferită. Reinoim %s parole" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Paragraful hash al parolei nu corespunde. Actualizarea %s a parolei" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Autentificare" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Tip autentificare" -#: 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 "Tehnologia backend folosită pentru autentificare " -#: 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 "Schema pentru parola implicită" -#: 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 "Schema de criptare pentru parole" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Iterații" -#: 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 "Număr de iterații folosite (setare folosită doar de sha256crypt și sha512crypt) Trebuie să fie un număr cuprins între 1000 și 999999999 inclusiv." +#: 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 "" +"Număr de iterații folosite (setare folosită doar de sha256crypt și " +"sha512crypt) Trebuie să fie un număr cuprins între 1000 și 999999999 " +"inclusiv." -#: 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 "Actualizarea schemei de parole la autentificare" -#: 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 "Modifică parola utilizatorului la autentificare pentru a utiliza noua schemă de parolă" +msgstr "" +"Modifică parola utilizatorului la autentificare pentru a utiliza noua schemă " +"de parolă" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Parola implicită" -#: 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 "Parola implicită setată pentru conturile create automat." -#: 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 "Mărime parolă aleatorie" -#: 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 "Mărimea parolelor generate aleator." -#: 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 "Actualizarea URL-ului serviciului de parolă" -#: 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)." -msgstr "URL-ul unei pagini externe unde utilizatorii își vor putea actualiza parola. Se aplică numai utilizatorilor care nu sunt locali, adică cei creați automat după o autentificare externă reușită (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 "" +"URL-ul unei pagini externe unde utilizatorii își vor putea actualiza parola. " +"Se aplică numai utilizatorilor care nu sunt locali, adică cei creați automat " +"după o autentificare externă reușită (LDAP, SMTP)." -#: 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 "Anunț de recuperare a parolei" -#: 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 "Un mesaj temporar care va fi afișat pe pagina de resetare a parolei." -#: 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 "Activați recuperarea parolei prin SMS" -#: 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 "Activați recuperarea parolei prin SMS pentru utilizatorii care au completat un număr de telefon." +msgstr "" +"Activați recuperarea parolei prin SMS pentru utilizatorii care au completat " +"un număr de telefon." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "Furnizor de SMS" -#: 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 "Alegeți un furnizor pentru a trimite SMS de recuperare a parolei" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "Setări 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 "Adresă server" -#: 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 "Adresa IP sau numele DNS al serverului 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 "Port server" -#: 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 "Numărul de port TCP folosit de serverul 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 "Activați serverul secundar (fallback)" -#: 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" -msgstr "Activați un server LDAP secundar care va fi utilizat în cazul în care serverul principal eșuează" +#: 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 "" +"Activați un server LDAP secundar care va fi utilizat în cazul în care " +"serverul principal eșuează" -#: 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 "Adresa serverului secundar" -#: 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 "Adresa IP sau numele DNS al serverului LDAP secundar" -#: 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 "Portul serverului secundar" -#: 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 "Numărul portului TCP utilizat de serverul secundar LDAP" -#: 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 "Folosește o conexiune securizată" -#: 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 "Folosește o conexiune de tip SSL/STARTTLS pentru a accesa serverul LDAP" +msgstr "" +"Folosește o conexiune de tip SSL/STARTTLS pentru a accesa serverul 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 "Active Directory" -#: 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 "Specifică daca serverul LDAP este unul de tip Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Grupuri administrator" -#: 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 "Membrii acelor grupuri LDAP Posix vor fi create ca administratori de domeniu. Folosește caracterul ';' pentru a separa grupurile." +#: 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 "" +"Membrii acelor grupuri LDAP Posix vor fi create ca administratori de " +"domeniu. Folosește caracterul ';' pentru a separa grupurile." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Tipul de grup" -#: 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 "Tipul grupului LDAP pe care îl utilizați cu directorul selectat." -#: 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 "Baza pentru căutare grupuri" -#: 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 "Numele ales al bazei de căutare utilizat pentru a găsi grupuri" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atributul parolă" -#: 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 "Atributul folosit pentru a stoca parola utilizatorului" -#: 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 "Setări de autentificare LDAP" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Metoda de autentificare" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Căutare și atribuire" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Atribuire directă" -#: 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 "Alege metodă folosită pentru autentificare" -#: 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 "Atribuie 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 "Numele ales folosit la atribuirea cu servarul LDAP. Câpul necompletat se foloseste în cazul atribuirii anonime" +#: 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 "" +"Numele ales folosit la atribuirea cu servarul LDAP. Câpul necompletat se " +"foloseste în cazul atribuirii anonime" -#: 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 "Parola de atribuire" -#: 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 "Parola folosită la momentul atribuiri cu servarul LDAP (vezi 'Atribuie DB')" +msgstr "" +"Parola folosită la momentul atribuiri cu servarul LDAP (vezi 'Atribuie DB')" -#: 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 "Căutare bază de utilizatori" -#: 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 "Numele ales al bazei de căutare utilizat pentru a găsi utilizatori" -#: 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 "Filtru de căutare" -#: 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 "Un filtru opțional (de ex. '(ObjectClass = persoană)'). Pentru a fi valid, trebuie să fie închis în paranteze." +#: 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 "" +"Un filtru opțional (de ex. '(ObjectClass = persoană)'). Pentru a fi valid, " +"trebuie să fie închis în paranteze." -#: 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 "Templateul DN pt utilizator" -#: 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 "Templateul folosit pentru a construi un utilizator DN. Ar trebui să conțină un substituent (de ex. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Templateul folosit pentru a construi un utilizator DN. Ar trebui să conțină " +"un substituent (de ex. %(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 "Setări de sincronizare LDAP" -#: 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 "Activați exportul către LDAP" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" -msgstr "Activați sincronizarea automată între baza de date locală și directorul LDAP" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" +msgstr "" +"Activați sincronizarea automată între baza de date locală și directorul LDAP" -#: 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 "Ștergerea contului LDAP la distanță atunci când contul local este șters" +msgstr "" +"Ștergerea contului LDAP la distanță atunci când contul local este șters" -#: 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." -msgstr "Ștergeți contul LDAP la distanță atunci când contul local este șters, altfel acesta va fi dezactivat." +#: 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 "" +"Ștergeți contul LDAP la distanță atunci când contul local este șters, altfel " +"acesta va fi dezactivat." -#: 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 "Șablon de cont DN" -#: 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)" -msgstr " Șablonul utilizat pentru a construi DN-ul unui cont. Acesta trebuie să conțină un spațiu rezervat (ie. %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +" Șablonul utilizat pentru a construi DN-ul unui cont. Acesta trebuie să " +"conțină un spațiu rezervat (ie. %(user)s)" -#: 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 "Activați importul din LDAP" -#: 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 "Activați sincronizarea conturilor din directorul LDAP în baza de date locală" +msgstr "" +"Activați sincronizarea conturilor din directorul LDAP în baza de date locală" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Atributul nume de utilizator" -#: 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 "Numele atributului LDAP în care poate fi găsit numele de utilizator." -#: 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 "Activați sincronizarea Dovecot LDAP" -#: 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 "Setările de autentificare LDAP vor fi aplicate la configurația Dovecot." +msgstr "" +"Setările de autentificare LDAP vor fi aplicate la configurația Dovecot." -#: 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 "Fișier de configurare Dovecot LDAP" -#: 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 "Locația fișierului de configurare care conține setările Dovecot LDAP." -#: 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 "Bord" -#: 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 "Feedul RSS personalizat" -#: 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 "Afișează feedul RSS personalizat la reselleri și administratori de domeniu" +msgstr "" +"Afișează feedul RSS personalizat la reselleri și administratori de domeniu" -#: 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 "Ascunde widgetul de caracteristici " -#: 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 "Ascunde widgetul de caracteristici pentru reselleri și administratori de domeniu" +msgstr "" +"Ascunde widgetul de caracteristici pentru reselleri și administratori de " +"domeniu" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Notificări" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Adresa expeditorului" -#: 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 "Adresa de email folosită pentru trimiterea notificărilor." -#: 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 public" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Activați comunicarea" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Activați comunicarea cu API-ul public 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 "Verifică dacă există noi versiuni" -#: 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 "Verifică automat dacă este disponibilă o versiune mai nouă" -#: 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 "Trimiteți un e-mail atunci când sunt găsite versiuni noi" -#: 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 "Trimiteți un e-mail pentru a notifica administratorii despre noile versiuni" +msgstr "" +"Trimiteți un e-mail pentru a notifica administratorii despre noile versiuni" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Beneficiar" -#: 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 "Destinatarul e-mailurilor de notificare a noilor versiuni." -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Trimite statistici" -#: 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 "Trimiteți statistici către API-ul public Modoboa (contoare și extensii utilizate)" +msgstr "" +"Trimiteți statistici către API-ul public Modoboa (contoare și extensii " +"utilizate)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Diverse" -#: 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 "Pragul pentru cont invalid" -#: 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 "Pragul pentru cont invalid" -#: 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 "Un cont cu o ultima data de conectare mai mare decat acest prag (in zile) va fi considerat inactiv" +#: 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 "" +"Un cont cu o ultima data de conectare mai mare decat acest prag (in zile) va " +"fi considerat inactiv" -#: 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 "Intervalul de verificare a notificărilor" -#: 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 "Intervalul dintre două verificări de notificare principală (în secunde)" +msgstr "" +"Intervalul dintre două verificări de notificare principală (în secunde)" -#: 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 "Vechimea maximă a înregistrărilor log" -#: 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 "Vechimea maximă în zilele de înregistrare a intrărilor în jurnal" -#: 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 "Număr de itemi per pagină" -#: 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 "Numărul de itemi afișați pe o pagină" -#: 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 "Redirecționarea principală implicită" -#: 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 "Redirecționarea implicită utilizată atunci când nu este specificată nici o aplicație" +msgstr "" +"Redirecționarea implicită utilizată atunci când nu este specificată nici o " +"aplicație" -#: 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 "Aveți USE_TZ setat la False, acest lucru poate duce la probleme în timpul tranzițiilor între timul de vara / iarna (adică același timp local care apare de două ori ca urmare a modificării ceasului)." +#: 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 "" +"Aveți USE_TZ setat la False, acest lucru poate duce la probleme în timpul " +"tranzițiilor între timul de vara / iarna (adică același timp local care " +"apare de două ori ca urmare a modificării ceasului)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Setează `USE_TZ = True` în settings.py" @@ -2081,31 +2322,31 @@ msgstr "Manechin" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Vechea parolă" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Noua parolă" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Parola veche nu se potivește" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Parolele nu se potrivesc" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Activează accesul API" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Cod de verificare" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Cod invalid" @@ -2122,20 +2363,20 @@ msgstr "modificat" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s de utilizatorul %(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 de" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "sterș" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "utilizator {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "comandă de management" @@ -2143,141 +2384,144 @@ msgstr "comandă de management" msgid "You can't delete your own account" msgstr "Nu poți să îți ștergi propriul cont" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Sunt disponibile una sau mai multe actualizări" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Actualizare(i) disponibilă" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Permiteți accesul la cutiile poștale" -#: core/models.py:54 -msgid "Allow this administrator to access user mailboxes" -msgstr "Permiteți acestui administrator să acceseze cutiile poștale ale utilizatorilor" - #: core/models.py:57 +msgid "Allow this administrator to access user mailboxes" +msgstr "" +"Permiteți acestui administrator să acceseze cutiile poștale ale " +"utilizatorilor" + +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "parolă" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "limbă" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Limba preferată pentru afișarea paginilor." -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "O adresă de e-mail alternativă poate fi utilizată pentru recuperare." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Eroare la actualizarea parolei: modulul LDAP nu este instalat" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "cont" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Necunoscut" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Nu puteți importa un cont cu un rol mai mare decât al dvs." -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Utilizatorul simplu '%s' trebuie să aibă o adresă de e-mail validă" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "câmpului de utilizator și e-mail nu trebuie să difere pentru '%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] "Parola trebuie să conțină cel puțin {} cifră." msgstr[1] "Parola trebuie să conțină cel puțin {} cifre." msgstr[2] "Parola trebuie să conțină cel puțin {} cifre." -#: 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] "Parola trebuie să conțină cel puțin {} literă mică." msgstr[1] "Parola trebuie să conțină cel puțin {} litere mici." msgstr[2] "Parola trebuie să conțină cel puțin {} litere mici." -#: 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] "Parola trebuie să conțină cel puțin {} majusculă." msgstr[1] "Parola trebuie să conțină cel puțin {} majuscule." msgstr[2] "Parola trebuie să conțină cel puțin {} majuscule." -#: 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] "Parola trebuie să conțină cel puțin {} caracter special." msgstr[1] "Parola trebuie să conțină cel puțin {} caractere speciale." msgstr[2] "Parola trebuie să conțină cel puțin {} caractere speciale." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Parola dvs. trebuie să conțină o combinație de tipuri diferite de caractere." +msgstr "" +"Parola dvs. trebuie să conțină o combinație de tipuri diferite de caractere." -#: 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 "Punct final API" -#: 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 "OVH Europe" -#: 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 "OVH US" -#: 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 "OVH North-America" -#: 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 "Deci, începeți Europa" -#: 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 "Deci, ai început America de Nord" -#: 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 "Kimsufi Europe" -#: 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 "Kimsufi North America" -#: 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 "Cheie de aplicație" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Secretul aplicației" -#: 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 "Cheia de consum" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2304,8 +2548,12 @@ msgid "Latest news" msgstr "Ultimele știri" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Vizitează blogul oficial pentru mai multe informații." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Vizitează blogul " +"oficial pentru mai multe informații." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2317,8 +2565,12 @@ msgstr "Controlați-vă accesul la API-ul Modoboa" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Documentația API-ului este disponibilă aici." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Documentația API-ului este disponibilă aici." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2329,7 +2581,7 @@ msgstr "Token de accesare API" msgid "Hello %(user)s." msgstr "Bună ziua %(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 "Informatie" @@ -2343,7 +2595,9 @@ msgstr "Sunt disponibile una sau mai multe actualizări!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Verificați lista următoare pentru a găsi componentele(ul) care pot fi actualizate." +msgstr "" +"Verificați lista următoare pentru a găsi componentele(ul) care pot fi " +"actualizate." #: core/templates/core/information.html:10 msgid "Applications" @@ -2361,7 +2615,7 @@ msgstr "Ultima versiune" msgid "Active users" msgstr "Utilizatori activi" -#: 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 "Loguri" @@ -2394,7 +2648,7 @@ msgstr[2] "" "\n" " Sunt disponibile următoarele actualizări:\n" -#: 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 "Parametrii" @@ -2411,12 +2665,12 @@ msgstr "Salvează" msgid "Modoboa settings" msgstr "Setări 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 "Setări" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Preferințe" @@ -2436,7 +2690,7 @@ msgstr "Actualizați-vă informațiile personale" msgid "Click here to update your password" msgstr "Faceți clic aici pentru a vă actualiza parola" -#: 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 "Securitate" @@ -2445,8 +2699,13 @@ msgid "Two-Factor authentication" msgstr "Autentificare cu doi factori" #: 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." -msgstr "Instalați un autentificator soft token, cum ar fi FreeOTP sau Google Authenticator, din depozitul de aplicații și utilizați aplicația respectivă pentru a scana acest cod QR." +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 "" +"Instalați un autentificator soft token, cum ar fi FreeOTP sau Google " +"Authenticator, din depozitul de aplicații și utilizați aplicația respectivă " +"pentru a scana acest cod QR." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2457,29 +2716,53 @@ msgid "Register" msgstr "Înregistrare" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "Felicitări! Autentificarea în doi factori este acum activată pentru contul dvs." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." +msgstr "" +"Felicitări! Autentificarea în doi factori este acum activată pentru contul " +"dvs." #: 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." -msgstr "Următoarele coduri de recuperare pot fi folosite o singură dată pentru a vă permite să vă recâștigați accesul la cont, de exemplu, în cazul în care vă pierdeți telefonul. Asigură-te că le salvezi într-un loc sigur, altfel nu vei mai putea accesa contul tău." +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 "" +"Următoarele coduri de recuperare pot fi folosite o singură dată pentru a vă " +"permite să vă recâștigați accesul la cont, de exemplu, în cazul în care vă " +"pierdeți telefonul. Asigură-te că le salvezi într-un loc sigur, altfel nu " +"vei mai putea accesa contul tău." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." -msgstr "Autentificarea în doi factori este activată pentru contul dumneavoastră." +msgstr "" +"Autentificarea în doi factori este activată pentru contul dumneavoastră." + +#: 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 "Dezactivați 2FA" +#: 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 "Resetarea codurilor de recuperare" #: 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." -msgstr "Autentificarea în doi factori (2FA) nu este încă activată pentru contul dvs. Activarea acestei funcții va spori securitatea contului dvs." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." +msgstr "" +"Autentificarea în doi factori (2FA) nu este încă activată pentru contul dvs. " +"Activarea acestei funcții va spori securitatea contului dvs." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2493,71 +2776,79 @@ msgstr "Noi coduri de recuperare" msgid "Here are your new recovery codes. " msgstr "Aici sunt noile coduri de recuperare. " +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Encriptează parola" + #: 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 "Deconectare" -#: 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 "Partea de nucleu a Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parametrii au fost salvați" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Numele de utilizator și parola nu s-au potrivit. Vă rugăm să încercați din nou." +msgstr "" +"Numele de utilizator și parola nu s-au potrivit. Vă rugăm să încercați din " +"nou." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Utilizatorul '{}' sa deconectat cu succes" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil actualizat" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Preferințele au fost salvate" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Accesul a fost actualizat" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "Setări LDAP" -#: 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 #, fuzzy #| msgid "No MX record for %s" msgid "Show DMARC report for {}" msgstr "Nu există înregistrări MX pentru %s" -#: 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 #, fuzzy #| msgid "Not defined" msgid "Not resolved" @@ -2603,11 +2894,11 @@ msgstr "Portul serverului secundar" 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 "" @@ -2687,95 +2978,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 "" @@ -2804,7 +3095,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 @@ -2820,7 +3113,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2828,95 +3121,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 "Accesul a fost actualizat" -#: 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 "Activează semnarea 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 "Activează semnarea 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 "Crează aliasuri " -#: 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 "Setări 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 @@ -2925,52 +3226,52 @@ msgstr "" msgid "IMAP migration" msgstr "Administrare" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Nu s-a reușit crearea unui cont LDAP: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Nu s-a reușit actualizarea contului LDAP: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Nu s-a reușit ștergerea contului LDAP: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Nu s-a reușit dezactivarea contului LDAP: {}" -#: 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 "Activați comunicarea cu API-ul public Modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Conexiunea la baza de date %s nu a fost configurată" -#: 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 "imposibil de determinat codarea textului" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Permisiune refuzată: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Permisiune refuzată" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Introduceți un nume de domeniu valid" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Introduceți o adresă de email validă." @@ -2980,133 +3281,181 @@ msgstr "Introduceți o adresă de email validă." msgid "Submit" msgstr "Trimite" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Eroare la actualizarea parolei: {}" -#: 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 "Subiect" -#: 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 "Limitele standard per-admin" -#: 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 "Activați limitele per-admin" -#: 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 "Activați sau dezactivați limitele per-admin" -#: 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 "Administratori de domeniu" -#: 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 "Numărul maxim de administratori de domeniu permiși pentru un nou administrator. (0 pentru a dezactiva crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de administratori de domeniu permiși pentru un nou " +"administrator. (0 pentru a dezactiva crearea, -1 pentru a permite creări " +"nelimitate)" -#: 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 "Numărul maxim de domenii permise pentru un nou administrator. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de domenii permise pentru un nou administrator. (0 nu permite " +"crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Numărul maxim de aliasuri de domenii permise pentru un nou administrator. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de aliasuri de domenii permise pentru un nou administrator. (0 " +"nu permite crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Numărul maxim de căsuțe poștale permise pentru un nou administrator. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de căsuțe poștale permise pentru un nou administrator. (0 nu " +"permite crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Numărul maxim de aliasuri permise pentru un nou administrator. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de aliasuri permise pentru un nou administrator. (0 nu permite " +"crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Cota pe care un reseller le va putea să împartă între domeniile pe care le creează. (0 nu înseamnă fără cotă)" +#: 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 "" +"Cota pe care un reseller le va putea să împartă între domeniile pe care le " +"creează. (0 nu înseamnă fără cotă)" -#: 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 "Limitele per-domeniu implicite" -#: 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 "Activați limitele per-domeniu" -#: 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 "Activați sau dezactivați limitele pe domenii" -#: 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 "Numărul maxim de administratori de domeniu permiși pentru un domeniu nou. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de administratori de domeniu permiși pentru un domeniu nou. (0 " +"nu permite crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Numărul maxim de aliasuri de domenii permise pentru un domeniu nou. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de aliasuri de domenii permise pentru un domeniu nou. (0 nu " +"permite crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Numărul maxim de căsuțe poștale autorizate pentru un domeniu nou. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de căsuțe poștale autorizate pentru un domeniu nou. (0 nu " +"permite crearea, -1 pentru a permite creări nelimitate)" -#: 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 "Numărul maxim de aliasuri permise pentru un domeniu nou. (0 nu permite crearea, -1 pentru a permite creări nelimitate)" +#: 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 "" +"Numărul maxim de aliasuri permise pentru un domeniu nou. (0 nu permite " +"crearea, -1 pentru a permite creări nelimitate)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Limite" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Numărul maxim de domenii pe care acest utilizator le poate crea" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "Numărul maxim de aliasuri de domeniu pe care acest utilizator le poate crea" +msgstr "" +"Numărul maxim de aliasuri de domeniu pe care acest utilizator le poate crea" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Numărul maxim de cutii poștale pe care acest utilizator le poate crea" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Numărul maxim de aliasuri de cutie poștală pe care acest utilizator le poate crea" +msgstr "" +"Numărul maxim de aliasuri de cutie poștală pe care acest utilizator le poate " +"crea" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Numărul maxim de administratori de domeniu pe care acest utilizator îl poate crea" +msgstr "" +"Numărul maxim de administratori de domeniu pe care acest utilizator îl poate " +"crea" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Cotă-parte distribuită între domeniile acestui distribuitor" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Numărul maxim de aliasuri de domeniu permis pentru acest domeniu." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Numărul maxim de cutii poștale permis pentru acest domeniu." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Numărul maxim de aliasuri pentru cutia poștală permis pentru acest domeniu." +msgstr "" +"Numărul maxim de aliasuri pentru cutia poștală permis pentru acest domeniu." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." -msgstr "Numărul maxim de administratori de domeniu permis pentru acest domeniu." +msgstr "" +"Numărul maxim de administratori de domeniu permis pentru acest domeniu." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Limită invalidă" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Resurse" @@ -3119,11 +3468,11 @@ msgstr "%s: s-a atins limita" msgid "Not enough resources" msgstr "Resurse insuficiente" -#: 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 "Nu vi se permite să definiți valori nelimitate" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "nelimitat" @@ -3132,91 +3481,91 @@ msgstr "nelimitat" msgid "Resources usage" msgstr "Utilizarea resurselor" -#: 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 "Calea către fișierul de log" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Calea către fișierul de log în care se colectează statistici" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Directorul în care se stochează fisierele RRD" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Calea către directorul în care se stochează fisierele RRD" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Arată mesajele suspecte" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Diferențiază între mesjale rejectate hard și soft (suspecte)" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "Statistici" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "Nu s-a gasit binarul rrdtool" -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Media traficului (mesaje/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "mesaje trimise" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "mesaje primite " -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "mesaje returnate" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "mesaje rejectate" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "mesaje cu virus" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "mesaje spam" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "mesaje suspecte" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Media de trafic (octecți/minut)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "mărime pentru primite" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "mărime pentru trimise" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "Trafic Email" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Media creări de conturi (cont/oră)" @@ -3244,199 +3593,205 @@ msgstr "Aplică" msgid "No statistics available" msgstr "Nu sunt disponibile statistici" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Zi" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "Săptămană" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Lună" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "An" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Personalizat" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Set grafic necunoscut" -#: maillog/views.py:69 +#: maillog/views.py:71 msgid "Unknown domain" msgstr "Domeniu necunoscut" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Perioada personalizată invalidă" -#: 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 "Actualizați-vă informațiile personale" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Directorul nu a fost găsit." -#: 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 "Nu există informații valabile pentru acest domeniu." -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "Enable SPF checks" msgid "Enable PDF credentials" msgstr "Activează verificările SPF" -#: 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory to save documents into" msgstr "Directorul în care se stochează fisierele RRD" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 #, fuzzy #| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" msgstr "Calea către directorul în care se stochează fisierele RRD" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 #, fuzzy #| msgid "Security" msgid "Security options" msgstr "Securitate" -#: 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 "spam messages" msgid "Custom message" msgstr "mesaje spam" -#: 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 "Adresă server" -#: 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 "Port server" -#: 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 "Adresă server" -#: 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 "Port server" -#: 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 "" @@ -3444,15 +3799,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" @@ -3461,40 +3816,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 "Schimbă parola" -#: 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 "" @@ -3503,27 +3864,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: s-a atins limita" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: s-a atins limita" + +#: 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 code is invalid" +msgid "This date is over" +msgstr "Acest cod nu este valabil" + +#: 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 "Nu poate fi mai mare decat cota domeniului" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Ștergere automată a contului" + +#: 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 "Cota-parte implicită a domeniului" + +#: 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 "spam messages" +msgid "Auto-reply message" +msgstr "mesaje spam" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Subiect" + +#: 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 "Serviciu neacceptat" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Setări de transport" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Transport" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "adresă de host" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "portul de host" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "verificați destinatarii" @@ -3593,16 +4099,24 @@ msgstr "Ai uitat parola?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Parola dvs. a fost setată. Puteți acum să va autentificați din nou." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Parola dvs. a fost setată. Puteți acum să va autentificați din nou." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Schimbă parola" #: 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 "Linkul de resetare a parolei este invalid, posibil din cauza faptului că a fost deja utilizat. Te rugăm solicită o nouă resetare a parolei. " +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Linkul de resetare a parolei este invalid, posibil din cauza faptului că a " +"fost deja utilizat. Te rugăm solicită o nouă resetare a parolei. " #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3613,19 +4127,35 @@ msgid "Resend code" msgstr "Reîntoarceți codul" #: 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 "

            V-am trimis prin e-mail instrucțiuni pentru setarea parolei, dacă există un cont cu adresa pe care ați introdus-o. Ar trebui să le primiți în scurt timp.

            Dacă nu primiți un e-mail, asigurați-vă că ați introdus adresa dvs. principală și că verificați dosarul dvs. de spam.

            " +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 "" +"

            V-am trimis prin e-mail instrucțiuni pentru setarea parolei, dacă există " +"un cont cu adresa pe care ați introdus-o. Ar trebui să le primiți în scurt " +"timp.

            Dacă nu primiți un e-mail, asigurați-vă că ați introdus adresa " +"dvs. principală și că verificați dosarul dvs. de spam.

            " #: 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 "Pentru a iniția procesul de resetare a parolei pentru contul dvs. %(username)s Modoboa, faceți clic pe linkul de mai jos:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"Pentru a iniția procesul de resetare a parolei pentru contul dvs. " +"%(username)s Modoboa, faceți clic pe linkul de mai jos:" #: 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 "Dacă făcând click pe linkul de mai sus nu funcționează, copiați și lipiți adresa URL într-o fereastră nouă a browserului." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Dacă făcând click pe linkul de mai sus nu funcționează, copiați și lipiți " +"adresa URL într-o fereastră nouă a browserului." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3644,28 +4174,29 @@ msgstr "Resetare parola Modoboa" msgid "Invalid value" msgstr "Valuare invalidă" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "tipar" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "serviciu" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "următorul hop" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: s-a atins limita" +#~| msgid "Alias with this name already exists" +#~ msgid "An alias with this name already exists." +#~ msgstr "Un alias cu acelasi nume deja există" #~ msgid "Mailboxes owner" #~ msgstr "Propietarul cutiilor postale" #~ msgid "The UNIX account who owns mailboxes on the filesystem" -#~ msgstr "Contul UNIX care are in propietate casuțele poștale în sistemul de fișiere" +#~ msgstr "" +#~ "Contul UNIX care are in propietate casuțele poștale în sistemul de fișiere" #, python-format #~ msgid "Domain '%s' does not exist" diff --git a/modoboa/locale/ru/LC_MESSAGES/django.po b/modoboa/locale/ru/LC_MESSAGES/django.po index e7a1ec78e..3e4ff3e9d 100644 --- a/modoboa/locale/ru/LC_MESSAGES/django.po +++ b/modoboa/locale/ru/LC_MESSAGES/django.po @@ -14,7 +14,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: Russian (http://www.transifex.com/tonio/modoboa/language/ru/)\n" @@ -24,512 +24,587 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: admin/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 #, fuzzy #| msgid "Permissions" 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 #, fuzzy #| msgid "A quota is required" 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 #, fuzzy #| msgid "Domain does not exist" 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 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "Пользователь '%s' уже существует" + +#: admin/api/v1/serializers.py:565 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this domain." msgstr "Вы не имеете права доступа к этому домену" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 #, fuzzy #| msgid "You don't have access to this domain" 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 "Пользователь '%s' уже существует" -#: 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 #, fuzzy #| msgid "Domain modified" msgid "Directory not found." msgstr "Домен изменен" -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Domain modified" 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 #, fuzzy #| msgid "Unknown" 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 +#: admin/app_settings.py:142 admin/app_settings.py:448 #, fuzzy -msgid "Rename or remove mailboxes on the filesystem when they get renamed or removed within Modoboa" -msgstr "Удалять или переименовывать почтовые ящики на диске, если они удалены или переименованы в Modoboa" +msgid "" +"Rename or remove mailboxes on the filesystem when they get renamed or " +"removed within Modoboa" +msgstr "" +"Удалять или переименовывать почтовые ящики на диске, если они удалены или " +"переименованы в 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 "" -#: 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 #, fuzzy 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 #, fuzzy #| msgid "New domain" 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 #, fuzzy #| msgid "Invalid request" 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 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota 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 "Квота в мегабайтах для этого почтового ящика. Определите собственное значение или используйте значение по умолчанию для родительского домена. Оставьте пустым для неограниченного значения. (Не разрешено администраторам домена)" +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota 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 +#: admin/forms/account.py:269 #, fuzzy -#| msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. Use the '*' character to create a 'catchall' alias (ex: *@domain.tld)." -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Синонимы этого почтового ящика. Вводите один адрес за раз. Нажмите ENTER для добавления. Используйте '*' для создания синонима 'для всех' (*@domain.tld)" +#| msgid "" +#| "Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +#| "to add a new input. Use the '*' character to create a 'catchall' alias (ex: " +#| "*@domain.tld)." +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Синонимы этого почтового ящика. Вводите один адрес за раз. Нажмите ENTER для" +" добавления. Используйте '*' для создания синонима 'для всех' (*@domain.tld)" -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 #, fuzzy #| msgid "Invalid request" msgid "Sender addresses" msgstr "Ошибочный запрос" -#: admin/forms/account.py:265 +#: admin/forms/account.py:278 #, fuzzy -#| msgid "Mailbox(es) this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgid "Additional sender address(es) for this account. The user will be allowed to send emails using this address, even if it does not exist locally. Indicate one address per input. Press ENTER to add a new input." -msgstr "Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для добавления." +#| msgid "" +#| "Mailbox(es) this alias will point to. Indicate only one address per input, " +#| "press ENTER to add a new input." +msgid "" +"Additional sender address(es) for this account. The user will be allowed to " +"send emails using this address, even if it does not exist locally. Indicate " +"one address per input. Press ENTER to add a new input." +msgstr "" +"Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для " +"добавления." -#: 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 #, fuzzy #| msgid "Domain does not exist" 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 "Аккаунт создан" @@ -545,72 +620,90 @@ msgstr "Е-майл адрес" #: admin/forms/alias.py:25 #, fuzzy -#| msgid "The alias address (without the domain part). For a 'catch-all' address, just enter an * character." -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Адреса синонимов (без доменной части). Для указания адреса 'для всех' введите символ *" +#| msgid "" +#| "The alias address (without the domain part). For a 'catch-all' address, just" +#| " enter an * character." +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 +#: admin/forms/alias.py:34 #, fuzzy -#| msgid "Mailbox(es) this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для добавления." +#| msgid "" +#| "Mailbox(es) this alias will point to. Indicate only one address per input, " +#| "press ENTER to add a new input." +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для " +"добавления." -#: 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." -msgstr "Синоним(ы) этого домена. Вводите одно имя за раз. Нажмите 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 "" +"Синоним(ы) этого домена. Вводите одно имя за раз. Нажмите ENTER для " +"добавления." -#: 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 @@ -619,55 +712,59 @@ 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." -msgstr "Имя администратора. Не включайте имя домена оно будет добавлено автоматически." +#: 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 #, fuzzy #| msgid "Create a domain administrator" 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 #, fuzzy #| msgid "Create a domain administrator" 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 "Разделитель" @@ -675,23 +772,25 @@ 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 "Перенаправление сообщения, и сохранение копии в вашем локальном почтовом ящике" +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 "Продолжать при ошибке" @@ -699,7 +798,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 "Шифровать пароль" @@ -707,97 +806,97 @@ 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 "Ошибка импорта аккаунта (%s): домен должен существовать " -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 #, fuzzy #| msgid "Mailbox %s already exists" msgid "Mailbox {} already exists" msgstr "Почтовый ящик %s существует" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, fuzzy, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Ошибка импорта аккаунта (%s): домен должен существовать " -#: 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 #, fuzzy #| msgid "You can't delete your own domain" 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 "Объект уже существует: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d объектов импортировано" -#: 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 "" @@ -806,25 +905,25 @@ 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 #, fuzzy #| msgid "Domain modified" 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 "" @@ -833,162 +932,157 @@ 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 #, fuzzy #| msgid "Domain modified" msgid "Domain not found." msgstr "Домен изменен" -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -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 #, fuzzy #| msgid "The alias name" 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 #, fuzzy #| msgid "Invalid request" msgid "Invalid address" msgstr "Ошибочный запрос" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 #, fuzzy #| msgid "Local recipient %s not found" msgid "Local recipient {}@{} not found" msgstr "Локальный получатель %s не найден" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Неверная строка %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 "имя" -#: 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 #, fuzzy #| msgid "Check to activate this domain" 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 "Неизвестный домен %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Адрес почтового ящика (без @domain.tld)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Ошибка получения места находжения почтового ящика (%s)" -#: 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 #, fuzzy #| msgid "Domain created" msgid "{}: domain quota exceeded" @@ -998,8 +1092,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 "Закрыть" @@ -1054,9 +1149,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 "Синонимы доменов" @@ -1096,7 +1191,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 "Вспомогательный email" @@ -1107,7 +1202,7 @@ msgstr "Вспомогательный email" 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 "Номер телефона" @@ -1199,7 +1294,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 "Дата" @@ -1225,9 +1320,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 "Синонимы почтового ящика" @@ -1285,11 +1380,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 "Нет" @@ -1297,7 +1393,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 "Да" @@ -1312,7 +1408,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 "Удалить это разрешение" @@ -1355,13 +1451,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 "От" +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 "Кому" @@ -1395,9 +1491,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 "Обновление" @@ -1416,11 +1513,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:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1459,11 +1569,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 @@ -1475,93 +1590,99 @@ msgstr "" msgid "Search" msgstr "Поиск" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 #, fuzzy 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 #, fuzzy #| msgid "The domain name" 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 "Удалить %s?" -#: 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 +#, fuzzy, python-format +#| msgid "Domain modified" +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 #, fuzzy #| msgid "Alias created" msgid "Alias deleted" @@ -1574,38 +1695,38 @@ msgstr[2] "Синоним создан" 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] "Домен удален" msgstr[1] "Домена удалено" msgstr[2] "Доменов удалено" -#: 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] "Аккаунт удален" msgstr[1] "Аккаунта удалено" msgstr[2] "Аккаунтов удалено" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Импорт доменов" @@ -1613,87 +1734,74 @@ 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 #, fuzzy #| msgid "Invalid request" 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 -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 "Локальный" - -#: 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 "Профиль пользователя" - -#: 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 "Ошибка в написании" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Неправильное количество циклов" - -#: 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 "Старый пароль" -#: 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 "Локальный" + +#: 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: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:557 +msgid "Invalid rounds number" +msgstr "Неправильное количество циклов" + +#: 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 "Пользователь '%s' успешно вошел в систему" -#: 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 "" @@ -1703,452 +1811,500 @@ 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." -msgstr "Количество циклов (используется только для sha256crypt и sha512crypt), Может быть от 1000 до 999999999, включительно." +#: 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 "" +"Количество циклов (используется только для sha256crypt и sha512crypt), Может" +" быть от 1000 до 999999999, включительно." -#: 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 "Обновите пароль пользователя при входе в систему, чтобы использовать схему пароля по умолчанию" +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 "Параметры 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 "Адрес сервера" -#: 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 "IP адрес или DNS имя сервера 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 "Порт сервера" -#: 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 "Номер TCP порта 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 "Использовать безопасное соединение" -#: 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 "Использовать SSL/TLS соединение с 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 "Active Directory" -#: 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 "Укажите, если LDAP сервер в Active Directory" -#: 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." -msgstr "Члены этих LDAP Posix групп должны быть созданы администратором домена. Используйте ';' для как разделитель груп" +#: 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 "" +"Члены этих LDAP Posix групп должны быть созданы администратором домена. " +"Используйте ';' для как разделитель груп" -#: 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 "Тип групп, используемых вашим каталогом LDAP" -#: 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 "Соединится с 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 "Отличительное имя используемое для соединения с LDAP сервером. Оставьте пустым для анонимного соединения" +#: 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 "" +"Отличительное имя используемое для соединения с LDAP сервером. Оставьте " +"пустым для анонимного соединения" -#: 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 "Пароль для соединения с LDAP сервером" -#: 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." -msgstr "Необязательная срока поиска (например '(objectClass=person)') Значение нужно заключить в скобки" +#: 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 "" +"Необязательная срока поиска (например '(objectClass=person)') Значение нужно" +" заключить в скобки" -#: 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 "Шаблон пользователя 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 "Шаблон используется для построения запросов к DN Он должен содержать атрибут например (%(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Шаблон используется для построения запросов к DN Он должен содержать атрибут" +" например (%(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 "Приборная панель" -#: 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 "Пользовательская RSS лента" -#: 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 "Отображать пользовательскую ленту RSS для реселлеров и администраторов доменов" +msgstr "" +"Отображать пользовательскую ленту RSS для реселлеров и администраторов " +"доменов" -#: 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 "Спрятать виджет новых функций для реселлеров и администраторов доменов" +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 "Email адрес для отправки уведомлений" -#: 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" -#: 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 "Разрешить передачу с публичным API 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 "Проверить новые версии" -#: 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 "Отправлять статистику в Modoboa public API (счетчики и используемые расширения)" +msgstr "" +"Отправлять статистику в Modoboa public API (счетчики и используемые " +"расширения)" -#: 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 #, fuzzy #| msgid "Inactive account threshold" 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" -msgstr "Аккаунт с датой последнего входа, превышающей этот порог (в днях), будет считаться неактивным" +#: 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 "Если приложение не указано. Используется перенаправление по умолчанию." +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 "" @@ -2180,31 +2336,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 "" @@ -2221,20 +2377,20 @@ msgstr "изменено" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s пользователем %(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 от" -#: 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 "" @@ -2242,65 +2398,65 @@ 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 "Альтернативный e-mail может быть использован для востановления." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Ошибка обновления пароля: модуль LDAP не установлен" -#: 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 "Пользователь '%s' должен иметь действительный почтовый адрес" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Имя пользователя и адрес не должны отличатся для пользователя '%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] "Пароль должен содержать как минимум {} цифру." @@ -2308,7 +2464,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] "Пароль должен содержать как минимум {} букву в нижнем регистре." @@ -2316,7 +2472,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] "Пароль должен содержать как минимум {} заглавную букву." @@ -2324,7 +2480,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] "" @@ -2332,55 +2488,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 "" @@ -2405,7 +2561,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 @@ -2418,7 +2576,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 @@ -2430,7 +2590,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 "Информация" @@ -2462,7 +2622,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 "Логи" @@ -2490,7 +2650,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 "Параметры" @@ -2507,12 +2667,12 @@ msgstr "Сохранить" msgid "Modoboa settings" msgstr "Настройки 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 "Настройки" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Параметры" @@ -2532,7 +2692,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 "" @@ -2543,7 +2703,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 @@ -2555,29 +2717,44 @@ 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 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 @@ -2596,69 +2773,75 @@ msgstr "Домен изменен" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Шифровать пароль" + #: 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 "Завершить сеанс" -#: 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 "" -#: 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 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "Параметры LDAP" -#: 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 #, fuzzy #| msgid "No recipient defined" msgid "Not resolved" @@ -2701,11 +2884,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 "" @@ -2785,95 +2968,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 "" @@ -2902,7 +3085,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 @@ -2918,7 +3103,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2926,147 +3111,155 @@ 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 "Permission denied" 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 #, fuzzy #| msgid "Enable communication" 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 #, fuzzy #| msgid "Enable communication" 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 #, fuzzy #| msgid "Create aliases" 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 #, fuzzy #| msgid "LDAP settings" msgid "OfflineIMAP settings" msgstr "Параметры 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 msgid "IMAP migration" msgstr "" -#: 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 "Разрешить передачу с публичным API Modoboa" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Подключение к базе данных %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 "" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "В разрешении отказано: %s" -#: 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 "" @@ -3076,163 +3269,203 @@ msgstr "" msgid "Submit" msgstr "Подтвердить" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "" -#: 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 #, fuzzy #| msgid "Default limits" 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 +#: limits/app_settings.py:29 limits/app_settings.py:163 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество администраторов домена для нового администратора" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +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 +#: limits/app_settings.py:39 limits/app_settings.py:175 #, fuzzy #| msgid "Maximum number of allowed domains for a new administrator" -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +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 +#: limits/app_settings.py:48 limits/app_settings.py:186 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +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 +#: limits/app_settings.py:58 limits/app_settings.py:198 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +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 +#: limits/app_settings.py:67 limits/app_settings.py:210 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +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 #, fuzzy #| msgid "Default limits" 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 +#: limits/app_settings.py:94 limits/app_settings.py:248 #, fuzzy -#| msgid "Maximum number of allowed domain administrators for a new administrator" -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество администраторов домена для нового администратора" +#| msgid "" +#| "Maximum number of allowed domain administrators for a new administrator" +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 +#: limits/app_settings.py:104 limits/app_settings.py:260 #, fuzzy -#| msgid "Maximum number of allowed domain aliases for a new administrator" -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#| msgid "" +#| "Maximum number of allowed domain aliases for a new administrator" +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 +#: limits/app_settings.py:114 limits/app_settings.py:272 #, fuzzy #| msgid "Maximum number of allowed mailboxes for a new administrator" -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +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 +#: limits/app_settings.py:123 limits/app_settings.py:283 #, fuzzy #| msgid "Maximum number of allowed aliases for a new administrator" -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +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 "Максимальное количество создаваемых синонимов (алиасов) доменов для этого пользователя" +msgstr "" +"Максимальное количество создаваемых синонимов (алиасов) доменов для этого " +"пользователя" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" -msgstr "Максимальное количество создаваемых почтовых ящиков для этого пользователя" +msgstr "" +"Максимальное количество создаваемых почтовых ящиков для этого пользователя" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Максимальное количество создаваемых синонимов почтовых ящиков для этого пользователя" +msgstr "" +"Максимальное количество создаваемых синонимов почтовых ящиков для этого " +"пользователя" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Максимальное количество создаваемых администраторов домена для этого пользователя" +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 #, fuzzy #| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." -msgstr "Максимальное количество создаваемых синонимов (алиасов) доменов для этого пользователя" +msgstr "" +"Максимальное количество создаваемых синонимов (алиасов) доменов для этого " +"пользователя" -#: limits/constants.py:46 +#: limits/constants.py:85 #, fuzzy #| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." -msgstr "Максимальное количество создаваемых почтовых ящиков для этого пользователя" +msgstr "" +"Максимальное количество создаваемых почтовых ящиков для этого пользователя" -#: limits/constants.py:50 +#: limits/constants.py:93 #, fuzzy #| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Максимальное количество создаваемых синонимов почтовых ящиков для этого пользователя" +msgstr "" +"Максимальное количество создаваемых синонимов почтовых ящиков для этого " +"пользователя" -#: limits/constants.py:55 +#: limits/constants.py:102 #, fuzzy #| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." -msgstr "Максимальное количество создаваемых администраторов домена для этого пользователя" +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 "Ресурсы" @@ -3245,11 +3478,11 @@ msgstr "%s лимит исчерпан" 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 "Не лимитировано" @@ -3258,101 +3491,101 @@ 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 "Папка для сохранения RRD файлов" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Путь к директории для сохранения RRD файлов" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 #, fuzzy #| msgid "rejected messages" 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 #, fuzzy 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 #, fuzzy #| msgid "sent messages" msgid "virus messages" msgstr "Отправлено сообщений" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "sent messages" msgid "spam messages" msgstr "Отправлено сообщений" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 #, fuzzy #| msgid "rejected messages" msgid "greylisted messages" msgstr "Отвергнутые сообщения" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 #, fuzzy 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 "" @@ -3380,197 +3613,203 @@ 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 #, fuzzy #| msgid "Unknown graphic set" 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 #, fuzzy #| msgid "Update your personal information" msgid "Personal account information" msgstr "Обновить личную информацию" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Domain modified" 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory to save documents into" msgstr "Папка для сохранения RRD файлов" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 #, fuzzy #| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" msgstr "Путь к директории для сохранения RRD файлов" -#: 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 "Описание" -#: 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 "sent messages" 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "Server port" 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "Server port" 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 "" @@ -3578,15 +3817,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" @@ -3595,40 +3834,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 "Изменить пароль" -#: 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 "" @@ -3637,27 +3882,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 лимит исчерпан" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s лимит исчерпан" + +#: 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 "Эта дата закончилась" + +#: 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 +#, fuzzy +#| msgid "Automatic account removal" +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 "" +"Я сейчас отсутствую. Отвечу как только вернусь.\n" +"\n" +"Всего хорошего!\n" +"%(name)s\n" + +#: 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 "sent messages" +msgid "Auto-reply message" +msgstr "Сообщение автоответчика" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Автоматический ответ" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +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 "" @@ -3727,7 +4117,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 @@ -3735,7 +4127,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 @@ -3747,18 +4141,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 @@ -3780,28 +4182,26 @@ 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 "" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s лимит исчерпан" +#~ msgid "An alias with this name already exists." +#~ msgstr "Синоним с таким именем уже есть" #~ msgid "Graphical statistics about emails traffic using RRDtool" #~ msgstr "Графическая статистика о почтовом траффика использует RRDtool" #, fuzzy -#~| msgid "The domain name" #~ msgid "The relay domain name" #~ msgstr "Имя домена" @@ -3816,15 +4216,18 @@ msgstr "" #~ msgstr "Домен '%s' не существует" #, fuzzy -#~| msgid "Invalid format" #~ msgid "Raw format" #~ msgstr "Неверный формат" #~ msgid "File name" #~ msgstr "Имя файла" -#~ msgid "You can't define a forward to a local destination. Please ask your administrator to create an alias instead." -#~ msgstr "Вы не можете определить перенаправление на локальный адрес. Пожалуйста, попросите администратора создать синоним" +#~ msgid "" +#~ "You can't define a forward to a local destination. Please ask your " +#~ "administrator to create an alias instead." +#~ msgstr "" +#~ "Вы не можете определить перенаправление на локальный адрес. Пожалуйста, " +#~ "попросите администратора создать синоним" #~ msgid "Quota is greater than the allowed domain's limit (%dM)" #~ msgstr "Квота больше чем разрешено на уровне домена (%dM)" diff --git a/modoboa/locale/si/LC_MESSAGES/django.po b/modoboa/locale/si/LC_MESSAGES/django.po index 0146c4873..397f8baa0 100644 --- a/modoboa/locale/si/LC_MESSAGES/django.po +++ b/modoboa/locale/si/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: හෙළබස, 2022\n" "Language-Team: Sinhala (https://www.transifex.com/tonio/teams/13749/si/)\n" @@ -21,480 +21,533 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\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 +#: 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 +560,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 +639,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 +693,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 +717,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 +725,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 +820,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 +845,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 "" @@ -979,9 +1039,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 +1076,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 +1085,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 +1163,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 +1187,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 "" @@ -1189,7 +1249,7 @@ 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 +1257,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 +1270,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 +1307,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 +1344,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 +1364,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:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1344,11 +1418,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 +1439,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] "" @@ -1453,36 +1537,36 @@ msgstr[1] "" 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1490,83 +1574,69 @@ 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 "" @@ -1576,450 +1646,477 @@ 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 "" @@ -2051,31 +2148,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 "" @@ -2092,20 +2189,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 "" @@ -2113,139 +2210,139 @@ 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 "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 "" @@ -2270,7 +2367,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 @@ -2283,7 +2382,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 @@ -2295,7 +2396,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 "" @@ -2327,7 +2428,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 "" @@ -2353,7 +2454,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: 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 "" @@ -2370,12 +2471,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 "" @@ -2395,7 +2496,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 "" @@ -2404,7 +2505,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 @@ -2416,28 +2519,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 @@ -2452,67 +2570,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 "" @@ -2548,11 +2670,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 "" @@ -2624,95 +2746,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 "" @@ -2741,7 +2863,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 @@ -2757,7 +2881,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2765,136 +2889,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 "LDAP ගිණුම සෑදීමට අසමත් විය: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "LDAP ගිණුම මැකීමට අසමත් විය: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "LDAP ගිණුම අබල කිරීමට අසමත් විය: {}" -#: 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 "" @@ -2904,135 +3036,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 "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}" -#: 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 "" @@ -3045,11 +3197,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 "" @@ -3058,91 +3210,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 "" @@ -3170,175 +3322,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 "" @@ -3346,15 +3504,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" @@ -3363,38 +3521,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 "" @@ -3403,27 +3567,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 "" @@ -3491,7 +3784,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 @@ -3499,7 +3794,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 @@ -3511,18 +3808,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 @@ -3542,14 +3847,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/sk_SK/LC_MESSAGES/django.po b/modoboa/locale/sk_SK/LC_MESSAGES/django.po index 8f86047b9..9bab21673 100644 --- a/modoboa/locale/sk_SK/LC_MESSAGES/django.po +++ b/modoboa/locale/sk_SK/LC_MESSAGES/django.po @@ -11,490 +11,545 @@ 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: R .. , 2020\n" -"Language-Team: Slovak (Slovakia) (https://www.transifex.com/tonio/teams/13749/sk_SK/)\n" +"Language-Team: Slovak (Slovakia) (https://www.transifex.com/tonio/" +"teams/13749/sk_SK/)\n" "Language: sk_SK\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n " +">= 2 && n <= 4 ? 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 +#: 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 "" @@ -979,9 +1041,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 +1078,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 +1087,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 +1165,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 +1189,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 "" @@ -1189,7 +1251,7 @@ 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 +1259,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 +1272,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 +1309,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 +1346,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 +1366,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:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1344,11 +1420,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 +1441,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 +1541,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 +1553,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 +1574,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1496,83 +1582,69 @@ 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 +1654,477 @@ 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 +2156,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 +2197,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 +2218,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 "Nepodarilo sa aktulizovať účet LDAP: {}" -#: 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 +2286,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 +2294,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 +2302,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 +2310,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 +2383,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 +2398,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 +2412,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 +2444,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 +2472,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 +2489,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 +2514,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 +2523,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 +2537,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 +2588,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 +2688,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 +2764,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 +2881,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 +2899,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2781,136 +2907,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 "Nepodarilo sa vytvoriť účet LDAP: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Nepodarilo sa aktulizovať účet LDAP: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Nepodarilo sa odstrániť účet LDAP: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Nepodarilo sa deaktivovať účet LDAP: {}" -#: 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 +3054,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 "Nepodarilo sa aktulizovať účet LDAP: {}" -#: 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 +3215,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 +3228,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 +3340,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 +3522,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 +3539,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 +3585,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 +3802,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 +3812,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 +3826,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 +3865,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/sl_SI/LC_MESSAGES/django.po b/modoboa/locale/sl_SI/LC_MESSAGES/django.po index bce981935..0c9c9acc8 100644 --- a/modoboa/locale/sl_SI/LC_MESSAGES/django.po +++ b/modoboa/locale/sl_SI/LC_MESSAGES/django.po @@ -8,496 +8,551 @@ 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: 2016-11-09 16:13+0000\n" "Last-Translator: Gregor \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/tonio/modoboa/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/tonio/modoboa/" +"language/sl_SI/)\n" "Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 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 #, fuzzy #| msgid "Unknow migration" msgid "Unknown status" msgstr "Neznana selitev" -#: 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 +#: 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 #, fuzzy #| msgid "IMAP migration" msgid "Administration" msgstr "Selitev IMAP" -#: 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 #, fuzzy #| msgid "Server address" msgid "Sender addresses" msgstr "Naslov strežnika" -#: 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 "" @@ -510,69 +565,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 @@ -581,51 +644,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 "" @@ -633,23 +698,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 "" @@ -657,7 +722,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 "" @@ -665,93 +730,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 "" @@ -760,23 +825,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 "" @@ -785,153 +850,150 @@ 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 #, fuzzy #| msgid "Server address" msgid "address" msgstr "Naslov strežnika" -#: 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 #, fuzzy #| msgid "Server address" msgid "Invalid address" msgstr "Naslov strežnika" -#: 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 #, fuzzy, python-format #| msgid "Unknow migration" msgid "Unknown domain %s" msgstr "Neznana selitev" -#: 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 "" @@ -987,9 +1049,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 "" @@ -1024,7 +1086,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 "" @@ -1033,7 +1095,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 "" @@ -1111,7 +1173,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 "" @@ -1135,9 +1197,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 "" @@ -1197,7 +1259,7 @@ 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 "" @@ -1205,7 +1267,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 "" @@ -1218,7 +1280,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 "" @@ -1255,13 +1317,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 "" @@ -1292,9 +1354,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 "" @@ -1311,11 +1374,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:
            • domain; name; quota; default mailbox quota; enabled
            • domainalias; name; targeted domain; enabled
            • relaydomain; name; target host; target port; service; enabled; verify recipients

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • domain; name; quota; default mailbox quota; enabled
            • " +"
            • domainalias; name; targeted domain; enabled
            • " +"
            • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

            " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
            • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
            • alias; address; enabled; recipient; recipient; ...

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

            You can use a different character as separator.

            " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
              " +"
            • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
            • alias; address; enabled; " +"recipient; recipient; ...

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

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

            " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1352,11 +1428,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 @@ -1368,90 +1449,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] "" @@ -1463,11 +1549,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] "" @@ -1475,20 +1561,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] "" @@ -1496,7 +1582,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1504,83 +1590,69 @@ 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 "" @@ -1590,464 +1662,491 @@ 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 #, fuzzy #| msgid "OfflineIMAP settings" msgid "LDAP settings" msgstr "IMAP nastavitve brez povezave" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Naslov strežnika" -#: 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 "Vrata strežnika" -#: 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 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Naslov strežnika" -#: 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 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Vrata strežnika" -#: 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 "Uporabi zavarovano povezavo" -#: core/app_settings.py:174 core/app_settings.py:835 +#: core/app_settings.py:171 core/app_settings.py:888 #, fuzzy #| msgid "Use a secured connection to access IMAP server" msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "Za dostop do IMAP strežnika, uporabite zavarovano povezavo" -#: 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 #, fuzzy #| msgid "Connection settings" msgid "LDAP authentication settings" msgstr "Nastavitve povezave" -#: 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 #, fuzzy #| msgid "Connection settings" msgid "LDAP synchronization settings" msgstr "Nastavitve povezave" -#: 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 #, fuzzy #| msgid "Server address" msgid "Sender address" msgstr "Naslov strežnika" -#: 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 "" @@ -2079,31 +2178,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 "" @@ -2120,20 +2219,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 "" @@ -2141,67 +2240,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 msgid "Failed to update password: LDAP module not installed" msgstr "" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "" -#: core/models.py:286 +#: core/models.py:294 #, fuzzy #| msgid "Unknow migration" msgid "Unknown" msgstr "Neznana selitev" -#: 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] "" @@ -2209,7 +2308,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] "" @@ -2217,7 +2316,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] "" @@ -2225,7 +2324,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] "" @@ -2233,55 +2332,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 "" @@ -2306,7 +2405,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 @@ -2319,7 +2420,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 @@ -2331,7 +2434,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 "" @@ -2363,7 +2466,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 "" @@ -2391,7 +2494,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 "" @@ -2410,12 +2513,12 @@ msgstr "" msgid "Modoboa settings" msgstr "Nastavitve povezave" -#: 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 "" @@ -2435,7 +2538,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 "" @@ -2444,7 +2547,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 @@ -2456,28 +2561,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 @@ -2492,67 +2612,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 "" @@ -2588,11 +2712,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 "" @@ -2664,95 +2788,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 "" @@ -2781,7 +2905,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 @@ -2801,7 +2927,7 @@ msgstr "Selitev IMAP" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2809,148 +2935,156 @@ 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 #, fuzzy #| msgid "IMAP migration" msgid "Enable IMAP Migration" msgstr "Selitev IMAP" -#: 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 "IMAP migration" msgid "Enable IMAP Migration." msgstr "Selitev IMAP" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP" msgstr "IMAP nastavitve brez povezave" -#: 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 "Concurrent sync jobs" -#: 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 "The maximum number of concurrent synchronization jobs" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" msgstr "IMAP nastavitve brez povezave" -#: 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 nastavitve brez povezave" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 #, fuzzy #| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" msgstr "IMAP nastavitve brez povezave" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy #| msgid "IMAP migration" msgid "IMAP Migration" msgstr "Selitev IMAP" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Povezava z IMAP strežnikom ni uspela: %s" -#: 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 "Selitev IMAP" -#: 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 #, 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 "" @@ -2960,133 +3094,153 @@ msgstr "" msgid "Submit" msgstr "" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "" -#: 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 "" @@ -3099,11 +3253,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 "" @@ -3112,91 +3266,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 "" @@ -3224,203 +3378,209 @@ 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 #, fuzzy #| msgid "Unknow migration" msgid "Unknown graphic set" msgstr "Neznana selitev" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknow migration" msgid "Unknown domain" msgstr "Neznana selitev" -#: 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 "Cancel this account's migration" msgid "Personal account information" msgstr "Prekliči selitev računa" -#: 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 #, fuzzy #| msgid "Connection settings" msgid "Include mail client connection settings" msgstr "Nastavitve povezave" -#: 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 "Naslov strežnika" -#: pdfcredentials/app_settings.py:86 pdfcredentials/app_settings.py:191 +#: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of the SMTP server (hostname or IP)" msgstr "Naslov vašega IMAP strežnika" -#: 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 "Vrata strežnika" -#: pdfcredentials/app_settings.py:91 pdfcredentials/app_settings.py:197 +#: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of the SMTP server" msgstr "Vrata vašega IMAP strežnika" -#: 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 #, fuzzy #| msgid "Connection settings" msgid "SMTP connection security" msgstr "Nastavitve povezave" -#: 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 #, fuzzy #| msgid "Connection settings" msgid "Connection security mechanism" msgstr "Nastavitve povezave" -#: 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 "Naslov strežnika" -#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:209 +#: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of the IMAP server (hostname or IP)" msgstr "Naslov vašega IMAP strežnika" -#: 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 "Vrata strežnika" -#: pdfcredentials/app_settings.py:106 pdfcredentials/app_settings.py:215 +#: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of the IMAP server" msgstr "Vrata vašega IMAP strežnika" -#: 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 #, fuzzy #| msgid "Connection settings" msgid "IMAP connection security" @@ -3430,15 +3590,15 @@ msgstr "Nastavitve povezave" 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" @@ -3447,38 +3607,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 "" @@ -3487,29 +3653,158 @@ 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 #, fuzzy #| msgid "Server address" msgid "target host address" msgstr "Naslov strežnika" -#: 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 "" @@ -3579,7 +3874,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 @@ -3587,7 +3884,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 @@ -3599,18 +3898,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 @@ -3630,15 +3937,15 @@ 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 "" @@ -3651,7 +3958,8 @@ msgstr "" #~ msgstr "IMAP selitev z uporabo IMAP brez povezave" #~ msgid "Migrate existing mailboxes using IMAP and OfflineIMAP" -#~ msgstr "Preseli obstoječe poštne predale z uporabo IMAP in IMAP brez povezave" +#~ msgstr "" +#~ "Preseli obstoječe poštne predale z uporabo IMAP in IMAP brez povezave" #~ msgid "Cancel the migration for %s?" #~ msgstr "Prekličem selitev za %s?" diff --git a/modoboa/locale/sv/LC_MESSAGES/django.po b/modoboa/locale/sv/LC_MESSAGES/django.po index 6e9c9af31..a96d14845 100644 --- a/modoboa/locale/sv/LC_MESSAGES/django.po +++ b/modoboa/locale/sv/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Martin Persson , 2014,2017 # Olle Gustafsson , 2013 @@ -10,528 +10,589 @@ 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: 2011-07-01 08:15+0000\n" "Last-Translator: Olle Gustafsson , 2013,2015-2018,2020,2022-2023\n" "Language-Team: Swedish (http://app.transifex.com/tonio/modoboa/language/sv/)\n" +"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: 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 "Kvot som delas mellan brevlådor. Kan uttryckas i KB, MB (standard) eller GB. Ett värde på 0 betyder ingen kvot." +msgstr "" +"Kvot som delas mellan brevlådor. Kan uttryckas i KB, MB (standard) eller GB." +" Ett värde på 0 betyder ingen kvot." -#: 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 "Standardkvot i MB tillämpas på postlådor. Ett värde på 0 betyder ingen kvot." +msgstr "" +"Standardkvot i MB tillämpas på postlådor. Ett värde på 0 betyder ingen kvot." -#: 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 "Ingen auktoriserad MX-post hittades för den här domänen" -#: 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 "Kan inte vara större än domänkvoten" -#: 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 "Åtkomst nekad." -#: 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 "Detta fält är obligatoriskt" -#: admin/api/v1/serializers.py:186 +#: admin/api/v1/serializers.py:235 msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "Lista över administrerade domäner (endast återförsäljare och domänadministratörer)." +msgstr "" +"Lista över administrerade domäner (endast återförsäljare och " +"domänadministratörer)." -#: admin/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 "Inte tillåtet för denna roll." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Måste vara lika med postlådans full_adress" -#: 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 "Detta fält är obligatoriskt." -#: 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 "Lokal domän {} finns inte" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "En lista över mottagare" -#: 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 "Användare '%s' finns redan" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "Du har inte åtkomst till den här domänen." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "Du har inte tillgång till den här brevlådan." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "Här är ditt nya Modoboa-lösenord: {}" -#: 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 "Användare '%s' finns redan" -#: 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 "Måste vara ett positivt heltal" -#: 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 "Katalog hittades ej." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 msgid "Directory non-writable" msgstr "Katalog är en skrivbar" -#: 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 hittades ej, säkerställ att det är installerat." -#: 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 "Detta fält tillåter bara giltiga IP-adresser (eller nätverk)" -#: admin/api/v2/serializers.py:263 +#: admin/api/v2/serializers.py:265 msgid "Please disable imap migration before disabling this option." msgstr "Inaktivera imap-migrering innan du inaktiverar det här alternativet." -#: 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 "Definiera minst ett auktoriserat nätverk/adress" -#: admin/api/v2/serializers.py:508 +#: admin/api/v2/serializers.py:511 msgid "A mailbox is required to create aliases." msgstr "En brevlåda krävs för att skapa alias." -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 msgid "Unknown status" msgstr "Okänd status" -#: 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 "Du saknar åtkomst till denna 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 "Du kan inre radera din egen domän" -#: admin/api/v2/viewsets.py:384 +#: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" msgstr "Inget larm-ID angett" -#: admin/api/v2/viewsets.py:389 +#: admin/api/v2/viewsets.py:396 msgid "Received invalid alarm id(s)" msgstr "Mottog ogiltiga larm-id(n)" -#: 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äner" -#: 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 "Aktivera MX kontroller" -#: 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 "Kontrollerar att varje domän har en giltig MX post" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Giltiga MX" -#: admin/app_settings.py:37 admin/app_settings.py:312 +#: 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 "En lista med IP- eller nätverksadresser som varje MX-post ska matcha. En varning kommer att skickas om en post inte respekterar den." +msgstr "" +"En lista med IP- eller nätverksadresser som varje MX-post ska matcha. En " +"varning kommer att skickas om en post inte respekterar den." -#: 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 "Nya domäner måste använda auktoriserade MX(er)" -#: admin/app_settings.py:48 admin/app_settings.py:321 +#: 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 "Förhindra skapandet av en ny domän om dess MX-post inte använder någon av de definierade adresserna." +msgstr "" +"Förhindra skapandet av en ny domän om dess MX-post inte använder någon av de" +" definierade adresserna." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable SPF checks" +msgid "Enable IPV6 checks" +msgstr "Aktivera SPF-kontroller" + +#: 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 "Aktivera SPF-kontroller" -#: 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 "Kontrollera om varje domän har en giltig SPF-post" -#: 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 "Aktivera DKIM-kontroller" -#: 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 "Kontrollera om alla domäner med DKIM-inloggning aktiverad har en giltig DNS-post" +msgstr "" +"Kontrollera om alla domäner med DKIM-inloggning aktiverad har en giltig DNS-" +"post" -#: 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 "Aktivera DMARC-kontroller" -#: 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 "Kontrollera om varje domän har en giltig DMARC-post" -#: 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 "Aktivera kontroller av autokonfiguration" -#: 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 "Kontrollera om varje domän har giltiga poster för autokonfiguration" -#: 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 "Aktivera DNSBL-kontroller" -#: 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 "Kontrollera varje domän mot stora DNSBL-leverantörer" -#: 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 "Anpassad 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 "Använd en anpassad DNS-server istället för lokal serverkonfiguration" -#: 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 "DKIM-nycklar lagringskatalog" -#: admin/app_settings.py:107 admin/app_settings.py:367 +#: 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 "Absolut sökväg till katalogen där DKIMs privata nycklar kommer att lagras. Se till att den här katalogen tillhör root-användaren och inte kan läsas av omvärlden." +msgstr "" +"Absolut sökväg till katalogen där DKIMs privata nycklar kommer att lagras. " +"Se till att den här katalogen tillhör root-användaren och inte kan läsas av " +"omvärlden." -#: 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 "Standard DKIM-nyckellängd" -#: 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 "Standardlängd i bitar för nyligen genererade DKIM-nycklar." -#: 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 "Standard domänkvota" -#: admin/app_settings.py:127 admin/app_settings.py:381 +#: 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 "Standardkvot (i MB) tillämpas på nyskapade domäner utan värde angivet. Ett värde på 0 betyder ingen kvot." +msgstr "" +"Standardkvot (i MB) tillämpas på nyskapade domäner utan värde angivet. Ett " +"värde på 0 betyder ingen kvot." -#: 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 "Standardgräns för domänsändning" -#: admin/app_settings.py:136 admin/app_settings.py:388 +#: 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 "Antal meddelanden som nyskapade domäner tillåts skicka per dag. Lämna tomt utan gräns." +msgstr "" +"Antal meddelanden som nyskapade domäner tillåts skicka per dag. Lämna tomt " +"utan gräns." -#: 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 "Brevlådor" -#: 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 "Hantera brevlådor på filsystemet" -#: admin/app_settings.py:147 admin/app_settings.py:400 +#: 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 "Byt namn på eller ta bort postlådor i filsystemet när de byter namn eller tas bort inom Modoboa" +msgstr "" +"Byt namn på eller ta bort postlådor i filsystemet när de byter namn eller " +"tas bort inom Modoboa" -#: admin/app_settings.py:153 admin/app_settings.py:405 -#: admin/forms/domain.py:49 admin/models/domain.py:32 +#: 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 "Standard brevlådekvota" -#: admin/app_settings.py:156 +#: 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 "Standardpostlådekvot (i MB) tillämpas på nyskapade postlådor utan något värde angivet. Ett värde på 0 betyder ingen kvot." +msgstr "" +"Standardpostlådekvot (i MB) tillämpas på nyskapade postlådor utan något " +"värde angivet. Ett värde på 0 betyder ingen kvot." -#: 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 "Standardgräns för postlådans sändning" -#: admin/app_settings.py:165 admin/app_settings.py:415 +#: 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 "Antal meddelanden som nyskapade brevlådor tillåts skicka per dag. Lämna tomt utan gräns." +msgstr "" +"Antal meddelanden som nyskapade brevlådor tillåts skicka per dag. Lämna tomt" +" utan gräns." -#: 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 "Automatisk kontoradering" -#: 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 "När en brevlåda tas bort, ta också bort det associerade kontot" -#: 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 "Automatisk domän-/brevlådeskapande" -#: admin/app_settings.py:181 admin/app_settings.py:428 +#: admin/app_settings.py:177 admin/app_settings.py:491 msgid "" "Create a domain and a mailbox when an account is automatically created." msgstr "Skapa en domän och en postlåda när ett konto skapas automatiskt." -#: 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 "Skapa ett alias när en postlåda döps om" -#: 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 "Skapa ett alias med den gamla adressen när en postlåda byts namn." -#: admin/app_settings.py:407 +#: 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 "Standardpostlådekvot (i MB) tillämpas på nyskapade domäner utan värde angivet. Ett värde på 0 betyder ingen kvot." +msgstr "" +"Standardpostlådekvot (i MB) tillämpas på nyskapade domäner utan värde " +"angivet. Ett värde på 0 betyder ingen kvot." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Administration" -#: 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än" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Relädomän" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "Öppnad" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "Stängd" -#: 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ändarnamn" -#: admin/forms/account.py:34 +#: 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 "Användarens namn. Måste vara en giltig e-postadress för enkla användare eller administratörer med en brevlåda." +msgstr "" +"Användarens namn. Måste vara en giltig e-postadress för enkla användare " +"eller administratörer med en brevlåda." -#: 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 "Roll" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Välj" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Vilken behörighetsnivå denna användare kommer att ha" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Slumpmässigt lösenord" -#: admin/forms/account.py:46 +#: 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 "Skapa ett slumpmässigt lösenord. Om du uppdaterar det här kontot och markerar den här rutan kommer ett nytt lösenord att skapas." +msgstr "" +"Skapa ett slumpmässigt lösenord. Om du uppdaterar det här kontot och " +"markerar den här rutan kommer ett nytt lösenord att skapas." -#: 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 "Lösenord" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Bekräftelse" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Ange samma lösenord som ovan, för verifiering." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Aktiverad" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Endast superadministratörer är tillåtna för detta läge" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "De två lösenordsfälten matchade inte." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Du kan inte inaktivera ditt eget konto" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "E-post" -#: admin/forms/account.py:228 +#: admin/forms/account.py:236 msgid "Create an alias using the old address" msgstr "Skapa ett alias med den gamla adressen" -#: 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 "Kvota" -#: admin/forms/account.py:236 +#: 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 "Kvot för denna brevlåda, kan uttryckas i KB, MB (standard) eller GB. Definiera ett anpassat värde eller använd domänens standardvärde. Lämna tomt för att definiera ett obegränsat värde (inte tillåtet för domänadministratörer)." +msgstr "" +"Kvot för denna brevlåda, kan uttryckas i KB, MB (standard) eller GB. " +"Definiera ett anpassat värde eller använd domänens standardvärde. Lämna tomt" +" för att definiera ett obegränsat värde (inte tillåtet för " +"domänadministratörer)." -#: 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 "Gräns för sändning av meddelanden" -#: 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 "Antal meddelanden som denna brevlåda kan skicka per dag" -#: 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" -#: admin/forms/account.py:256 +#: 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 för denna brevlåda. Ange endast en adress per ingång, tryck ENTER för att lägga till en ny ingång. För att skapa ett catchall-alias anger du bara domännamnet (@domain.tld)." +msgstr "" +"Alias för denna brevlåda. Ange endast en adress per ingång, tryck ENTER för " +"att lägga till en ny ingång. För att skapa ett catchall-alias anger du bara " +"domännamnet (@domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Avsändaradress(er)" -#: admin/forms/account.py:265 +#: 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 "Ytterligare avsändaradresser för detta konto. Användaren kommer att tillåtas skicka e-post med denna adress, även om den inte finns lokalt. Ange en adress per fält. Tryck på ENTER för att lägga till ytterligare ett fält.." +msgstr "" +"Ytterligare avsändaradresser för detta konto. Användaren kommer att tillåtas" +" skicka e-post med denna adress, även om den inte finns lokalt. Ange en " +"adress per fält. Tryck på ENTER för att lägga till ytterligare ett fält.." -#: 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änen existerar inte" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Lokal domän existerar inte" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domän(er)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domäner användaren administrerar" -#: 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 "Allmänt" +msgstr "Generellt" -#: 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 "E-post" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Rättigheter" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Konto uppdaterat" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nytt konto" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Konto skapat" @@ -547,74 +608,82 @@ msgstr "E-postadress" msgid "" "The alias address. To create a catchall alias, just enter the domain name " "(@domain.tld)." -msgstr "Aliasadressen. För att skapa ett catchall-alias anger du bara domännamnet (@domain.tld)." +msgstr "" +"Aliasadressen. För att skapa ett catchall-alias anger du bara domännamnet " +"(@domain.tld)." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Mottagare" -#: admin/forms/alias.py:33 +#: 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 "Adresser som detta alias kommer att peka på. Ange endast en adress per ingång, tryck ENTER för att lägga till en ny ingång." +msgstr "" +"Adresser som detta alias kommer att peka på. Ange endast en adress per " +"ingång, tryck ENTER för att lägga till en ny ingång." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Ingen mottagare definierad" -#: 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 +#: 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 för denna domän. Ange endast ett namn per ingång, tryck på ENTER för att lägga till en ny ingång." +msgstr "" +"Alias för denna domän. Ange endast ett namn per ingång, tryck på ENTER för " +"att lägga till en ny ingång." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Nyckelväljare" -#: admin/forms/domain.py:52 +#: 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 "Standardkvot tillämpas på postlådor. Kan uttryckas i KB, MB (standard) eller GB. Ett värde på 0 betyder ingen kvot." +msgstr "" +"Standardkvot tillämpas på postlådor. Kan uttryckas i KB, MB (standard) eller" +" GB. Ett värde på 0 betyder ingen kvot." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "domän 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 "En %s med detta namn finns redan" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Lagringskatalogen för DKIM-nycklar är inte konfigurerad" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Du kan inte definiera en obegränsad kvot." -#: 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än" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Skapa en domänadministratör" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Skapar automatiskt en administratör för den här domänen" -#: 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 @@ -623,53 +692,55 @@ msgstr "Skapar automatiskt en administratör för den här domänen" msgid "Name" msgstr "Namn" -#: admin/forms/domain.py:241 +#: admin/forms/domain.py:255 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." -msgstr "Administratörens namn. Inkludera inte domänens namn här, det kommer att läggas till automatiskt. " +msgstr "" +"Administratörens namn. Inkludera inte domänens namn här, det kommer att " +"läggas till automatiskt. " -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Generera ett slumpmässigt lösenord för administratören." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Med en brevlåda" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Skapa en brevlåda för administratören" -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Skapa alias" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Skapa automatiskt standard alias för den här domänen" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Ogiltigt format" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domän ändrad" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Val" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Ny domän" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domän skapad" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Avgränsare" @@ -677,23 +748,23 @@ msgstr "Avgränsare" msgid "Recipient(s)" msgstr "Mottagare" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Ange en eller flera mottagare avgränsade med ett \",\"" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Spara lokala kopior" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "Vidarebefordra meddelanden och lagra kopior i din lokala brevlåda" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Välj en fil" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Fortsätt vid fel" @@ -701,101 +772,102 @@ msgstr "Fortsätt vid fel" msgid "Don't treat duplicated objects as error" msgstr "Behandla inte duplicerade objekt som fel" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Crypt lösenord" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Markera det här alternativet om lösenorden i din fil inte är krypterade" +msgstr "" +"Markera det här alternativet om lösenorden i din fil inte är krypterade" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Kontoimport misslyckades (%s): domänen existerar inte" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Brevlåda {} finns redan" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Kontoimport misslyckades (%s): fel kvota värde" -#: 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 "Identiteter" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Vidarebefordra" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "En brevlåda krävs" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Du får inte importera domäner" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Du får inte importera domänalias." -#: 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 "Ingen DNS-post hittades för %s" -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Inga %(type)s poster för %(name)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 "Inga fungerande namnservrar hittades" -#: 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 "DNS uppslag timeout, det går inte att fråga %s för tillfället" -#: admin/lib.py:212 +#: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" msgstr "DNS namn är för långt: %s" -#: admin/lib.py:239 +#: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "Ogiltigt IP-adressformat för {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Objekt finns redan: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objekt har importerats framgångsrikt" -#: 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 "CSV-filen är inte kodad i UTF-8, försöker gissa kodning" -#: 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 "Läser CSV fil med %(encoding)s kodning" -#: 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 "Det gick inte att avkoda CSV-fil med %(encoding)s kodning" @@ -804,23 +876,23 @@ msgstr "Det gick inte att avkoda CSV-fil med %(encoding)s kodning" msgid "DKIM path non-writable" msgstr "DKIM sökväg ej skrivbar" -#: admin/management/commands/subcommands/_mx.py:121 +#: admin/management/commands/subcommands/_mx.py:133 msgid "MX {} listed by DNSBL provider {}" msgstr "MX {} listad av DNSBL-leverantör {}" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "Domänen har ingen MX-post" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Domänen {} har ingen MX-post" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "Ogiltig MX-post: {}" -#: 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-posten för domänen {0} är ogiltig: {1}" @@ -829,149 +901,147 @@ msgstr "MX-posten för domänen {0} är ogiltig: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX-problem för domän {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL-problem för domänen {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Domän hittades ej." -#: admin/models/alias.py:37 -msgid "An alias with this name already exists." -msgstr "Ett alias med detta namn finns redan." - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "adress" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Alias-adressen" -#: 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 "aktiverad" -#: 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 "Markera för att aktivera detta alias" -#: 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 "Beskrivning" -#: 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 "Går ut" -#: 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 "Ogiltig adress" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Den lokala mottagaren {}@{} hittades inte" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 msgid "Invalid line: {}" msgstr "Ogiltig rad: {}" -#: 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 "namn" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Domännamnet" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "Antal meddelanden som denna domän kan skicka per dag" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Markera för att aktivera denna domän" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Aktivera DNS-kontroller" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Markera för att aktivera DNS-kontroller för den här domänen" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Aktivera DKIM-signering" -#: admin/models/domain.py:59 +#: admin/models/domain.py:63 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Om du aktiverar den här funktionen kommer en DKIM-nyckel att genereras för den här domänen." +msgstr "" +"Om du aktiverar den här funktionen kommer en DKIM-nyckel att genereras för " +"den här domänen." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Nyckellängd" -#: 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 "Ogiltig rad" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 msgid "{}: no authorized MX record found for domain" msgstr "{}: ingen auktoriserad MX-post hittades för domänen" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 msgid "{}: invalid quota value for domain" msgstr "{}: ogiltigt kvotvärde för domänen" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 msgid "{}: invalid default mailbox quota value for domain" msgstr "{}: ogiltigt standardvärde för postlådekvot för domänen" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 msgid "{}: default mailbox quota cannot be greater than domain quota" msgstr "{}: standardpostlådekvoten kan inte vara större än domänkvoten" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Aliasnamn" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "mottagare" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Domänen som detta alias pekar på" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Okänd domän %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Mailbox-adress (utan @domain.tld-delen)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Det gick inte att hämta postlådans plats (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "En kvot krävs" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" msgstr "{}: domänkvoten har överskridits" @@ -1028,9 +1098,9 @@ msgstr "Antal" #: 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än alias" @@ -1065,7 +1135,7 @@ msgstr "Skapad" msgid "Last login" msgstr "Senaste inloggad" -#: 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är e-post" @@ -1074,7 +1144,7 @@ msgstr "Sekundär e-post" msgid "Not defined" msgstr "Ej definierat" -#: 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 "Telefonnummer" @@ -1152,7 +1222,7 @@ msgstr "Öppnade alarm för" #: 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" @@ -1176,9 +1246,9 @@ msgstr "Skapad datum" msgid "Last modification date" msgstr "Senast ändrad datum" -#: 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 "Brevlådealias" @@ -1236,10 +1306,11 @@ msgstr "Varning" #: admin/templates/admin/domain_detail.html:139 msgid "" "DKIM keys already exist for this domain. Do you want to overwrite them?" -msgstr "DKIM-nycklar finns redan för den här domänen. Vill du skriva över dem?" +msgstr "" +"DKIM-nycklar finns redan för den här domänen. Vill du skriva över dem?" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:397 +#: lib/form_utils.py:400 msgid "No" msgstr "Nej" @@ -1247,7 +1318,7 @@ msgstr "Nej" msgid "Generate new key" msgstr "Skapa ny nyckel" -#: 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 "Ja" @@ -1260,7 +1331,7 @@ msgid "Administrators" msgstr "Administratörer" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Ta bort denna behörighet" @@ -1297,13 +1368,13 @@ msgstr "Kö ID" #: 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 "Från" #: 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 "Till" @@ -1334,9 +1405,10 @@ msgstr "inaktiverat" msgid "Automatically forward emails to another address" msgstr "Vidarebefordra e-postmeddelanden automatiskt till en annan adress" -#: 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 "Uppdatera" @@ -1361,7 +1433,13 @@ msgid "" "verify recipients

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

          You can " "use a different character as separator.

          " -msgstr "Ange en CSV-fil där raderna respekterar ett av följande format:
            domän; namn; kvota; standard mailbox kvota; aktiverad
          • domänalias; namn; måldomän; aktiverad relädomän; namn; målvärd; målport; service; aktiverad; verifierad mottagare

          Det första elementet i varje rad är obligatoriskt och måste vara lika med ett av de tidigare värdena.

          Du kan använda ett annat tecken som avgränsare.

          " +msgstr "" +"Ange en CSV-fil där raderna respekterar ett av följande format:
            domän; " +"namn; kvota; standard mailbox kvota; aktiverad
          • domänalias; namn; " +"måldomän; aktiverad relädomän; namn; målvärd; målport; service; aktiverad; " +"verifierad mottagare

          Det första elementet i varje rad är " +"obligatoriskt och måste vara lika med ett av de tidigare värdena.

          Du " +"kan använda ett annat tecken som avgränsare.

          " #: admin/templates/admin/import_identities_form.html:6 msgid "" @@ -1371,7 +1449,13 @@ msgid "" "recipient; recipient; ...

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

        You can" " use a different character as separator.

        " -msgstr "Ange en CSV-fil där raderna respekterar ett av följande format:
          konto; login; lösenord; förnamn; efternamn; aktiverad; grupp; adress; kvota; [, domäner, ...]
        • alias; adress; aktiverad; mottagare; mottagare; ...

        Det första elementet i varje rad är obligatoriskt och måste vara lika med ett av de tidigare värdena.

        Du kan använda ett annat tecken som avgränsare.

        " +msgstr "" +"Ange en CSV-fil där raderna respekterar ett av följande format:
          konto; " +"login; lösenord; förnamn; efternamn; aktiverad; grupp; adress; kvota; [, " +"domäner, ...]
        • alias; adress; aktiverad; mottagare; " +"mottagare; ...

        Det första elementet i varje rad är " +"obligatoriskt och måste vara lika med ett av de tidigare värdena.

        Du " +"kan använda ett annat tecken som avgränsare.

        " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1399,7 +1483,8 @@ msgstr "Uppdaterad" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "Denna IP matchar inte någon av de giltiga MX som definieras i parametrar" +msgstr "" +"Denna IP matchar inte någon av de giltiga MX som definieras i parametrar" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1410,14 +1495,19 @@ msgstr "Ingen MX-post hittades för den här domänen." msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" -msgstr "Modoboa upptäckte att domänen %(domain)s listas av följande DNSBL-leverantörer:" +msgstr "" +"Modoboa upptäckte att domänen %(domain)s listas av följande DNSBL-" +"leverantörer:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 msgid "" "The domain's reputation will be affected and there is a chance that emails " "coming from it are considered as spam. You should contact those providers " "and ask them to unlist detected IP address(es)." -msgstr "Domänens rykte kommer att påverkas och det finns en chans att e-postmeddelanden som kommer från den betraktas som spam. Du bör kontakta dessa leverantörer och be dem att ta bort upptäckta IP-adresser." +msgstr "" +"Domänens rykte kommer att påverkas och det finns en chans att " +"e-postmeddelanden som kommer från den betraktas som spam. Du bör kontakta " +"dessa leverantörer och be dem att ta bort upptäckta IP-adresser." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format @@ -1428,90 +1518,96 @@ msgstr "Modoboa upptäckte att domänen %(domain)s saknar en giltig MX-post:" msgid "Search" msgstr "Sök" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "nabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Lista domäner" -#: 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 "Lista kvoter" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "Meddelandeloggar" -#: 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 "Importera" -#: 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 "Exportera" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Lista identiteter" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Visa domänens identiteter" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "Visa domänens larm" -#: 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 "Redigera {}" -#: 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 "Radera %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Ingen MX-post för %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 "Ogiltigt IP-adressformat för %(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 "Ingen MX-post för %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Alias med detta namn finns redan" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Skapa" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Nytt alias" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias skapat" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias uppdaterat" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias raderat" @@ -1521,36 +1617,36 @@ msgstr[1] "Alias raderat" msgid "MX records of {}" msgstr "MX-poster för {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL-sammanfattning för {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domän raderad" msgstr[1] "Domän raderad" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Exportera identiteter" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Exportera domäner" -#: 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 "Ogiltig förfrågan" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto raderat" msgstr[1] "Konto raderat" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Importera domäner" @@ -1558,84 +1654,71 @@ msgstr "Importera domäner" msgid "Import identities" msgstr "Importera identiteter" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Vidarebefordring uppdaterad" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Ogiltig PIN-kod" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA redan aktiverat" -#: core/api/v1/viewsets.py:61 +#: core/api/v1/serializers.py:40 +#, fuzzy, python-format +#| msgid "Failed connection attempt from '%s' as user '%s'" +msgid "Failed TFA settings editing attempt from '%s' as user '%s'" +msgstr "Misslyckades anslutningsförsök från '%s' som användare '%s'" + +#: core/api/v1/serializers.py:44 core/api/v2/serializers.py:274 +msgid "Invalid password" +msgstr "Ogiltigt lösenordd" + +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 msgid "2FA is not enabled" msgstr "2FA är nu aktiverat" -#: 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 "Lokal" -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (svag)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (svag)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (svag)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (svag)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "plain (svag)" - -#: 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 "Användarprofil" #: 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 "Ogiltig syntax" -#: 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 "Ogiltigt antal omgångar" -#: 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 "Denna kod är ogiltig" -#: core/api/v2/serializers.py:274 -msgid "Invalid password" -msgstr "Ogiltigt lösenordd" - -#: 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 "Använd följande kod för att återställa ditt Modoboa lösenord: {}" -#: core/api/v2/views.py:54 +#: core/api/v2/views.py:57 #, python-format msgid "Failed connection attempt from '%s' as user '%s'" msgstr "Misslyckades anslutningsförsök från '%s' som användare '%s'" -#: 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 "Användare '%s' har loggat in" -#: 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 "Fel lösenordsschema. Uppdaterar %s lösenord" @@ -1645,478 +1728,517 @@ msgstr "Fel lösenordsschema. Uppdaterar %s lösenord" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Fel lösenordshash. Uppdaterar %s lösenord" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Autentisering" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Autentiseringstyp" -#: 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 "Autentiserings backend" -#: 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 "Standard lösenords schema" -#: 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 "Krypteringsschema för brevlåde lösenord" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Antal omgångar" -#: core/app_settings.py:61 core/app_settings.py:743 +#: 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 "Antal omgångar att använda (används endast av sha256crypt och sha512crypt). Måste vara mellan 1000 och 999999999." +msgstr "" +"Antal omgångar att använda (används endast av sha256crypt och sha512crypt). " +"Måste vara mellan 1000 och 999999999." -#: 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 "Uppdatera lösenordsschema vid inloggning" -#: 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 "Uppdatera användarlösenord vid inloggning för att använda standard schema" +msgstr "" +"Uppdatera användarlösenord vid inloggning för att använda standard schema" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Standardlösenord" -#: 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 "Standardlösenord för automatiskt skapade konton." -#: 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 "Slumpmässig längd på lösenord" -#: 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 "Längd på slumpmässigt genererat lösenord" -#: 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 "Uppdatera lösenords service URL" -#: core/app_settings.py:94 core/app_settings.py:768 +#: 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 "Webbadressen till en extern sida där användare kan uppdatera sitt lösenord. Det gäller endast icke-lokala användare, dvs. de som skapas automatiskt efter en lyckad extern autentisering (LDAP, SMTP)." +msgstr "" +"Webbadressen till en extern sida där användare kan uppdatera sitt lösenord. " +"Det gäller endast icke-lokala användare, dvs. de som skapas automatiskt " +"efter en lyckad extern autentisering (LDAP, SMTP)." -#: 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 "Meddelande om återställning av lösenord" -#: 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 "Ett tillfälligt meddelande som kommer att visas på sidan för återställning av lösenord." +msgstr "" +"Ett tillfälligt meddelande som kommer att visas på sidan för återställning " +"av lösenord." -#: 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 "Aktivera lösenordsåterställning via SMS" -#: 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 "Aktivera återställning av lösenord via SMS för användare som fyllt i ett telefonnummer." +msgstr "" +"Aktivera återställning av lösenord via SMS för användare som fyllt i ett " +"telefonnummer." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "SMS provider" -#: 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 "Välj en leverantör för att skicka SMS för lösenordsåterställning" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "LDAP inställningar" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Server adress" -#: 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 "IP adressen eller DNS namn för LDAP server" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Server port" -#: 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 "TCP port som används av LDAP servern" -#: 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 "Aktivera sekundär server (reserv)" -#: core/app_settings.py:150 core/app_settings.py:814 +#: 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 "Aktivera en sekundär LDAP-server som kommer att användas om den primära misslyckas" +msgstr "" +"Aktivera en sekundär LDAP-server som kommer att användas om den primära " +"misslyckas" -#: 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 "Sekundär serveradress" -#: 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 "IP-adressen eller DNS-namnet på den sekundära LDAP-servern" -#: 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 "Sekundär serverport" -#: 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 "TCP-portnumret som används av LDAP sekundärserver" -#: 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 "Använd en säker anslutning" -#: 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 "Använd en SSL / STARTTLS-anslutning för att komma åt LDAP-servern" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "Berätta om LDAP-servern är en Active Directory" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Administratörsgrupper" -#: core/app_settings.py:188 core/app_settings.py:845 +#: 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 "Användare av dessa LDAP Posix grupper kommer skapas som domänadministratörer. Använd ';' för att separera grupper." +msgstr "" +"Användare av dessa LDAP Posix grupper kommer skapas som " +"domänadministratörer. Använd ';' för att separera grupper." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Grupptyp" -#: 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 "Välj LDAP grupptyp att använda med din katalog" -#: 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 "Grupper sökbas" -#: 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 "Det unika namnet för sökbasen som används för att hitta grupper" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Lösenordsattribut" -#: 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 "Attribut som används för att lagra användarlösenord" -#: 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 "LDAP autentiseringsinställningar" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Autentiseringsmetod" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Sök och bind" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Direkt bindning" -#: 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 "Välj autentiseringsmetod att använda" -#: 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 "Bind DN" -#: core/app_settings.py:234 core/app_settings.py:288 core/app_settings.py:882 -#: core/app_settings.py:927 +#: 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 "Det unika namnet för att använda vid bindningar till LDAP-servern. Lämna tomt för en anonym bindning" +msgstr "" +"Det unika namnet för att använda vid bindningar till LDAP-servern. Lämna " +"tomt för en anonym bindning" -#: 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 "Bind lösenord" -#: 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 "Lösenordet ska användas vid bindning till LDAP-servern (med \"Bind DN ')" +msgstr "" +"Lösenordet ska användas vid bindning till LDAP-servern (med \"Bind 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 "Användare sökbas" -#: 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 "Det unika namnet för sökbasen som används för att hitta användare" -#: 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 "Sökfilter" -#: core/app_settings.py:264 core/app_settings.py:356 core/app_settings.py:907 -#: core/app_settings.py:981 +#: 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 "En valfri filtersträng (t.ex. \"(objectClass = personer) '). För att vara giltigt måste det omges av parenteser." +msgstr "" +"En valfri filtersträng (t.ex. \"(objectClass = personer) '). För att vara " +"giltigt måste det omges av parenteser." -#: 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 "Anvädar DN mall" -#: 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 "Mallen som används för att konstruera en användares DN. Den bör innehålla en platshållare (dvs. %(user)s)" +msgstr "" +"Mallen som används för att konstruera en användares DN. Den bör innehålla en" +" platshållare (dvs. %(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 "LDAP synkroniseringsinställningar" -#: 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 "Aktivera export till LDAP" -#: core/app_settings.py:309 core/app_settings.py:942 +#: core/app_settings.py:302 core/app_settings.py:1047 msgid "" "Enable automatic synchronization between local database and LDAP directory" -msgstr "Aktivera automatisk synkronisering mellan lokal databas och LDAP-katalog" +msgstr "" +"Aktivera automatisk synkronisering mellan lokal databas och LDAP-katalog" -#: 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 "Ta bort fjärran LDAP-konto när lokalt konto raderas" -#: core/app_settings.py:319 core/app_settings.py:950 +#: 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 "Radera LDAP-fjärrkonto när det lokala kontot raderas, annars inaktiveras det." +msgstr "" +"Radera LDAP-fjärrkonto när det lokala kontot raderas, annars inaktiveras " +"det." -#: 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 "DN-mall för kontot" -#: 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)" -msgstr "Mallen som används för att skapa ett kontos DN. Den ska innehålla en platshållare (ex.%(user)s)" +msgstr "" +"Mallen som används för att skapa ett kontos DN. Den ska innehålla en " +"platshållare (ex.%(user)s)" -#: 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 "Aktiver import från LDAP" -#: 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 "Aktivera kontosynkronisering från LDAP-katalog till lokal databas" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Attribut för användarnamn" -#: 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 "Namnet på LDAP-attributet där användarnamnet finns." -#: 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 "Aktivera Dovecot LDAP-synkronisering" -#: 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 "LDAP-autentiseringsinställningar tillämpas på Dovecot-konfigurationen." +msgstr "" +"LDAP-autentiseringsinställningar tillämpas på Dovecot-konfigurationen." -#: 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 "Dovecot LDAP-konfigurationsfil" -#: core/app_settings.py:384 core/app_settings.py:1004 +#: core/app_settings.py:374 core/app_settings.py:1134 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "Plats för konfigurationsfilen som innehåller Dovecot LDAP-inställningar." +msgstr "" +"Plats för konfigurationsfilen som innehåller Dovecot LDAP-inställningar." -#: 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 "Kontrollpanel" -#: 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 "Användardefinierat RSS-flöde" -#: 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 "Visa användardefinierat RSS-flöde för återförsäljare och domänadministratörer" +msgstr "" +"Visa användardefinierat RSS-flöde för återförsäljare och " +"domänadministratörer" -#: 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 "Dölj egenskaper widget" -#: 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 "Dölj egenskaper widget för återförsäljare och domänadministratörer" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Notifikationer" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Avsändaradress" -#: 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 "E-postadress som används till att skicka notifikationer." -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Publikt API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Aktivera kommunikation" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Aktivera kommunikation med Modoboa publikt API" -#: 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 "Kontrollera nya versioner" -#: 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 "Kontrollera automatiskt om en nyare version finns" -#: 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 "Skicka ett mejl när nya versioner hittas" -#: 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 "Skicka ett e-postmeddelande för att meddela administratörer om nya versioner" +msgstr "" +"Skicka ett e-postmeddelande för att meddela administratörer om nya versioner" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Mottagare" -#: 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 "Mottagare av e-postmeddelanden om nya versioner." -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Skicka statistik" -#: 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 "Skicka statistik för Modoboas publika API (räknare och använda tillägg)" +msgstr "" +"Skicka statistik för Modoboas publika API (räknare och använda tillägg)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Övrigt" -#: 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 "Aktivera spårning av inaktiva konton" -#: core/app_settings.py:461 core/app_settings.py:1085 +#: 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 "Tillåt administratören att ställa in en tröskel (i dagar) över vilken ett konto anses inaktivt om användaren inte har loggat in" +msgstr "" +"Tillåt administratören att ställa in en tröskel (i dagar) över vilken ett " +"konto anses inaktivt om användaren inte har loggat in" -#: 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 "Gräns för inaktiva konton" -#: core/app_settings.py:470 core/app_settings.py:1094 +#: 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 "Ett konto som inte har loggat in innan denna gräns (antal dagar) kommer anses som inaktivt" +msgstr "" +"Ett konto som inte har loggat in innan denna gräns (antal dagar) kommer " +"anses som inaktivt" -#: 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 "Toppnotifikationer kontrollintervall" -#: 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 "Intervall mellan två toppnotifikationskontroller (i sekunder)" -#: 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 "Maximal ålder för loggpost" -#: 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 "Maximal ålder i dagar för en logg post" -#: 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 "Artiklar per sida" -#: 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 "Antal poster som visas per sida" -#: 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 "Standard topp omdirigering" -#: 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 "Standard omdirigering när ingen applikation angetts" -#: core/app_settings.py:799 +#: core/app_settings.py:830 msgid "LDAP" msgstr "LDAP" -#: core/checks/settings_checks.py:6 +#: 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 "Du måste ange USE_TZ till False, detta kan leda till problem under övergångar mellan sommar / vintertid (dvs samma lokal tid som uppträder två gånger på grund av klockbyte)." +msgstr "" +"Du måste ange USE_TZ till False, detta kan leda till problem under " +"övergångar mellan sommar / vintertid (dvs samma lokal tid som uppträder två " +"gånger på grund av klockbyte)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Ange `USE_TZ = True` i settings.py" @@ -2148,31 +2270,31 @@ msgstr "Dummy" msgid "Missing 2FA verification." msgstr "2FA-verifiering saknas." -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Gammalt lösenord" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Nytt lösenord" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Gammalt lösenord matchar inte" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Lösenord matchar inte" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Aktivera API access" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Verifikationskod" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Ogiltig kod" @@ -2189,20 +2311,20 @@ msgstr "ändrad" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s av användare %(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 av" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "raderad" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "användare {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "management kommando" @@ -2210,137 +2332,138 @@ msgstr "management kommando" msgid "You can't delete your own account" msgstr "Du kan inte radera ditt eget konto" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "En eller fler uppdateringar finns tillgängliga" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Uppdatering(ar) finns" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Tillåt åtkomst till brevlådor" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Tillåt den här administratören att ändra användares brevlådor" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "lösenord" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "språk" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Önskat språk för att visa sidor." -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "En alternativ e-post adress, kan användas för återställningsbehov." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Misslyckades med att uppdatera lösenord: LDAP modul ej installerad" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "konto" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Okänt" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Du kan inte importera konto med en roll större än din" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Den enkla användaren '%s' måste ha en gällande e-postadress" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "användarnamn och e-post fält får inte avvika för '%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] "Lösenord måste hålla minst {} siffra." msgstr[1] "Lösenord måste hålla minst {} siffror." -#: 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] "Lösenord måste innehålla minst {} gemen." msgstr[1] "Lösenord måste innehålla minst {} gemener." -#: 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] "Lösenord måste innhåla minst {} versal." msgstr[1] "Lösenord måste innhåla minst {} versaler." -#: 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] "Lösenord måste innehålla minst {} specialtecken." msgstr[1] "Lösenord måste innehålla minst {} specialtecken." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Ditt lösenord måste innehålla en kombination av olika typer av tecken." +msgstr "" +"Ditt lösenord måste innehålla en kombination av olika typer av tecken." -#: 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 "API endpoint" -#: 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 "OVH Europe" -#: 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 "OVH US" -#: 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 "OVH Nordamerika" -#: 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 "So you Start Europa" -#: 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 "So you Start Nordamerika" -#: 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 "Kimsufi Europa" -#: 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 "Kimsufi Nordamerika" -#: 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 "Applikationsnyckel" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Applikationshemlighet" -#: 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 "Konsumentnyckel" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 msgid "Appication secret" msgstr "Applikationshemlighet" @@ -2368,7 +2491,9 @@ msgstr "Senaste nytt" msgid "" "Visit the official " "weblog for more information." -msgstr "Besök den officiella bloggen för mer information." +msgstr "" +"Besök den officiella" +" bloggen för mer information." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2383,7 +2508,9 @@ msgstr "Kontrollera din åtskomst till Modoboa API" msgid "" "A documentation of the API is available here." -msgstr "Dokumentation över API:et finns här." +msgstr "" +"Dokumentation över API:et finns här." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2394,7 +2521,7 @@ msgstr "API åtkomst token" msgid "Hello %(user)s." msgstr "Hej %(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 "Information" @@ -2408,7 +2535,8 @@ msgstr "En eller flera uppdateringar finns tillgängliga!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Kontrollera följande lista för att se de komponenter som kan uppdateras." +msgstr "" +"Kontrollera följande lista för att se de komponenter som kan uppdateras." #: core/templates/core/information.html:10 msgid "Applications" @@ -2426,7 +2554,7 @@ msgstr "Senaste version" msgid "Active users" msgstr "Aktiva användare" -#: 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 "Loggar" @@ -2449,10 +2577,14 @@ msgid "" msgid_plural "" "\n" " The following updates are available:\n" -msgstr[0] "\n Följande uppdateringar finns tillgängliga:\n" -msgstr[1] "\n Följande uppdateringar finns tillgängliga:\n" +msgstr[0] "" +"\n" +" Följande uppdateringar finns tillgängliga:\n" +msgstr[1] "" +"\n" +" Följande uppdateringar finns tillgängliga:\n" -#: 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 "Parametrar" @@ -2469,12 +2601,12 @@ msgstr "Spara" msgid "Modoboa settings" msgstr "Modoboa inställningar" -#: 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 "Inställningar" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Inställningar" @@ -2494,7 +2626,7 @@ msgstr "Uppdatera personlig information" msgid "Click here to update your password" msgstr "Klicka här för att uppdatera ditt lösenord" -#: 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 "Säkerhet" @@ -2506,7 +2638,10 @@ msgstr "Tvåfaktorsautentisering" 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 "Installera en mjuk token-autentisering som FreeOTP eller Google Authenticator från ditt programförråd och använd den appen för att skanna den här QR-koden." +msgstr "" +"Installera en mjuk token-autentisering som FreeOTP eller Google " +"Authenticator från ditt programförråd och använd den appen för att skanna " +"den här QR-koden." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2528,16 +2663,28 @@ msgid "" "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 "Följande återställningskoder kan användas en gång var för att låta dig återfå åtkomst till ditt konto, om du till exempel skulle tappa din telefon. Se till att spara dem på ett säkert ställe, annars kommer du inte att kunna komma åt ditt konto längre." +msgstr "" +"Följande återställningskoder kan användas en gång var för att låta dig " +"återfå åtkomst till ditt konto, om du till exempel skulle tappa din telefon." +" Se till att spara dem på ett säkert ställe, annars kommer du inte att kunna" +" komma åt ditt konto längre." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "Tvåfaktorsautentisering är aktiverat för ditt konto." +#: 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 "Inaktivera 2FA" +#: 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 "Återställ återställningskoder" @@ -2546,7 +2693,9 @@ msgstr "Återställ återställningskoder" msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." -msgstr "Tvåfaktorsautentisering (2FA) har inte aktiverats för ditt konto. Aktivering ökar ditt kontos säkerhet." +msgstr "" +"Tvåfaktorsautentisering (2FA) har inte aktiverats för ditt konto. Aktivering" +" ökar ditt kontos säkerhet." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2560,67 +2709,74 @@ msgstr "Nya återställningskoder" msgid "Here are your new recovery codes. " msgstr "Här är dina nya återställningskoder." +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Crypt lösenord" + #: 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 "Logga ut" -#: 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 "Kärnan av Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parametrar sparade" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "Ditt användarnamn och lösenord matchar inte. Var vänlig försök igen." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Användare '{}' loggade ut framgångsrikt" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil uppdaterad" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Inställningar sparade" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Åtkomst uppdaterad" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 msgid "DNS settings" msgstr "DNS-inställningar" -#: dmarc/forms.py:41 dmarc/forms.py:54 +#: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" msgstr "Aktivera omvända sökningar" -#: 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 "Aktivera omvända DNS-sökningar (rapporter kommer att vara längre att visa)" +msgstr "" +"Aktivera omvända DNS-sökningar (rapporter kommer att vara längre att visa)" -#: dmarc/forms.py:69 dmarc/forms.py:71 +#: dmarc/forms.py:74 dmarc/forms.py:78 msgid "DMARC" msgstr "DMARC" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Visa DMARC-rapport för {}" -#: 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 "Ej löst" @@ -2656,11 +2812,11 @@ msgstr "Tillfälligt fel" msgid "Permanent error" msgstr "Permanent fel" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Policy" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Mjukt fel" @@ -2732,95 +2888,95 @@ msgstr "Vidarebefordrare med ARC" msgid "Unknown sources / Threats" msgstr "Okända källor / hot" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "Fel syntax för ip4-mekanismen" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "Wrong IPv4 address format" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "Fel syntax för ip6-mekanismen" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "Fel IPv6-adressformat" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "Ogiltig syntax för {}-mekanismen" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "Ogiltig mask hittades {}" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "Inte ett SPF-rekord" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "Okänd mekanism {}" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "Okänd modifierare {}" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "Dubblettmodifierare {} hittades" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "Ingen mekanism hittades" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "Inte en giltig DKIM-post" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "Ogiltig tagg {}" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "Ingen nyckel hittades i posten" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "Fel värde {} för tagg {}" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "Fel värde {} för tagg {}:" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr "inte ett heltal" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr "mindre än {}" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr "större än {}" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "Inte en giltig DMARC-post" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "Okänd tagg {}" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "Missing required p tag" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "Offentlig nyckel saknar överensstämmelse" @@ -2852,7 +3008,9 @@ msgstr "En DNS-post har hittats men dess syntax är ogiltig:" msgid "" "Here is an example of DNS configuration (bind format). Replace value between" " [ ] by the appropriate ones." -msgstr "Här är ett exempel på DNS-konfiguration (bindningsformat). Ersätt värdet mellan [ ] med lämpliga." +msgstr "" +"Här är ett exempel på DNS-konfiguration (bindningsformat). Ersätt värdet " +"mellan [ ] med lämpliga." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" @@ -2867,7 +3025,7 @@ msgstr "Autokonfiguration" msgid "hostname of your automx server" msgstr "värdnamnet för din automx-server" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "{} post av {}" @@ -2875,144 +3033,153 @@ msgstr "{} post av {}" msgid "Auto configuration records for {}" msgstr "Automatiska konfigurationsposter för {}" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "DNS-konfiguration för {}" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 msgid "Access denied" msgstr "Åtkomst nekad" -#: 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 "Enable IMAP Migration" -#: 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 "Aktivera IMAP-migrering." -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 msgid "OfflineIMAP" msgstr "OfflineIMAP" -#: 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 "Samtidiga synkroniseringsjobb" -#: 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 "Det maximala antalet samtidiga synkroniseringsjobb" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 msgid "OfflineIMAP Filter" msgstr "OfflineIMAP-filter" -#: 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 "Skapa kataloger" -#: 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 "Tillåt skapande av saknade mappar under synkronisering" -#: 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 "Mappfilteruteslutningar" -#: imap_migration/app_settings.py:44 imap_migration/app_settings.py:93 +#: 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 "Använd ett reguljärt uttryck för att explicit inkludera mappar i synkronisering. Exempel: ^Trash$|Del" +msgstr "" +"Använd ett reguljärt uttryck för att explicit inkludera mappar i " +"synkronisering. Exempel: ^Trash$|Del" -#: 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 "Mappfilterinneslutningar" -#: imap_migration/app_settings.py:50 imap_migration/app_settings.py:103 +#: 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 "En kommaseparerad lista över mappar som explicit ska inkluderas i synkronisering även om de filtreras av mappfilteruteslutningarna. Exempel: debian.user, debian.personal" +msgstr "" +"En kommaseparerad lista över mappar som explicit ska inkluderas i " +"synkronisering även om de filtreras av mappfilteruteslutningarna. Exempel: " +"debian.user, debian.personal" -#: imap_migration/app_settings.py:72 +#: imap_migration/app_settings.py:107 msgid "OfflineIMAP settings" msgstr "OfflineIMAP-inställningar" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 msgid "OfflineIMAP Filter settings" msgstr "OfflineIMAP-filterinställningar" -#: 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-migrering" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Connection to IMAP server failed: %s" -#: imap_migration/checks.py:11 +#: imap_migration/checks.py:12 msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." -msgstr "Automatic domain/mailbox creation is disabled which means IMAP authentication won't work." +msgstr "" +"Automatic domain/mailbox creation is disabled which means IMAP " +"authentication won't work." -#: imap_migration/checks.py:13 +#: imap_migration/checks.py:16 msgid "" "Go to the online parameters panel (admin tab) and activate this feature." -msgstr "Gå till onlineparametrarnas panel (admin-fliken) och aktivera den här funktionen." +msgstr "" +"Gå till onlineparametrarnas panel (admin-fliken) och aktivera den här " +"funktionen." #: imap_migration/templates/imap_migration/index.html:6 msgid "IMAP migration" msgstr "IMAP-migrering" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Det gick inte att skapa LDAP-konto: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Det gick inte att uppdatera LDAP-konto: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Failed to delete LDAP account: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Det gick inte att inaktivera LDAP-konto: {}" -#: 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 "Det gick inte att kommunicera med offentligt API: %s" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Anslutning till databasen %s är inte konfigurerad" -#: 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 "kan inte bestämma kodning av sträng" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Tillstånd nekas: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Tillstånd nekas" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Skriv in ett giltigt domännamn" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Ange en giltig e-postadress" @@ -3022,153 +3189,173 @@ msgstr "Ange en giltig e-postadress" msgid "Submit" msgstr "Skicka" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "Misslyckades med att uppdatera lösenord: {}" -#: 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 "Ämne" -#: 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 "Standardgränser per administratör" -#: 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 "Aktivera gränser per administratör" -#: 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 "Aktivera eller inaktivera gränser per administratör" -#: 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 "Domänadministratörer" -#: limits/app_settings.py:29 limits/app_settings.py:164 +#: 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 "Maximalt antal tillåtna domänadministratörer för en ny administratör. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna domänadministratörer för en ny administratör. (0 för" +" att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:40 limits/app_settings.py:173 +#: 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 "Maximalt antal tillåtna domäner för en ny administratör. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna domäner för en ny administratör. (0 för att neka " +"någon skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:50 limits/app_settings.py:181 +#: 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 "Maximalt antal tillåtna domänalias för en ny administratör. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna domänalias för en ny administratör. (0 för att neka " +"någon skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:61 limits/app_settings.py:190 +#: 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 "Maximalt antal tillåtna brevlådor för en ny administratör. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna brevlådor för en ny administratör. (0 för att neka " +"någon skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:71 limits/app_settings.py:199 +#: 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 "Maximalt antal tillåtna alias för en ny administratör. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna alias för en ny administratör. (0 för att neka någon" +" skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:81 limits/app_settings.py:206 +#: 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 "Den kvot som en återförsäljare får dela mellan de domäner han skapar. (0 betyder ingen kvot)" +msgstr "" +"Den kvot som en återförsäljare får dela mellan de domäner han skapar. (0 " +"betyder ingen kvot)" -#: 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 "Standardgränser per domän" -#: 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 "Aktivera gränser per domän" -#: 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 "Aktivera eller inaktivera gränser per domän" -#: limits/app_settings.py:100 limits/app_settings.py:223 +#: 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 "Maximalt antal tillåtna domänadministratörer för en ny domän. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna domänadministratörer för en ny domän. (0 för att " +"neka någon skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:111 limits/app_settings.py:232 +#: 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 "Maximalt antal tillåtna domänalias för en ny domän. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna domänalias för en ny domän. (0 för att neka någon " +"skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:122 limits/app_settings.py:241 +#: 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 "Maximalt antal tillåtna postlådor för en ny domän. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna postlådor för en ny domän. (0 för att neka någon " +"skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/app_settings.py:132 limits/app_settings.py:249 +#: 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 "Maximalt antal tillåtna alias för en ny domän. (0 för att neka någon skapelse, -1 för att tillåta obegränsade skapelser)" +msgstr "" +"Maximalt antal tillåtna alias för en ny domän. (0 för att neka någon " +"skapelse, -1 för att tillåta obegränsade skapelser)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Gränser" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Maximalt antal domäner som denna användare kan skapa" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "Maximalt antal domänalias som denna användare kan skapa" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "Maximalt antal postlådor som denna användare kan skapa" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "Maximalt antal postlådealias som denna användare kan skapa" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" msgstr "Maximalt antal domänadministratörer som denna användare kan skapa" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Kvot som delas mellan den här återförsäljarens domäner" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Maximalt antal tillåtna domänalias för denna domän." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Maximalt antal tillåtna postlådor för den här domänen." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Maximalt antal postlådealias tillåtna för den här domänen." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "Maximalt antal domänadministratörer tillåtna för denna domän." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Ogiltig gräns" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Resurser" @@ -3181,11 +3368,11 @@ msgstr "%s: gräns nådd" msgid "Not enough resources" msgstr "Inte tillräckligt med resurser" -#: 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 "Du får inte definiera obegränsade värden" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "obegränsat" @@ -3194,91 +3381,91 @@ msgstr "obegränsat" msgid "Resources usage" msgstr "Resursanvändning" -#: 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 "Du måste ange start- och slutdatum när perioden är anpassad" -#: maillog/forms.py:23 +#: maillog/apps.py:20 maillog/forms.py:23 msgid "Path to the log file" msgstr "Sökväg till loggfilen" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Sökväg till loggfil som används för att samla in statistik" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Katalog för att lagra RRD-filer" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "Sökväg till katalog där RRD-filer lagras" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "Visa grålistade meddelanden" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Gör skillnad på hårda och mjuka rejekt (grålistning)" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "Statistik" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "Det gick inte att hitta binär rrdtool." -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "Genomsnittlig trafik (medd/min)" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "skickade meddelanden" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "mottagna meddelanden" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "studsade meddelanden" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "avvisade meddelanden" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "virus meddelanden" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "skräp meddelanden" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "grålistade meddelanden" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "Genomsnittlig normal trafikstorlek (byte/min)" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "mottagen storlek" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "skickad storlek" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "E-posttrafik" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "Genomsnittligt kontoskapande (konto/timme)" @@ -3306,181 +3493,187 @@ msgstr "Tillämpa" msgid "No statistics available" msgstr "Ingen statistik tillgänglig" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "Dag" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "ecka" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "Månad" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "År" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "Anpassad" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "Okänd grafikuppsättning" -#: maillog/views.py:69 +#: maillog/views.py:71 msgid "Unknown domain" msgstr "Okänd domän" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "Dålig anpassad period" -#: 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 "Personlig kontoinformation" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 msgid "Directory is not writable" msgstr "Katalog är inte skrivbar" -#: 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 "Inget dokument tillgängligt för denna användare" -#: 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 "Aktivera PDF-uppgifter" -#: 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 "Aktiverade PDF-referensdokumentgenerering vid skapande av konto." -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "Dokument lagring" -#: 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 "Katalog att spara dokument i" -#: 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 "Sökväg till en katalog där PDF-dokument kommer att sparas" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "Säkerhetsinställningar" -#: 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 "Ta bort dokument efter den första nedladdningen" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 msgid "" "Automatically delete a document just after its first download from this " "interface" -msgstr "Ta bort ett dokument automatiskt precis efter den första nedladdningen från det här gränssnittet" +msgstr "" +"Ta bort ett dokument automatiskt precis efter den första nedladdningen från " +"det här gränssnittet" -#: 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 "Generera dokument endast när kontot skapas" -#: pdfcredentials/app_settings.py:52 pdfcredentials/app_settings.py:154 +#: 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 "Skapa ett nytt dokument först när ett nytt konto har skapats. Om inställt på nej kommer ett nytt dokument att skapas varje gång ett lösenord uppdateras." +msgstr "" +"Skapa ett nytt dokument först när ett nytt konto har skapats. Om inställt på" +" nej kommer ett nytt dokument att skapas varje gång ett lösenord uppdateras." -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "Anpassningsalternativ" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "Titel" -#: 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 "Dokumentets titel" -#: 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 "Webbpanelens webbadress" -#: 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 "URL till Modoboas webbpanel" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "Anpassat meddelande" -#: 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 "Ett anpassat meddelande som visas i slutet av dokument" -#: 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 "Inkludera anslutningsinställningar för e-postklienten" -#: pdfcredentials/app_settings.py:79 pdfcredentials/app_settings.py:184 +#: 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 "Inkludera nödvändig SMTP- och IMAP-anslutningsinformation för att konfigurera en e-postklient, en surfplatta eller en telefon" +msgstr "" +"Inkludera nödvändig SMTP- och IMAP-anslutningsinformation för att " +"konfigurera en e-postklient, en surfplatta eller en telefon" -#: 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 "SMTP-serveradress" -#: 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 "Adress till SMTP-servern (värdnamn eller IP)" -#: 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 "SMTP-serverport" -#: 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 "Lyssningsport för SMTP-servern" -#: 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 "SMTP-anslutningssäkerhet" -#: 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 "Anslutningssäkerhetsmekanism" -#: 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 "IMAP-serveradress" -#: 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 "Adress till IMAP-servern (värdnamn eller IP)" -#: 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 "IMAP-serverport" -#: 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 "Lyssningsport för IMAP-servern" -#: 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 "IMAP-anslutningssäkerhet" @@ -3488,84 +3681,251 @@ msgstr "IMAP-anslutningssäkerhet" msgid "PDF credentials" msgstr "PDF-uppgifter" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 msgid "PDF Credentials" msgstr "PDF-uppgifter" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Drivs av Modoboa - Mailhosting på ett enkelt sätt" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" "Dear %s, this document contains the credentials you will need\n" "to connect to Modoboa. Learn the content and destroy\n" "the document as soon as possible.\n" -msgstr "\nKära %s, det här dokumentet innehåller de referenser du behöver\nför att ansluta till Modoboa. Lär dig innehållet och förstör\ndokumentet så snart som möjligt.\n" +msgstr "" +"\n" +"Kära %s, det här dokumentet innehåller de referenser du behöver\n" +"för att ansluta till Modoboa. Lär dig innehållet och förstör\n" +"dokumentet så snart som möjligt.\n" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "Webbpanel:" -#: 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 "\nHär kan du se dina e-postmeddelanden när som helst online, skapa filter eller hantera\ndina kontakter.\n" +msgstr "" +"\n" +"Här kan du se dina e-postmeddelanden när som helst online, skapa filter eller hantera\n" +"dina kontakter.\n" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "Vänligen ändra ditt lösenord!" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "Dator/Surfplatta/Smartphone-konfiguration:" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "Använd dessa inställningar för din dator, surfplatta eller telefon." -#: 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 "Hämta användarens autentiseringsuppgifter som ett PDF-dokument" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 msgid "Download PDF credentials" msgstr "Ladda ner PDF-uppgifter" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 msgid "Can't write to selected directory to store PDF documents" -msgstr "Det går inte att skriva till den valda katalogen för att lagra PDF-dokument" +msgstr "" +"Det går inte att skriva till den valda katalogen för att lagra PDF-dokument" #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" -msgstr "Det gick inte att skapa katalogen som kommer att innehålla PDF-dokument (%s)" +msgstr "" +"Det gick inte att skapa katalogen som kommer att innehålla PDF-dokument (%s)" -#: 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: gräns nådd" + +#: 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 +#, fuzzy +#| msgid "This code is invalid" +msgid "This date is over" +msgstr "Detta datum har varit" + +#: 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 "Måste vara nyare än startdatum" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Automatiska svar" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "Aktivera ditt autosvar från detta datum. Format : ÅÅÅÅ-MM-DD TT:mm:ss" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "Tills" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" +"Aktivera ditt autosvar fram till detta datum: Format : ÅÅÅÅ-MM-DD TT:mm:ss" + +#: 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 "" +"Innehållet i ditt svar. Du kan använda följande variabler, vilka automatiskt" +" kommer ersättas med lämpligt värde: %(name)s, %(fromdate)s, %(untildate)s" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "Automatiskt svar timeout" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "Timeout i sekunder mellan två auto-svar till samma mottagare" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "Standard ämne" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "Jag är borta" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "Standard ämne när ett autosvarsmeddelande skapas automatiskt." + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Standard innehåll" + +#: 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 "" +"Jag är borta. Jag svarar så fort jag kommer tillbaka.\n" +"\n" +"Med vänliga hälsningar,\n" +"%(name)s\n" + +#: 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 "" +"Standard innehåll som används när ett autosvarsmeddelande skapas " +"automatiskt. '%(name)s' ersätts med användarens fullständiga namn." + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom message" +msgid "Auto-reply message" +msgstr "Auto-svar meddelande" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "Autosvar" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "ämne" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "Ämnesraden i skickade e-post meddelanden" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "innehåll" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "Innehållet i skickade e-post meddelanden" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "Aktivera / inaktivera din autosvar" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "Skriv meddelande att skicka automatiskt när du är borta" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "Automatisk svarsmeddelande uppdaterats." + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "Ej stödd tjänst" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Transportinställningar" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Transport" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "målvärdadress" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "målvärdport" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "verifiera mottagare" @@ -3636,7 +3996,9 @@ msgstr "Glömt ditt lösenord?" msgid "" "Your password has been set. You may go ahead and sign " "in now." -msgstr "Ditt lösenord har ändrats. Du kan fortsätta med att logga in." +msgstr "" +"Ditt lösenord har ändrats. Du kan fortsätta med att logga in." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" @@ -3646,7 +4008,9 @@ msgstr "Ändra lösenord" msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." -msgstr "Lösenordets återställningslänk är ogiltig, förmodligen för att den redan använts. Var vänlig begär en ny återställning av lösenord." +msgstr "" +"Lösenordets återställningslänk är ogiltig, förmodligen för att den redan " +"använts. Var vänlig begär en ny återställning av lösenord." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3662,7 +4026,11 @@ msgid "" "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 "

        Vi har e-postat dig instruktioner för att ändra ditt lösenord, om ett konto finns med den e-post adress du angav. Du borde få detta brev inom kort.

        Om du inte fått något brev, var vänlig kontrollera att du angav rätt e-post adress, och kolla din skräpkatalog.

        " +msgstr "" +"

        Vi har e-postat dig instruktioner för att ändra ditt lösenord, om ett " +"konto finns med den e-post adress du angav. Du borde få detta brev inom " +"kort.

        Om du inte fått något brev, var vänlig kontrollera att du angav" +" rätt e-post adress, och kolla din skräpkatalog.

        " #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 @@ -3670,14 +4038,18 @@ msgstr "

        Vi har e-postat dig instruktioner för att ändra ditt lösenord, om msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" -msgstr "För att starta processen för återställning av lösenord för ditt %(username)s Modoboa konto, klicka på länken nedanför:" +msgstr "" +"För att starta processen för återställning av lösenord för ditt %(username)s" +" Modoboa konto, klicka på länken nedanför:" #: 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 "Om det ej går att klicka på länken, klipp och klistra länken i ett nytt webbläsarfönster istället." +msgstr "" +"Om det ej går att klicka på länken, klipp och klistra länken i ett nytt " +"webbläsarfönster istället." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3696,14 +4068,32 @@ msgstr "Modoboa lösenordsåterställning." msgid "Invalid value" msgstr "Ogiltigt värde" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "mönster" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "service" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "nästa hopp" + +#~ msgid "An alias with this name already exists." +#~ msgstr "Ett alias med detta namn finns redan." + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (svag)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (svag)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (svag)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (svag)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (svag)" diff --git a/modoboa/locale/tr/LC_MESSAGES/django.po b/modoboa/locale/tr/LC_MESSAGES/django.po index 7acb95d1b..f22170ab1 100644 --- a/modoboa/locale/tr/LC_MESSAGES/django.po +++ b/modoboa/locale/tr/LC_MESSAGES/django.po @@ -8,7 +8,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: 2021-12-24 20:48+0000\n" "Last-Translator: Mustafa OYMAK\n" "Language-Team: Turkish (http://www.transifex.com/tonio/modoboa/language/tr/)\n" @@ -18,524 +18,583 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\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 #, fuzzy #| msgid "Permission denied" msgid "Permission denied." msgstr "İzin reddedildi" -#: 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 "Bu alan gerekli" -#: admin/api/v1/serializers.py:186 +#: admin/api/v1/serializers.py:235 #, fuzzy #| msgid "Hide features widget for resellers and domain administrators" -msgid "List of administered domains (resellers and domain administrators only)." +msgid "" +"List of administered domains (resellers and domain administrators only)." msgstr "Bayiler ve alan adı yöneticileri için Özellikler Aracı'nı gizle." -#: 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 #, fuzzy #| msgid "This field is required" msgid "This field is required." msgstr "Bu alan gerekli" -#: 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 +#, fuzzy +#| msgid "Enter a valid email address." +msgid "This alias already exists" +msgstr "Geçerli bir e-posta adresi girin." + +#: 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 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Bilinmeyen" -#: 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 #, fuzzy #| msgid "You can't delete your own account" msgid "You can't delete your own domain" msgstr "Kendi hesabınızı silemezsiniz" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable MX checks" msgstr "API erişimini etkinleştir" -#: 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 +#, fuzzy +#| msgid "Enable API access" +msgid "Enable IPV6 checks" +msgstr "API erişimini etkinleştir" + +#: 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 API access" msgid "Enable SPF checks" msgstr "API erişimini etkinleştir" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DKIM checks" msgstr "API erişimini etkinleştir" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DMARC checks" msgstr "API erişimini etkinleştir" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DNSBL checks" msgstr "API erişimini etkinleştir" -#: 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 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom DNS server" msgstr "Özel RSS beslemesi" -#: 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 #, fuzzy #| msgid "Inactive account threshold" msgid "Automatic account removal" msgstr "Etkin olmayan hesap eşiği" -#: 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 #, fuzzy #| msgid "Administrator groups" msgid "Administration" msgstr "Yönetici grupları" -#: 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 #, fuzzy #| msgid "Close" msgid "Closed" msgstr "Kapat" -#: 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 "Kullanıcı adı" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." +#: 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 "Rol" -#: 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 #, fuzzy #| msgid "Random password length" msgid "Random password" msgstr "Rastgele parola uzunluğu" -#: 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 "Parola" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Onayla" -#: 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 #, fuzzy #| msgid "Enable 2FA" msgid "Enabled" msgstr "2FA'yı etkinleştir" -#: 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 #, fuzzy #| msgid "You can't delete your own account" msgid "You can't disable your own account" msgstr "Kendi hesabınızı silemezsiniz" -#: 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 #, fuzzy #| msgid "Sender address" msgid "Sender addresses" msgstr "Gönderici adresi" -#: 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 #, fuzzy #| msgid "Domain administrator" msgid "Domain(s) that user administrates" msgstr "Alan adı Yöneticisi" -#: 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 "Genel" -#: 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 "" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 #, fuzzy #| msgid "Permission denied" msgid "Permissions" msgstr "İzin reddedildi" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 #, fuzzy #| msgid "Access updated" msgid "Account updated" msgstr "Erişim güncellendi" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 #, fuzzy #| msgid "account" msgid "New account" msgstr "Hesap" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 #, fuzzy #| msgid "Account DN template" msgid "Account created" @@ -554,7 +613,9 @@ msgid "Email address" msgstr "Adresinden" #: 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 @@ -563,64 +624,70 @@ msgstr "" msgid "Recipients" msgstr "Alıcı" -#: 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 #, fuzzy #| msgid "Domain administrator" msgid "Create a domain administrator" msgstr "Alan adı Yöneticisi" -#: 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 @@ -629,57 +696,59 @@ msgstr "" msgid "Name" msgstr "İsim" -#: 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 #, fuzzy #| msgid "Invalid code" msgid "Invalid format" msgstr "Geçersiz kod" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 #, fuzzy #| msgid "modified" msgid "Domain modified" msgstr "Değiştirildi" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 #, fuzzy #| msgid "Applications" msgid "Options" msgstr "Uygulamalar" -#: 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 "" @@ -689,25 +758,25 @@ msgstr "" msgid "Recipient(s)" msgstr "Alıcı" -#: 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 #, fuzzy #| msgid "Search filter" msgid "Select a file" msgstr "Arama filtresi" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "" @@ -715,7 +784,7 @@ msgstr "" msgid "Don't treat duplicated objects as error" msgstr "" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 #, fuzzy #| msgid "Forgot password?" msgid "Crypt passwords" @@ -725,95 +794,95 @@ msgstr "Parolanızı mı unuttunuz?" 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 #, fuzzy #| msgid "This field is required" msgid "A mailbox is required" msgstr "Bu alan gerekli" -#: 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 #, fuzzy, python-format #| msgid "unable to determine encoding of string" msgid "Unable to decode CSV file using %(encoding)s encoding" @@ -823,25 +892,25 @@ msgstr "dize kodlaması belirlenemiyor" 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 #, fuzzy #| msgid "Invalid code" msgid "Invalid MX record: {}" msgstr "Geçersiz kod" -#: 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 "" @@ -850,164 +919,161 @@ 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 #, fuzzy #| msgid "From address" msgid "address" msgstr "Adresinden" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 #, fuzzy #| msgid "Enter a valid email address." msgid "The alias address." msgstr "Geçerli bir e-posta adresi girin." -#: 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 "Tanım" -#: 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 #, fuzzy #| msgid "Invalid code" msgid "Invalid address" msgstr "Geçersiz kod" -#: 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 #, fuzzy #| msgid "Invalid line" msgid "Invalid line: {}" msgstr "Geçersiz satır" -#: admin/models/domain.py:26 admin/models/domain_alias.py:33 +#: admin/models/domain.py:27 admin/models/domain_alias.py:33 #, fuzzy #| msgid "Username" msgid "name" msgstr "Kullanıcı adı" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 #, fuzzy #| msgid "Enter a valid domain name" msgid "The domain name" msgstr "Geçerli bir alan adı girin" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable DNS checks" msgstr "API erişimini etkinleştir" -#: 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 "Geçersiz satır" -#: 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 #, fuzzy #| msgid "This field is required" msgid "A quota is required" msgstr "Bu alan gerekli" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" msgstr "" @@ -1015,8 +1081,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 "Kapat" @@ -1069,9 +1136,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 "" @@ -1108,7 +1175,7 @@ msgstr "" msgid "Last login" msgstr "Son giriş" -#: 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 "İkincil e-posta" @@ -1117,7 +1184,7 @@ msgstr "İkincil e-posta" 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 "Telefon numarası" @@ -1207,7 +1274,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 "Tarih" @@ -1235,9 +1302,9 @@ msgstr "Doğrulama kodu" msgid "Last modification date" msgstr "Doğrulama kodu" -#: 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 "" @@ -1295,11 +1362,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 "Hayır" @@ -1307,7 +1375,7 @@ msgstr "Hayır" 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 "Evet" @@ -1322,7 +1390,7 @@ msgid "Administrators" msgstr "Yönetici grupları" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "" @@ -1365,13 +1433,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 "Kimden" #: 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 "Kime" @@ -1404,9 +1472,10 @@ msgstr "2FA'yı devre dışı bırak" 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 "Güncelle" @@ -1427,11 +1496,24 @@ msgid "Fullname/Recipient" msgstr "Alıcı" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
        • alias; address; enabled; recipient; recipient; ...

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1474,11 +1556,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 @@ -1492,94 +1579,100 @@ msgstr "" msgid "Search" msgstr "Ara..." -#: 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 #, fuzzy #| msgid "Message" msgid "Message logs" msgstr "İleti" -#: 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 +#, fuzzy, python-format +#| msgid "New recovery codes" +msgid "No AAAA record for %s" +msgstr "Yeni kurtarma kodları" + #: 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 #, fuzzy #| msgid "modified" msgid "Alias modified" msgstr "Değiştirildi" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 #, fuzzy #| msgid "deleted" msgid "Alias deleted" @@ -1591,11 +1684,11 @@ msgstr[1] "Silindi" 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 #, fuzzy #| msgid "deleted" msgid "Domain deleted" @@ -1603,20 +1696,20 @@ msgid_plural "Domains deleted" msgstr[0] "Silindi" msgstr[1] "Silindi" -#: 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 "Geçersiz istek" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 #, fuzzy #| msgid "Account DN template" msgid "Account deleted" @@ -1624,7 +1717,7 @@ msgid_plural "Accounts deleted" msgstr[0] "Hesap DN şablonu." msgstr[1] "Hesap DN şablonu." -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1632,87 +1725,74 @@ msgstr "" msgid "Import identities" msgstr "" -#: admin/views/user.py:52 +#: admin/views/user.py:51 #, fuzzy #| msgid "Profile updated" msgid "Forward updated" msgstr "Profil güncellendi" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "Geçersiz PIN kodu" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA zaten etkin" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" -msgstr "2FA etkin değil" - -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Yerel" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" +#: 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: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 "Kullanıcı profili" - -#: 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 "Geçersiz sözdizimi" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Geçersiz tur sayısı" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "Bu kod geçersiz" - -#: 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 "Eski parola" -#: 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 "2FA etkin değil" + +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Yerel" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Kullanıcı profili" + +#: 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 "Geçersiz sözdizimi" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Geçersiz tur sayısı" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "Bu kod geçersiz" + +#: 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 "Modoboa şifrenizi kurtarmak için lütfen aşağıdaki kodu kullanın: {}" -#: 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 "'%s' kullanıcısı başarıyla giriş yaptı" -#: 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 "Parola düzeni uyuşmazlığı. %s'in parolasını güncelleme" @@ -1722,452 +1802,512 @@ msgstr "Parola düzeni uyuşmazlığı. %s'in parolasını güncelleme" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Parola karma parametresi uyuşmazlığı. %s'in parolasını güncelleme" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "Kimlik Doğrulama" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Kimlik Doğrulama Türü" -#: 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 "Kimlik doğrulama için kullanılan arka uç." -#: 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 "Varsayılan parola şeması." -#: 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 "Posta kutusunu şifrelemek için kullanılan şema" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Çevrimler" -#: 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 "Kullanılacak tur sayısı (Sadece sha256crypt ve sha512crypt kullanılır). 1000 ve 999999999 arasında olmalıdır." +#: 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 "" +"Kullanılacak tur sayısı (Sadece sha256crypt ve sha512crypt kullanılır). 1000" +" ve 999999999 arasında olmalıdır." -#: 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 "Parola şemasını girişte güncelle" -#: 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 "Kullanıcı parolasını varsayılan parola şemasına göre girişte güncelle" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Varsayılan parola" -#: 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 "Otomatik oluşturulan hesaplar için varsayılan parola." -#: 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 "Rastgele parola uzunluğu" -#: 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 "Rastgele oluşturulmuş parolaların uzunluğu." -#: 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 "Parola servisi URL sayfasını güncelle" -#: 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)." -msgstr "PKullanıcıların parolalarını güncelleyebilecekleri harici bir sayfa. Yalnızca yerel olmayan kullanıcılar içindir. Örnek, başarılı bir harici kimlik doğrulamasından sonra otomatik olarak oluşturulanlar gibi. (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 "" +"PKullanıcıların parolalarını güncelleyebilecekleri harici bir sayfa. " +"Yalnızca yerel olmayan kullanıcılar içindir. Örnek, başarılı bir harici " +"kimlik doğrulamasından sonra otomatik olarak oluşturulanlar gibi. (LDAP, " +"SMTP)" -#: 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 "Parola kurtarma duyurusu" -#: 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 "Parola sıfırlandığında gösterilecek geçici bir mesaj." -#: 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 "SMS ile parola kurtarmayı etkinleştir." -#: 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 "Telefon numarasını belirtmiş kullanıcılar için SMS ile parola kurtarmayı etkinleştir." +msgstr "" +"Telefon numarasını belirtmiş kullanıcılar için SMS ile parola kurtarmayı " +"etkinleştir." -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "SMS sağlayıcı" -#: 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 "Kurtarma parolası göndermek için bir SMS sağlayıcı seçin. " -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "LDAP ayarları" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Sunucu adresi" -#: 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 "LDAP sunucusunun IP adresi ya da DNS adı" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Sunucu portu" -#: 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 "LDAP sunucusunun kullandığı TCP port numarası" -#: 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 "İkincil sunucuyu etkinleştir (geri çekil)" -#: 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" -msgstr "Birincil sunucu başarısız olursa kullanılacak ikincil bir LDAP sunucusunu etkinleştirin" +#: 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 "" +"Birincil sunucu başarısız olursa kullanılacak ikincil bir LDAP sunucusunu " +"etkinleştirin" -#: 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 "İkincil sunucu adresi" -#: 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 "İkincil LDAP sunucusunun IP adresi ya da DNS adı" -#: 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 "İkincil sunucu portu" -#: 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 "İkincil LDAP sunucusunun kullandığı TCP port numarası" -#: 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 "Güvenli bir bağlantı kullanın" -#: 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 "LDAP sunucusuna erişmek için bir SSL/STARTTLS bağlantısı kullanın" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Active Directory" -#: 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 "Eğer LDAP sunucu bir Active Directory sunucusu ise belirtin" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Yönetici grupları" -#: 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 "Bu LDAP Posix gruplarının üyeleri, etki alanı yöneticileri olarak oluşturulacaktır. Grupları ayırmak için ';' karakterini kullanın." +#: 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 "" +"Bu LDAP Posix gruplarının üyeleri, etki alanı yöneticileri olarak " +"oluşturulacaktır. Grupları ayırmak için ';' karakterini kullanın." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Grup türü" -#: 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 "Dizininizle kullanılacak LDAP grubu türü." -#: 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 "Grup arama tabanı." -#: 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 "Grupları bulmak için kullanılan arama tabanının ayırt edici adı" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Atanan parola" -#: 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 "Kullanıcı parolalarını saklamak için kullanılacak nitelik" -#: 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 "LDAP kimilk doğrulama ayarları" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Kimlik doğrulama metodu" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Ara ve bağla" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "Doğrudan bağla" -#: 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 "Kullanılacak kimlik doğrulama yöntemini seçin" -#: 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 "DN bağla" -#: 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 "LDAP sunucusuna bağlanırken kullanılacak isim. Anonim bir bağlantı için boş bırakın" +#: 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 "" +"LDAP sunucusuna bağlanırken kullanılacak isim. Anonim bir bağlantı için boş " +"bırakın" -#: 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 "Parolayı bağla." -#: 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 "LDAP sunucusuna bağlanırken kullanılacak parola (Bağlanılacak 'DN' ile)" +msgstr "" +"LDAP sunucusuna bağlanırken kullanılacak parola (Bağlanılacak 'DN' ile)" -#: 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 "Kullanıcı arama tabanı" -#: 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 "Kullanıcıları bulmak için kullanılan arama tabanının adı" -#: 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 "Arama filtresi" -#: 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 "İsteğe bağlı bir filtre dizisi (Ör. '(objectClass=person)' gibi). Geçerli olması için parantez içine alınması gereklidir." +#: 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 "" +"İsteğe bağlı bir filtre dizisi (Ör. '(objectClass=person)' gibi). Geçerli " +"olması için parantez içine alınması gereklidir." -#: 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 "Kullanıcı DN şablonu." -#: 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 "Bir kullanıcının DN'i oluşturmak için kullanılan şablon. Bir yer tutucu içermelidir (Ör: %(user)s gibi)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Bir kullanıcının DN'i oluşturmak için kullanılan şablon. Bir yer tutucu " +"içermelidir (Ör: %(user)s gibi)" -#: 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 "LDAP eşitleme ayarları" -#: 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 "LDAP'a dışa aktarmayı etkinleştir." -#: 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 "Yerel veritabanı ve LDAP arasında otomatik eşitlemeyi etkinleştir." -#: 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 "Yerel hesap silindiğinde uzak LDAP hesabını sil" -#: 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." -msgstr "Yerel hesap silindiğinde uzak LDAP hesabını silin, aksi halde devre dışı bırakılır." +#: 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 "" +"Yerel hesap silindiğinde uzak LDAP hesabını silin, aksi halde devre dışı " +"bırakılır." -#: 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 "Hesap DN şablonu." -#: 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)" -msgstr "Bir hesabın DN'ini oluşturmak için kullanılan şablon. Bir yer tutucu içermelidir (Ör: %(user)s gibi)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Bir hesabın DN'ini oluşturmak için kullanılan şablon. Bir yer tutucu " +"içermelidir (Ör: %(user)s gibi)" -#: 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 "LDAP'tan içe aktarmayı etkinleştir" -#: 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 "LDAP dizininden yerel veritabanına hesap eşitlemeyi etkinleştir" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "Atanan kullanıcı adı" -#: 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 "Kullanıcı adının bulunabileceği atfedilen LDAP adı." -#: 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 "Dovecot LDAP eşitlemesini etkinleştir" -#: 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 "LDAP kimik doğrulama ayarları Dovecot yapılandırmasına uygulanacak" -#: 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 "Dovecot LDAP yapılandırma dosyası" -#: 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 "Dovecot LDAP ayarlarını içeren yapılandırma dosyasının konumu" -#: 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 "Gösterge Paneli" -#: 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 "Özel RSS beslemesi" -#: 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 "Bayilere ve alan adı yöneticilerine özel RSS beslemesi görüntüleyin" -#: 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 "Özellikler Aracı'nı gizle" -#: 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 "Bayiler ve alan adı yöneticileri için Özellikler Aracı'nı gizle." -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Bildirimler" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Gönderici adresi" -#: 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 "Bildirimlerin gönderileceği e-posta adresi." -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Genel API" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "İletişimi etkinleştir" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Modoboa genel API'si ile iletişimi etkinleştir" -#: 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 "Yeni sürümleri kontrol et" -#: 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 "Daha yeni bir sürümün mevcut olup olmadığını otomatik olarak kontrol eder" +msgstr "" +"Daha yeni bir sürümün mevcut olup olmadığını otomatik olarak kontrol eder" -#: 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 "Yeni sürümler bulunduğunda bir e-posta gönder" -#: 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 "Yeni sürümler hakkında yöneticilere bir bilgilendirme iletisi gönder" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "Alıcı" -#: 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 "Yeni sürüm bildirim iletilerinin alıcısı." -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "İstatistikleri gönder" -#: 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 "İstatistikleri Modoboa genel API'sine gönderin (sayaçlar ve kullanılan uzantılar)" +msgstr "" +"İstatistikleri Modoboa genel API'sine gönderin (sayaçlar ve kullanılan " +"uzantılar)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "Çeşitli" -#: 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 "Etkin olmayan hesap eşiği" -#: 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 "Etkin olmayan hesap eşiği" -#: 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 "Son giriş tarihi bu eşikten (gün olarak) daha yüksek olan bir hesap etkin değil olarak kabul edilecektir." +#: 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 "" +"Son giriş tarihi bu eşikten (gün olarak) daha yüksek olan bir hesap etkin " +"değil olarak kabul edilecektir." -#: 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 "En önemli bildirimler kontrol aralığı" -#: 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 "İki üst bildirim kontrolü arasındaki aralık (saniye cinsinden)" -#: 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 "Maksimum günlük kaydı yaşı" -#: 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 "Günlük kaydının gün cinsinden maksimum yaşı" -#: 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 "Sayfa başına öğe" -#: 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 "Sayfa başına görüntülenen öğe sayısı" -#: 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 "Varsayılan üst yönlendirme" -#: 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 "Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme" +msgstr "" +"Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme" -#: 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 "USE_TZ'yi False olarak ayarladınız, bu yaz/kış saati arasındaki geçişler sırasında sorunlara neden olabilir (yani saat değişikliği nedeniyle aynı yerel saat iki kez oluşur)." +#: 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 "" +"USE_TZ'yi False olarak ayarladınız, bu yaz/kış saati arasındaki geçişler " +"sırasında sorunlara neden olabilir (yani saat değişikliği nedeniyle aynı " +"yerel saat iki kez oluşur)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "settings.py dosyasında 'USE_TZ = True' yapın" @@ -2199,31 +2339,31 @@ msgstr "Kukla" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Eski parola" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Yeni parola" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Eski parola uyumsuzluğu" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Parolalar uyuşmuyor" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "API erişimini etkinleştir" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "Doğrulama kodu" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "Geçersiz kod" @@ -2240,20 +2380,20 @@ msgstr "Değiştirildi" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s '%(action)s %(user)skullanıcısı tarafından" -#: 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 ile" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "Silindi" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "kullanıcı {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "yönetim komutu" @@ -2261,137 +2401,138 @@ msgstr "yönetim komutu" msgid "You can't delete your own account" msgstr "Kendi hesabınızı silemezsiniz" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Bir veya daha fazla güncelleme mevcut" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Güncellemesi(leri) mevcut" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr " Posta kutularına erişime izin ver" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Bu yöneticinin kullanıcı posta kutularına erişimine izin ver" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "parola" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "dil" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Sayfaları görüntülemek için tercih edilen dil." -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Kurtarma ihtiyaçları için alternatif bir e-posta adresi kullanılabilir." +msgstr "" +"Kurtarma ihtiyaçları için alternatif bir e-posta adresi kullanılabilir." -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Parola güncellenemedi: LDAP modülü kurulu değil" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "Hesap" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Bilinmeyen" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "Sizinkinden daha büyük bir role sahip bir hesabı içe aktaramazsınız" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "'%s' basit kullanıcısının geçerli bir e-posta adresi olmalıdır" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "'%s' için kullanıcı adı ve e-posta alanları farklı olmamalıdır" -#: 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] "Paro" msgstr[1] "Parola en az {} sayı içermelidir." -#: 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] "Parola en az {} küçük harf içermelidir." msgstr[1] "Parola en az {} küçük harf içermelidir" -#: 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] "Parola en az {} büyük harf içermelidir." msgstr[1] "Parola en az {} büyük harf içermelidir." -#: 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] "Parola en az {} özel karakter içermelidir." msgstr[1] "Parola en az {} özel karakter içermelidir." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." msgstr "Parolanız farklı karakter türlerinin bir kombinasyonunu içermelidir." -#: 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 "API uç noktası" -#: 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 "OVH Avrupa" -#: 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 "UVH Amerika" -#: 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 "OVH Kuzey Amerika" -#: 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 "Öyleyse Avrupa'ya başlıyorsun" -#: 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 "Öyleyse Kuzey Amerika'ya başlıyorsun" -#: 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 "Kimsufi Avrupa" -#: 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 "Kimsufi Kuzey Amerika" -#: 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 "Uygulama anahtarı" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "Uygulama şifresi" -#: 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 "Tüketici anahtarı" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Application secret" msgid "Appication secret" @@ -2418,8 +2559,12 @@ msgid "Latest news" msgstr "Son haberler" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Daha fazla bilgi için resmi webloguna bakın." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Daha fazla bilgi için resmi webloguna bakın." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2431,8 +2576,12 @@ msgstr "Modoboa API'sine erişiminizi kontrol edin" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "API'nin bir dokümantasyonu mevcuttur. Bkz: " +msgid "" +"A documentation of the API is available here." +msgstr "" +"API'nin bir dokümantasyonu mevcuttur. Bkz: " #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2443,7 +2592,7 @@ msgstr "API erişim belirteci" msgid "Hello %(user)s." msgstr "Merhaba %(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 "Bilgi" @@ -2457,7 +2606,8 @@ msgstr "Bir veya daha fazla güncelleme mevcut!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Güncellenebilecek bileşen(ler)i bulmak için aşağıdaki listeyi kontrol edin." +msgstr "" +"Güncellenebilecek bileşen(ler)i bulmak için aşağıdaki listeyi kontrol edin." #: core/templates/core/information.html:10 msgid "Applications" @@ -2475,7 +2625,7 @@ msgstr "Son sürüm" msgid "Active users" msgstr "Aktif kullanıcılar" -#: 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 "Kayıtlar" @@ -2505,7 +2655,7 @@ msgstr[1] "" "\n" "Aşağıdaki güncellemeler mevcuttur:\n" -#: 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 "Parametreler" @@ -2522,12 +2672,12 @@ msgstr "Kaydet" msgid "Modoboa settings" msgstr "Modoboa ayarları" -#: 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 "Ayarlar" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Tercihler" @@ -2547,7 +2697,7 @@ msgstr "Kişisel bilgilerinizi güncelleyin" msgid "Click here to update your password" msgstr "Parolanızı güncellemek için buraya tıklayın" -#: 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 "Güvenlik" @@ -2556,8 +2706,13 @@ msgid "Two-Factor authentication" msgstr "İki Faktörlü kimlik doğrulama" #: 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." -msgstr "Uygulama havuzunuzdan FreeOTP veya Google Authenticator gibi bir yazılım belirteci kimlik doğrulayıcı yükleyin ve bu QR kodunu taramak için bu uygulamayı kullanın." +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 "" +"Uygulama havuzunuzdan FreeOTP veya Google Authenticator gibi bir yazılım " +"belirteci kimlik doğrulayıcı yükleyin ve bu QR kodunu taramak için bu " +"uygulamayı kullanın." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2568,29 +2723,52 @@ msgid "Register" msgstr "Kayıt ol" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "Tebrikler! Artık hesabınız için İki Faktörlü Kimlik Doğrulama etkinleştirildi." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." +msgstr "" +"Tebrikler! Artık hesabınız için İki Faktörlü Kimlik Doğrulama " +"etkinleştirildi." #: 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." -msgstr "Aşağıdaki kurtarma kodları, örneğin telefonunuzu kaybetmeniz durumunda hesabınıza yeniden erişmenizi sağlamak için bir kez kullanılabilir. Bunları güvenli bir yere kaydettiğinizden emin olun, aksi takdirde hesabınıza bir daha erişemezsiniz." +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 "" +"Aşağıdaki kurtarma kodları, örneğin telefonunuzu kaybetmeniz durumunda " +"hesabınıza yeniden erişmenizi sağlamak için bir kez kullanılabilir. Bunları " +"güvenli bir yere kaydettiğinizden emin olun, aksi takdirde hesabınıza bir " +"daha erişemezsiniz." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "Hesabınız için İki Faktörlü Kimlik Doğrulama etkinleştirildi." +#: 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 "2FA'yı devre dışı bırak" +#: 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 "Kurtarma kodlarını sıfırla" #: 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." -msgstr "Hesabınız için İki Faktörlü Kimlik Doğrulama (2FA) henüz etkinleştirilmedi. Bu özelliği etkinleştirmek hesabınızın güvenliğini artıracaktır." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." +msgstr "" +"Hesabınız için İki Faktörlü Kimlik Doğrulama (2FA) henüz etkinleştirilmedi. " +"Bu özelliği etkinleştirmek hesabınızın güvenliğini artıracaktır." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2604,69 +2782,75 @@ msgstr "Yeni kurtarma kodları" msgid "Here are your new recovery codes. " msgstr "İşte yeni kurtarma kodlarınız." +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Forgot password?" +msgid "Confirm your password" +msgstr "Parolanızı mı unuttunuz?" + #: 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 "Çıkış Yapın" -#: 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 "Modoboa'nın çekirdek kısmı" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Parametreler kaydedildi" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "Kullanıcı adınız ve parolanız eşleşmedi. Lütfen tekrar deneyin." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "'{}' kullanıcısı başarıyla çıkış yaptı" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil güncellendi" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Tercihler kaydedildi" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Erişim güncellendi" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "LDAP ayarları" -#: 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 "" @@ -2708,11 +2892,11 @@ msgstr "İkincil sunucu portu" 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 "" @@ -2784,103 +2968,103 @@ 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 #, fuzzy #| msgid "Invalid syntax" msgid "Invalid syntax for {} mechanism" msgstr "Geçersiz sözdizimi" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 #, fuzzy #| msgid "Invalid rounds number" msgid "Invalid mask found {}" msgstr "Geçersiz tur sayısı" -#: 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 #, fuzzy #| msgid "Invalid syntax" msgid "Invalid tag {}" msgstr "Geçersiz sözdizimi" -#: 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 #, fuzzy #| msgid "Unknown" msgid "Unknown tag {}" msgstr "Bilinmeyen" -#: 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 "" @@ -2909,7 +3093,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 @@ -2927,7 +3113,7 @@ msgstr "Onayla" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2935,153 +3121,161 @@ 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 "Erişim güncellendi" -#: 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 communication" msgid "Enable IMAP Migration" msgstr "İletişimi etkinleştir" -#: 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 communication" msgid "Enable IMAP Migration." msgstr "İletişimi etkinleştir" -#: 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 #, fuzzy #| msgid "LDAP settings" msgid "OfflineIMAP settings" msgstr "LDAP ayarları" -#: 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 #, fuzzy #| msgid "Failed to update password: {}" msgid "Failed to create LDAP account: {}" msgstr "{} Parola güncelleme başarısız" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 #, fuzzy #| msgid "Failed to update password: {}" msgid "Failed to update LDAP account: {}" msgstr "{} Parola güncelleme başarısız" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 #, fuzzy #| msgid "Failed to update password: {}" msgid "Failed to delete LDAP account: {}" msgstr "{} Parola güncelleme başarısız" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 #, fuzzy #| msgid "Failed to update password: {}" msgid "Failed to disable LDAP account: {}" msgstr "{} Parola güncelleme başarısız" -#: 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 "Modoboa genel API'si ile iletişimi etkinleştir" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "%s veritabanına bağlantı yapılandırılmamış" -#: 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 "dize kodlaması belirlenemiyor" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "%sizin reddedildi" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "İzin reddedildi" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Geçerli bir alan adı girin" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Geçerli bir e-posta adresi girin." @@ -3091,137 +3285,157 @@ msgstr "Geçerli bir e-posta adresi girin." msgid "Submit" msgstr "Gönder" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "{} Parola güncelleme başarısız" -#: 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 "Konu" -#: 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 #, fuzzy #| msgid "Domain administrator" msgid "Domain admins" msgstr "Alan adı Yöneticisi" -#: 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 #, fuzzy #| msgid "Invalid line" msgid "Invalid limit" msgstr "Geçersiz satır" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "" @@ -3234,11 +3448,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 "" @@ -3247,97 +3461,97 @@ 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 #, fuzzy #| msgid "Send statistics" msgid "Statistics" msgstr "İstatistikleri gönder" -#: 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 "İleti" -#: 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 "İleti" -#: 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 "" @@ -3375,193 +3589,199 @@ msgstr "" msgid "No statistics available" msgstr "Kullanılabilir tercihler yok." -#: 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 #, fuzzy #| msgid "Unknown" msgid "Unknown domain" msgstr "Bilinmeyen" -#: 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 "Kişisel bilgilerinizi güncelleyin" -#: 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 #, fuzzy #| msgid "Enable API access" msgid "Enable PDF credentials" msgstr "API erişimini etkinleştir" -#: 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 "Security" msgid "Security options" msgstr "Güvenlik" -#: 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 "Özel RSS beslemesi" -#: 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 "Sunucu adresi" -#: 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 "Sunucu portu" -#: 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 "Sunucu adresi" -#: 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 "Sunucu portu" -#: 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 "" @@ -3569,15 +3789,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" @@ -3586,40 +3806,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 "Parolayı değiştirin" -#: 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 "" @@ -3628,31 +3854,168 @@ 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 +#, fuzzy +#| msgid "This code is invalid" +msgid "This date is over" +msgstr "Bu kod geçersiz" + +#: 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 +#, fuzzy +#| msgid "Inactive account threshold" +msgid "Automatic replies" +msgstr "Etkin olmayan hesap eşiği" + +#: 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 +#, fuzzy +#| msgid "Custom RSS feed" +msgid "Auto-reply message" +msgstr "Özel RSS beslemesi" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Konu" + +#: 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 #, fuzzy #| msgid "Update password service URL" msgid "Unsupported service" msgstr "Parola servisi URL sayfasını güncelle" -#: 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 #, fuzzy #| msgid "From address" msgid "target host address" msgstr "Adresinden" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 #, fuzzy #| msgid "Recipient" msgid "verify recipients" @@ -3722,15 +4085,21 @@ msgstr "Parolanızı mı unuttunuz?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Parolanız ayarlandı. Şimdi devam ederek Giriş yapabilirsiniz." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Parolanız ayarlandı. Şimdi devam ederek Giriş " +"yapabilirsiniz." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Parolayı değiştirin" #: 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 "" "Parola sıfırlama bağlantısı, muhtemelen daha önce kullanılmış olduğu için geçersizdi. Lütfen yeni bir parola sıfırlama talebinde bulunun.\n" " " @@ -3744,19 +4113,35 @@ msgid "Resend code" msgstr "Kodu yeniden gönder" #: 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 "

        Parolanızı belirleme talimatlarını girdiğiniz e-posta hesabına gönderdik. Onları az önce almış olmalısınız.

        Eğer bir e-posta almadıysanız lütfen birincil e-posta adersinizi girdiğinizden emin olun ve istenmeyen e-posta klasörünüzü kontrol edin.

        " +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 "" +"

        Parolanızı belirleme talimatlarını girdiğiniz e-posta hesabına gönderdik." +" Onları az önce almış olmalısınız.

        Eğer bir e-posta almadıysanız " +"lütfen birincil e-posta adersinizi girdiğinizden emin olun ve istenmeyen " +"e-posta klasörünüzü kontrol edin.

        " #: 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 Modoboa hesabınız için parola sıfırlama işlemini başlatmak için aşağıdaki bağlantıya tıklayın:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"%(username)s Modoboa hesabınız için parola sıfırlama işlemini başlatmak için" +" aşağıdaki bağlantıya tıklayın:" #: 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 "Yukarıdaki bağlantıya tıklamak işe yaramazsa, lütfen bunun yerine URL'yi kopyalayıp yeni bir tarayıcı penceresine yapıştırın." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Yukarıdaki bağlantıya tıklamak işe yaramazsa, lütfen bunun yerine URL'yi " +"kopyalayıp yeni bir tarayıcı penceresine yapıştırın." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3777,14 +4162,14 @@ msgstr "Modoboa parola sıfırlama" msgid "Invalid value" msgstr "Geçersiz satır" -#: 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/tr_TR/LC_MESSAGES/django.po b/modoboa/locale/tr_TR/LC_MESSAGES/django.po index 11296b424..702497e73 100644 --- a/modoboa/locale/tr_TR/LC_MESSAGES/django.po +++ b/modoboa/locale/tr_TR/LC_MESSAGES/django.po @@ -12,490 +12,544 @@ 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: 2018-11-22 19:31+0000\n" "Last-Translator: Ediz Duman \n" -"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/language/tr_TR/)\n" +"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/" +"language/tr_TR/)\n" "Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: admin/api/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 "Bu alan gereklidir" -#: 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 +#: 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 "Yönetim" -#: 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 "Kullanıcı adı" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." +#: 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 "Rol" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Seçme" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Bu kullanıcının izni hangi düzeyde olacak" -#: admin/forms/account.py:44 admin/forms/domain.py: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 "Parola" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Şifre tekrar" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Doğrulama için, yukarıdaki aynı şifreyi girin." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Etkin" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "Sadece süper yöneticiler bu mod için izinli" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "İki şifre alanlarını eşleşmiyor." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Kendi hesabınızı devre dışı bırakamazsınız" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "E-posta" -#: 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 "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)." +#: 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 "Genel" -#: 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 "Kullanıcı Bilgisi" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Posta" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "İzinler" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Hesap güncellendi" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Yeni hesap" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "" @@ -508,69 +562,77 @@ msgid "Email address" msgstr "E-posta adresi" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." msgstr "" #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Alıcılar" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." +#: 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 "Tip" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." +#: 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 @@ -579,51 +641,53 @@ msgstr "" msgid "Name" msgstr "Ad" -#: 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 "Geçersiz format" -#: 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 "Seçenekler" -#: 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 "Ayraç" @@ -631,23 +695,23 @@ msgstr "Ayraç" msgid "Recipient(s)" msgstr "Alıcı (lar)" -#: 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 "" @@ -655,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 "" @@ -663,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 "" @@ -758,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 "" @@ -783,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 "" @@ -980,9 +1041,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 "" @@ -1017,7 +1078,7 @@ msgstr "" msgid "Last login" msgstr "Son giriş" -#: 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 "" @@ -1026,7 +1087,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 "" @@ -1104,7 +1165,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 "" @@ -1130,9 +1191,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 "" @@ -1192,7 +1253,7 @@ 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 "" @@ -1200,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 "" @@ -1213,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 "" @@ -1250,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 "" @@ -1287,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 "Güncelle" @@ -1306,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:
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
        • alias; address; enabled; recipient; recipient; ...

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1347,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 @@ -1363,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] "" @@ -1456,36 +1541,36 @@ msgstr[1] "" 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1493,87 +1578,73 @@ 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 #, fuzzy #| msgid "Invalid value" msgid "Invalid PIN code" msgstr "Geçersiz değer" -#: 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 "Yerel" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (zayıf)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (zayıf)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (zayıf)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (zayıf)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "düz metin (zayıf)" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 -msgid "User profile" -msgstr "Kullanıcı profili" - -#: 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 "" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "" - -#: 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 "Eski parola" -#: 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 "Yerel" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Kullanıcı profili" + +#: 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 "" + +#: 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: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 "" -#: 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 "" @@ -1583,468 +1654,495 @@ 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 "Yetkilendirme" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Yetkilendirme türü" -#: 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 "Varsayılan parola şeması" -#: 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 "Mailbox parolalarını şifrelemek için kullanılacak şema" -#: 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 #, fuzzy #| msgid "Update password scheme" msgid "Update password scheme at login" msgstr "Şifre şemasını güncelle" -#: 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 "Varsayılan parola" -#: 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 "Otomatik oluşturulan hesaplar için varsayılan parola." -#: 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 "Rastgele şifre uzunluğu" -#: 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 #, fuzzy #| msgid "Update password scheme" msgid "Update password service URL" msgstr "Şifre şemasını güncelle" -#: 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 "LDAP ayarları" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Sunucu adresi" -#: 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 "LDAP sunucusunun adresi (DNS) ya da ip adresi" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Sunucu portu" -#: 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 "LDAP sunucu tarafından kullanılan TCP portu" -#: 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 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Sunucu adresi" -#: core/app_settings.py:159 core/app_settings.py:822 +#: core/app_settings.py:156 core/app_settings.py:869 #, fuzzy #| msgid "The IP address or the DNS name of the LDAP server" msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "LDAP sunucusunun adresi (DNS) ya da ip adresi" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Sunucu portu" -#: core/app_settings.py:166 core/app_settings.py:829 +#: core/app_settings.py:163 core/app_settings.py:879 #, fuzzy #| msgid "The TCP port number used by the LDAP server" msgid "The TCP port number used by the LDAP secondary server" msgstr "LDAP sunucu tarafından kullanılan TCP portu" -#: 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 "Güvenli bir bağlantı kullan" -#: 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 "Active Directory" -#: 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 "LDAP sunucu bir Active Directory ise" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Yönetici grupları" -#: 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 "Grup türü" -#: 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 "Parola özelliği" -#: 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 "Kullanıcı parolalarını saklamak için kullanılacak özellik" -#: core/app_settings.py:220 core/app_settings.py:869 +#: core/app_settings.py:214 core/app_settings.py:943 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Yetkilendirme metodu" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Yetkilendirme metodu" -#: 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 "Kullanılacak yetkilendirme metodunu seçin" -#: 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 "Arama filtresi" -#: 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 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "LDAP ayarları" -#: 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 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Parola özelliği" -#: 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 "gösterge Paneli" -#: 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 "Bildirimler" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Gönderici adresi" -#: 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 "Bildirimlerin gönderileceği email adresi" -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "Genel API" -#: 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 "Yeni versiyonları kontrol et" -#: 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 "İstatistikleri gönder" -#: 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 "Çeşitli" -#: 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 "Maksimum günlük kayıt yaşı" -#: 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 "Sayfa başına öğe" -#: 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 "" @@ -2076,33 +2174,33 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Eski parola" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Yeni parola" -#: 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 #, fuzzy #| msgid "Notifications" msgid "Verification code" msgstr "Bildirimler" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "" @@ -2119,20 +2217,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 "" @@ -2140,139 +2238,139 @@ 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 "Bir veya daha fazla güncelleme mevcut" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 #, fuzzy #| msgid "One or more updates are available" msgid "[modoboa] Update(s) available" msgstr "Bir veya daha fazla güncelleme mevcut" -#: 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 "parola" -#: 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 msgid "Failed to update password: LDAP module not installed" msgstr "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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] "" msgstr[1] "" -#: 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 "" @@ -2297,7 +2395,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 @@ -2310,7 +2410,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 @@ -2322,7 +2424,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 "" @@ -2354,7 +2456,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 "" @@ -2382,7 +2484,7 @@ msgid_plural "" msgstr[0] "Bir veya daha fazla güncelleme mevcut" msgstr[1] "Bir veya daha fazla güncelleme mevcut" -#: 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 "" @@ -2399,12 +2501,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 "Ayarlar" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "" @@ -2424,7 +2526,7 @@ msgstr "Kişisel bilgilerinizi güncelleyin" 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 "" @@ -2435,7 +2537,9 @@ msgid "Two-Factor authentication" msgstr "Yetkilendirme" #: 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 @@ -2447,28 +2551,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 @@ -2485,69 +2604,73 @@ 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 "Çıkış" -#: 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 "Kullanıcı bilgileri güncellendi" -#: 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 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "LDAP ayarları" -#: 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 "" @@ -2589,11 +2712,11 @@ msgstr "Sunucu portu" 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 "" @@ -2665,95 +2788,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 "" @@ -2782,7 +2905,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 @@ -2798,7 +2923,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2806,87 +2931,95 @@ 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 #, fuzzy #| msgid "LDAP settings" msgid "OfflineIMAP settings" msgstr "LDAP ayarları" -#: 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 @@ -2895,51 +3028,51 @@ msgstr "" msgid "IMAP migration" msgstr "Yönetim" -#: 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 #, 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 "" @@ -2949,133 +3082,153 @@ msgstr "" msgid "Submit" msgstr "Gönder" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "" -#: 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 "Konu" -#: 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 "" @@ -3088,11 +3241,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 "" @@ -3101,93 +3254,93 @@ 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 #, fuzzy #| msgid "Send statistics" msgid "Statistics" msgstr "İstatistikleri gönder" -#: 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 "" @@ -3221,185 +3374,191 @@ 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 #, fuzzy #| msgid "Update your personal information" msgid "Personal account information" msgstr "Kişisel bilgilerinizi güncelleyin" -#: 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 #, fuzzy #| msgid "Server address" msgid "SMTP server address" msgstr "Sunucu adresi" -#: 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 "Sunucu portu" -#: 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 "Sunucu adresi" -#: 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 "Sunucu portu" -#: 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 "" @@ -3407,15 +3566,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" @@ -3424,38 +3583,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 "" @@ -3464,27 +3629,160 @@ 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 +#, fuzzy +#| msgid "This field is required" +msgid "This date is over" +msgstr "Bu alan gereklidir" + +#: 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 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Konu" + +#: 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 "" @@ -3554,7 +3852,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 @@ -3562,7 +3862,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 @@ -3574,18 +3876,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 @@ -3605,18 +3915,33 @@ msgstr "" msgid "Invalid value" msgstr "Geçersiz değer" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "desen" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "hizmet" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "sonraki atlama" +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (zayıf)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (zayıf)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (zayıf)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (zayıf)" + +#~ msgid "plain (weak)" +#~ msgstr "düz metin (zayıf)" + #~ msgid "Mailboxes owner" #~ msgstr "Posta kutularının sahibi" diff --git a/modoboa/locale/uk/LC_MESSAGES/django.po b/modoboa/locale/uk/LC_MESSAGES/django.po index 616c5910e..63c58230b 100644 --- a/modoboa/locale/uk/LC_MESSAGES/django.po +++ b/modoboa/locale/uk/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: Taras Havryliuk , 2021\n" "Language-Team: Ukrainian (https://www.transifex.com/tonio/teams/13749/uk/)\n" @@ -19,482 +19,538 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != " +"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % " +"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || " +"(n % 100 >=11 && n % 100 <=14 )) ? 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 +#: 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 +563,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 +642,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 +696,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 +720,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 +728,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 +823,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 +848,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 "" @@ -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 "" @@ -1189,7 +1252,7 @@ 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 +1260,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 +1273,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 +1310,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 +1347,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 +1367,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:
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
        • alias; address; enabled; recipient; recipient; ...

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1344,11 +1421,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 +1442,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 +1542,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 +1554,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 +1575,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1496,83 +1583,69 @@ 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 +1655,477 @@ 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 +2157,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 +2198,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 +2219,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 "Не вдалося оновити обліковий запис LDAP: {} " -#: 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 +2287,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 +2295,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 +2303,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 +2311,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 +2384,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 +2399,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 +2413,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 +2445,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 +2473,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 +2490,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 +2515,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 +2524,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 +2538,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 +2589,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 +2689,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 +2765,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 +2882,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 +2900,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2781,136 +2908,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 "Не вдалося створити обліковий запис LDAP: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Не вдалося оновити обліковий запис LDAP: {} " -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Не вдалося видалити обліковий запис LDAP: {} " -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Не вдалося відключити обліковий запис LDAP: {} " -#: 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 +3055,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 "Не вдалося оновити обліковий запис LDAP: {} " -#: 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 +3216,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 +3229,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 +3341,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 +3523,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 +3540,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 +3586,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 +3803,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 +3813,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 +3827,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 +3866,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/zh_CN/LC_MESSAGES/django.po b/modoboa/locale/zh_CN/LC_MESSAGES/django.po index ad673dacb..3a185b341 100644 --- a/modoboa/locale/zh_CN/LC_MESSAGES/django.po +++ b/modoboa/locale/zh_CN/LC_MESSAGES/django.po @@ -11,490 +11,544 @@ 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: 李 正 <364109980@qq.com>, 2021\n" -"Language-Team: Chinese (China) (https://www.transifex.com/tonio/teams/13749/zh_CN/)\n" +"Language-Team: Chinese (China) (https://www.transifex.com/tonio/teams/13749/" +"zh_CN/)\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\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 +#: 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 +561,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 +640,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 +694,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 +718,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 +726,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 +821,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 +846,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 "" @@ -979,9 +1040,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 +1077,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 +1086,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 +1164,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 +1188,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 "" @@ -1189,7 +1250,7 @@ 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 +1258,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 +1271,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 +1308,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 +1345,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 +1365,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:
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
        • alias; address; enabled; recipient; recipient; ...

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

        You can use a different character as separator.

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " msgstr "" #: admin/templates/admin/importform.html:6 @@ -1344,11 +1419,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 +1440,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] "" @@ -1452,34 +1537,34 @@ msgstr[0] "" 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] "" -#: 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] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1487,83 +1572,69 @@ 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 "" @@ -1573,450 +1644,477 @@ 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 "" @@ -2048,31 +2146,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 "" @@ -2089,20 +2187,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 "" @@ -2110,135 +2208,135 @@ 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 "无法更新LDAP帐户: {}" -#: 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] "" -#: 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] "" -#: 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] "" -#: 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] "" -#: 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 "" @@ -2263,7 +2361,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 @@ -2276,7 +2376,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 @@ -2288,7 +2390,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 "" @@ -2320,7 +2422,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 "" @@ -2345,7 +2447,7 @@ msgid_plural "" " The following updates are available:\n" msgstr[0] "" -#: 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 "" @@ -2362,12 +2464,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 "" @@ -2387,7 +2489,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 "" @@ -2396,7 +2498,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 @@ -2408,28 +2512,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 @@ -2444,67 +2563,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 "" @@ -2540,11 +2663,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 "" @@ -2616,95 +2739,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 "" @@ -2733,7 +2856,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 @@ -2749,7 +2874,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2757,136 +2882,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 "无法创建LDAP帐户: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "无法更新LDAP帐户: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "无法删除LDAP帐户: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "无法关闭LDAP帐户: {}" -#: 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 "" @@ -2896,135 +3029,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 "无法更新LDAP帐户: {}" -#: 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 "" @@ -3037,11 +3190,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 "" @@ -3050,91 +3203,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 "" @@ -3162,175 +3315,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 "" @@ -3338,15 +3497,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" @@ -3355,38 +3514,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 "" @@ -3395,27 +3560,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 "" @@ -3483,7 +3777,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 @@ -3491,7 +3787,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 @@ -3503,18 +3801,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 @@ -3534,14 +3840,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/zh_TW/LC_MESSAGES/django.po b/modoboa/locale/zh_TW/LC_MESSAGES/django.po index a343f2965..352985128 100644 --- a/modoboa/locale/zh_TW/LC_MESSAGES/django.po +++ b/modoboa/locale/zh_TW/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: 2018-07-06 08:26+0000\n" "Last-Translator: akong \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/language/zh_TW/)\n" @@ -20,516 +20,584 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。" -#: admin/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 "預設套用在信箱幾 MB 的配額。值為0表示沒配額。" -#: 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 "沒有找到這個網域已驗證過的 MX 紀錄" -#: 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 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "使用者 '%s' 已存在" + +#: 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 "使用者 '%s' 已存在" -#: 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 #, fuzzy #| msgid "Directory not found." 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 "openssl 找不到,請確認已安裝。" -#: 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 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "信箱是必要的" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" 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 "啟用 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 "檢查每個網域都有正確的 MX 紀錄" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "正確的 MX" -#: 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 "每個 MX 紀錄應該要跟列出來的 IP 或網路位址一樣。假如紀錄不同的會有警告送出。" -#: 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 "新的網域必須要有已驗立的 MX(s)" -#: 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 "假如 MX 紀錄未使用定義的位址請避免建立新的網域。" -#: 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 "啟用 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 "啟用 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 "檢查每個網域都有正確的 MX 紀錄" -#: 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 "啟用 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 "檢查每個網域都有正確的 MX 紀錄" -#: 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 "啟用 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 "檢查每個網域都有正確的 MX 紀錄" -#: 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 "啟用 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 "檢查每個網域都有正確的 MX 紀錄" -#: 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 "啟用 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 "針對每個 DNSBL 供應商來檢查每個網域" -#: 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 "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." +#: 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 "絕對路徑的目錄將會給 DKIM 私鑰儲存。確認這個目錄屬於 root 使用者並且外面的世界無法讀取。" -#: 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 "預設 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 "預設長度是給新產生的 DKIM 金鑰用。" -#: 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 "預設配額(以MB為單位)應用於未指定值的創立網域。值為0表示沒有配額。" -#: 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 "預設網域配額" -#: 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 "當他要在 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 "預設信箱配額" -#: 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." +#| 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 "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。" -#: 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 "預設信箱配額" -#: 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 +#: 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." +#| 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 "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。" -#: 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 #, fuzzy #| msgid "Close" 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 +#: admin/forms/account.py:244 #, fuzzy -#| msgid "Quota in MB for this mailbox. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgid "Quota 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)." +#| msgid "" +#| "Quota in MB for this mailbox. Define a custom value or use domain's default " +#| "one. Leave empty to define an unlimited value (not allowed for domain " +#| "administrators)." +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." msgstr "這個信箱有多少 MB 的配額。定義一個自訂的值或使用網域的預設值。保持空白是定義為無限制 (不允許網域管理者)。" -#: admin/forms/account.py: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)." -msgstr "這個信箱的別名(es)。一行只能輸入一個電子郵件,按 Enter 新增新的一行,要建立抓取別名,只要輸入網域名稱 (@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 "" +"這個信箱的別名(es)。一行只能輸入一個電子郵件,按 Enter 新增新的一行,要建立抓取別名,只要輸入網域名稱 (@domain.tld)。" -#: 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 "新增這個帳號的寄件地址(es)。此使用者將會允許使用這個位址寄送郵件,即使這個不在本機。一行輸入一個位址。按 Enter 新增新的一行。" -#: 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 "系統管理者網域(S)" -#: 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 "帳號已建立" @@ -542,71 +610,80 @@ 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 "此別名位址。要建立抓取別名,只要輸入網域名稱 (@domain.tld)。" #: 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 "這個別名的位址將會指到這。一行只能輸入一個電子郵件,按 Enter 新增新的一行。" -#: 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 "這個網域的別名(es)。一行只能輸入一個電子郵件,按 Enter 新增新的一行。" -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Key selector" -#: admin/forms/domain.py:52 +#: admin/forms/domain.py:57 #, fuzzy -#| msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." +#| msgid "" +#| "Default quota in MB applied to mailboxes. A value of 0 means no quota." +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。" -#: admin/forms/domain.py: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 "此 %s 及這個名稱已存在" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "未設置 DKIM 金鑰儲存目錄" -#: 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 @@ -615,51 +692,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 "分開" @@ -667,23 +746,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 "錯誤時仍繼續" @@ -691,7 +770,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 "加密密碼" @@ -699,96 +778,96 @@ 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 "帳號匯入失敗 (%s): 網域不存在" -#: 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 "帳號匯入失敗 (%s): 錯誤配額" -#: 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 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" msgstr "沒有找到 %s 的 DNS 紀錄" -#: 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 "沒有 %s 的 MX 紀錄" -#: 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 "DNS 解析逾時,無法查詢 %s 在這個時間點" -#: 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 #, fuzzy, python-brace-format #| msgid "Invalid IP address format for %(domain)s; %(addr)s" msgid "Invalid IP address format for {domain}; {addr}" msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "元件已存在: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d 元件已匯入成功" -#: 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 "" @@ -797,27 +876,27 @@ 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 #, fuzzy #| msgid "Domain {} has no MX record" msgid "Domain has no MX record" msgstr "網域 {} 沒有 MX 紀錄" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "網域 {} 沒有 MX 紀錄" -#: 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 紀錄 {}" -#: 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 紀錄 {0} 是無效的: {1}" @@ -826,160 +905,155 @@ msgstr "此網域的 MX 紀錄 {0} 是無效的: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] 此網域的 MX 問題(s) {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] 此網域的 DNSBL 問題(s) {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "網域不存在。" -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -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 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "無效行: %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 "名稱" -#: 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 "啟用 DNS 檢查" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "點擊啟用這個網域的 DNS 檢查" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "啟用 DKIM 簽署" -#: 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 "假如您啟用這個功能,DKIM 金鑰將會產生給這個網域。" -#: 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 #, fuzzy #| msgid "No authorized MX record found for domain {}" msgid "{}: no authorized MX record found for domain" msgstr "沒有找到這個網域已驗證過的 MX 紀錄 {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "此網域有無效的配額值 '{}'" -#: 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 "此網域有無效的預設信箱配額值 '{}'" -#: 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 "預設的信箱配額不可以超過網域配額" -#: 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 "未知網域 %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "信箱位址 (不要有 @domain.tld 這個部份)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "無法收回信箱位置 (%s)" -#: 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 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -989,8 +1063,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 "關閉" @@ -1041,9 +1116,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 "網域別名" @@ -1078,7 +1153,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 "次要電子郵件" @@ -1087,7 +1162,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 "電話號碼" @@ -1165,7 +1240,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 "日期" @@ -1191,9 +1266,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 "信箱別名" @@ -1252,11 +1327,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 "否" @@ -1264,7 +1340,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 "是" @@ -1277,7 +1353,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 "移除這個權限" @@ -1314,13 +1390,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 "寄件人" +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 "收件人" @@ -1351,9 +1427,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 "更新" @@ -1370,12 +1447,32 @@ msgid "Fullname/Recipient" msgstr "完整名稱/收件人" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • domain; name; quota; default mailbox quota; enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; verify recipients

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

        You can use a different character as separator.

        " -msgstr "提供 CSV 檔並且每行使用以下格式:
        • 網域; 名稱; 配額; 預設信箱配額; 已啟用
        • 網域別名; 名稱; 目標網域; 已啟用
        • 轉送網域; 名稱; 目標主機; 目標連接埠; 服務; 已啟用; 驗證收件人

        每一行的第一個元件都是強制性的且必須跟之前值是一樣的。

        您可以使用不同的字元來分開。

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • domain; name; quota; default mailbox quota; enabled
        • " +"
        • domainalias; name; targeted domain; enabled
        • " +"
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

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

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

        " +msgstr "" +"提供 CSV 檔並且每行使用以下格式:
        • 網域; 名稱; 配額; 預設信箱配額; 已啟用
        • " +"
        • 網域別名; 名稱; 目標網域; 已啟用
        • 轉送網域; 名稱; 目標主機; 目標連接埠; 服務; " +"已啟用; 驗證收件人

        每一行的第一個元件都是強制性的且必須跟之前值是一樣的。

        " +"

        您可以使用不同的字元來分開。

        " #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:
        • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
        • alias; address; enabled; recipient; recipient; ...

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

        You can use a different character as separator.

        " -msgstr "提供 CSV 檔並且每行使用以下格式:
        • 帳號; 登入名稱; 密碼; 名; 姓; 已啟用; 群組; 位址; 配額; [, 網域, ...]
        • 別名; 位址; 已啟用; 收件人; 收件人; ...

        每一行的第一個元件都是強制性的且必須跟之前值是一樣的。

        您可以使用不同的字元來分開。

        " +msgid "" +"Provide a CSV file where lines respect one of the following formats:
          " +"
        • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
        • alias; address; enabled; " +"recipient; recipient; ...

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

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

        " +msgstr "" +"提供 CSV 檔並且每行使用以下格式:
        • 帳號; 登入名稱; 密碼; 名; 姓; 已啟用; 群組; 位址; 配額; [, 網域," +" ...]
        • 別名; 位址; 已啟用; 收件人; 收件人; ...
        " +"

        每一行的第一個元件都是強制性的且必須跟之前值是一樣的。

        您可以使用不同的字元來分開。

        " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1411,11 +1508,16 @@ msgstr "沒有找到這個網域的 MX 紀錄。" #: 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 "Modoboa 已偵測到網域 %(domain)s 是列表在以下的 DNSBL 提供者:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." +msgid "" +"The domain's reputation will be affected and there is a chance that emails " +"coming from it are considered as spam. You should contact those providers " +"and ask them to unlist detected IP address(es)." msgstr "此網域的信用將有機會影響從這裡寄出的郵件被當作垃圾郵件。您應該聯絡提供者並要求他們取消 IP 位址(es) 的偵測列表。" #: admin/templates/admin/notifications/domain_invalid_mx.html:3 @@ -1427,92 +1529,98 @@ msgstr "Modoboa 已偵測到網域 %(domain)s 沒有正確的 MX 紀錄:" msgid "Search" msgstr "搜尋" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enabled_f" -#: 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 #, fuzzy #| msgid "domain alias" 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 "刪除 %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "沒有 %s 的 MX 紀錄" -#: 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 "無效的 IP 位址格式 %(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 "沒有 %s 的 MX 紀錄" + #: 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] "別名已刪除" @@ -1521,34 +1629,34 @@ msgstr[0] "別名已刪除" msgid "MX records of {}" msgstr "MX 紀錄 {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "DNSBL 摘要 {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "網域移除" -#: 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] "帳號已刪除" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "匯入網域" @@ -1556,87 +1664,74 @@ 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 #, fuzzy #| msgid "Invalid line" 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 -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 "本機" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "md5crypt (弱)" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "sha256 (弱)" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "md5 (弱)" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "crypt (弱)" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "plain (弱)" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 -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 -msgid "Invalid syntax" -msgstr "" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "" - -#: 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 "舊密碼" -#: 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 "本機" + +#: 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: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:557 +msgid "Invalid rounds number" +msgstr "" + +#: 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 "" -#: 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 "" @@ -1646,475 +1741,505 @@ 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 "重複幾輪產生 (只能用於 sha256crypt 和 sha512crypt). 必須介於 1000 到 999999999, 包括." -#: core/app_settings.py:67 core/app_settings.py:749 +#: core/app_settings.py:71 core/app_settings.py:752 #, fuzzy #| msgid "Default password scheme" 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 #, fuzzy #| msgid "Default password scheme" 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 "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 "伺服器地址" -#: 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 "LDAP 伺服器的 IP 或 DNS 名稱" -#: 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 "LDAP 伺服器所使用的 TCP 連接埠" -#: 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "The IP address or the DNS name of the LDAP server" msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "LDAP 伺服器的 IP 或 DNS 名稱" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 #, fuzzy #| msgid "Server port" 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 #, fuzzy #| msgid "The TCP port number used by the LDAP server" msgid "The TCP port number used by the LDAP secondary server" msgstr "LDAP 伺服器所使用的 TCP 連接埠" -#: 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 "使用 SSL/STARTTLS 連線到 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 "Active Directory" -#: 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 "判斷 LDAP 伺服器是否是 Active Directory 伺服器" -#: 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 "這些 LDAP 群組的成員將會建立為網域管理者。使用 ';' 字元來分開群組" -#: 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 "此 LDAP 群組類型會使用您的目錄" -#: 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 #, fuzzy #| msgid "Authentication method" 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 "搜尋和 bind" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "直接 bind" -#: 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 "Bind 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" +#: 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 "當對應到 LDAP 伺服器請使用醒目的名稱。保留空白為匿名 bind" -#: 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 "Bind 密碼" -#: 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 "此密碼使用於當綁定到 LDAP 伺服器 (有 'Bind 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 "使用者搜尋基準" -#: 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 "過濾字串的選 (例如 '(objectClass=person)'). 要能正常使用,這必須括在括號內。" -#: 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 "使用者 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)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)" -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "LDAP 設定" -#: 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 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "使用者 DN 範本" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, fuzzy, 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 an account'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)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)" -#: 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 #, fuzzy #| msgid "Password attribute" 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 #, fuzzy #| msgid "Enable communication" 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 "自訂 RSS 來源" -#: 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 "顯示自訂的 RSS 來源給經銷商和網域管理者" -#: 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 "公用 API" -#: 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 "開啟 Modoboa 公用 API 的通訊" -#: 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 "寄送狀態到 Modoboa 公用 API (計數器及已使用的外掛)" -#: 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 #, fuzzy #| msgid "Inactive account threshold" 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 "" @@ -2146,33 +2271,33 @@ 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 "啟用 API 存取" -#: core/forms.py:152 +#: core/forms.py:170 #, fuzzy #| msgid "Notifications" msgid "Verification code" msgstr "通知" -#: core/forms.py:163 +#: core/forms.py:181 #, fuzzy #| msgid "Invalid line" msgid "Invalid code" @@ -2191,20 +2316,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 "管理指令" @@ -2212,135 +2337,135 @@ 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 #, fuzzy #| msgid "One or more updates are available" 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 msgid "Failed to update password: LDAP module not installed" msgstr "更新密碼失敗: LDAP 模組未安裝" -#: 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] "" -#: 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] "" -#: 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] "" -#: 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] "" -#: 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 "" @@ -2365,7 +2490,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 @@ -2378,7 +2505,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 @@ -2390,7 +2519,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 "" @@ -2422,7 +2551,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 "記錄" @@ -2449,7 +2578,7 @@ msgid_plural "" " The following updates are available:\n" msgstr[0] "一個或多個可用的更新" -#: 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 "參數" @@ -2466,12 +2595,12 @@ msgstr "儲存" msgid "Modoboa settings" msgstr "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 "設定" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "偏好選項" @@ -2493,7 +2622,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 "" @@ -2504,7 +2633,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 @@ -2518,18 +2649,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" @@ -2537,12 +2677,18 @@ msgstr "" 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 @@ -2561,71 +2707,77 @@ msgstr "沒有找到 %s 的 DNS 紀錄" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "加密密碼" + #: 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 "登出" -#: 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 "Modoboa 的核心部分" -#: 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 #, fuzzy #| msgid "LDAP settings" msgid "DNS settings" msgstr "LDAP 設定" -#: 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 #, fuzzy #| msgid "No MX record for %s" msgid "Show DMARC report for {}" msgstr "沒有 %s 的 MX 紀錄" -#: 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 #, fuzzy #| msgid "Not defined" msgid "Not resolved" @@ -2671,11 +2823,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 "" @@ -2755,95 +2907,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 "" @@ -2872,7 +3024,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 @@ -2888,7 +3042,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2896,95 +3050,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 "存取已更新" -#: 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 "啟用 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 "啟用 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 "建立別名" -#: 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 "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 @@ -2993,52 +3155,52 @@ msgstr "" msgid "IMAP migration" msgstr "管理員" -#: 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 "開啟 Modoboa 公用 API 的通訊" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "連線到資料庫 %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 "" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "權限不足: %s" -#: 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 "輸入有效的電子郵件" @@ -3048,133 +3210,153 @@ msgstr "輸入有效的電子郵件" msgid "Submit" msgstr "執行" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "更新密碼失敗: {}" -#: 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 "新的管理者最大允許網域管理者的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的管理者最大允許網域的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的管理者最大允許網域別名的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的管理者最大允許信箱的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的管理者最大允許別名的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "經銷商的配額允許分配給他建立的網域之間。(0 意思是沒配額)" -#: 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 "新的網域最大允許網域管理者的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的網域最大允許網域別名的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的網域最大允許信箱的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "新的網域最大允許別名的數量。(0 是禁止建立,-1 是無限制建立)" -#: 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 "資源" @@ -3187,11 +3369,11 @@ msgstr "%s: 已達到上限" 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 "無限制" @@ -3200,91 +3382,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 "儲存 RRD 檔案的目錄" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "RRD 檔案已儲存到目錄路徑" -#: 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 "指定 rrdtools 位置失敗。" -#: 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 "建立帳號平均值 (帳號/小時)" @@ -3312,201 +3494,207 @@ 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 #, fuzzy #| msgid "Unknown graphic set" 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 #, fuzzy #| msgid "Update your personal information" msgid "Personal account information" msgstr "更新你的個人信息" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." 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 #, fuzzy #| msgid "No information available for this domain." 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 #, fuzzy #| msgid "Enable DNS checks" msgid "Enable PDF credentials" msgstr "啟用 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 #, fuzzy #| msgid "Directory to store RRD files" msgid "Directory to save documents into" msgstr "儲存 RRD 檔案的目錄" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 #, fuzzy #| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" msgstr "RRD 檔案已儲存到目錄路徑" -#: 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 "描述" -#: 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 "spam messages" 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "Server port" 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 #, fuzzy #| msgid "Server address" 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 #, fuzzy #| msgid "Server port" 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 "" @@ -3514,15 +3702,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" @@ -3531,40 +3719,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 "Failed to update password: {}" 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 "" @@ -3573,27 +3767,176 @@ 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: 已達到上限" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: 已達到上限" + +#: 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 "這個日期已經過了" + +#: 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 "必須比開始日期遲" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +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 "從這個日期開始啟用自動答覆. 格式: YYYY-MM-DD HH:mm:ss" + +#: 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 "啟用自動答覆直到這個日期。 格式: YYYY-MM-DD HH:mm:ss" + +#: 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 "此內容的答案。您可以使用以下的變數,這將會自動替換適當的值: %(name)s, %(fromdate)s, %(untildate)s" + +#: 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 "預設內容" + +#: 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 "" +"我目前不在位置上。我會盡快回覆您。\n" +"\n" +"Best regards,\n" +"%(name)s\n" + +#: 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 "當自動回覆訊息自動建立後會使用預設內容。此 '%(name)s' 巨集會取代使用者名稱。" + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "spam messages" +msgid "Auto-reply message" +msgstr "自動答覆訊息" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "自動答覆" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +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 "驗證收件者" @@ -3663,7 +4006,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 @@ -3671,7 +4016,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 @@ -3683,18 +4030,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 @@ -3714,22 +4069,36 @@ msgstr "Modoboa 密碼重設" 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 "下一步" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: 已達到上限" +#~ msgid "An alias with this name already exists." +#~ msgstr "這個名稱的別名已存在" + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (弱)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (弱)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (弱)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (弱)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (弱)" #~ msgid "Secret key" #~ msgstr "密鑰" @@ -3760,17 +4129,14 @@ msgstr "下一步" #~ msgstr "檔案名稱" #, fuzzy -#~| msgid "No DNS records found for %s" #~ msgid "No {type} record found for MX {mx}" #~ msgstr "沒有找到 %s 的 DNS 紀錄" #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No A record found for MX %(domain)s" #~ msgstr "沒有找到這個網域的 MX 紀錄。" #, fuzzy -#~| msgid "No MX record found for this domain." #~ msgid "No AAAA record found for MX %(domain)s" #~ msgstr "沒有找到這個網域的 MX 紀錄。" @@ -3778,12 +4144,10 @@ msgstr "下一步" #~ msgstr "信箱之間共用幾 MB 的配額。值為0表示沒配額。" #, fuzzy -#~| msgid "No DNS records found for %s" #~ msgid "No DNS records found without MX for %s" #~ msgstr "沒有找到 %s 的 DNS 紀錄" #, fuzzy -#~| msgid "No DNS records found for %s" #~ msgid "No DNS records found without MX for %(domain)s" #~ msgstr "沒有找到 %s 的 DNS 紀錄" diff --git a/modoboa/postfix_autoreply/__init__.py b/modoboa/postfix_autoreply/__init__.py new file mode 100644 index 000000000..c1b6d5fa5 --- /dev/null +++ b/modoboa/postfix_autoreply/__init__.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +"""Away message editor for Modoboa (postfix compatible).""" + +from __future__ import unicode_literals + +from pkg_resources import DistributionNotFound, get_distribution + +try: + __version__ = get_distribution(__name__).version +except DistributionNotFound: + # package is not installed + pass + +default_app_config = "modoboa_postfix_autoreply.apps.PostfixAutoreplyConfig" diff --git a/modoboa/postfix_autoreply/api/__init__.py b/modoboa/postfix_autoreply/api/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/postfix_autoreply/api/v2/__init__.py b/modoboa/postfix_autoreply/api/v2/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/postfix_autoreply/api/v2/serializers.py b/modoboa/postfix_autoreply/api/v2/serializers.py new file mode 100644 index 000000000..53956f5b8 --- /dev/null +++ b/modoboa/postfix_autoreply/api/v2/serializers.py @@ -0,0 +1,40 @@ +"""Autoreply serializers.""" + +from django.utils import timezone +from django.utils.translation import gettext as _ + +from rest_framework import serializers + +from modoboa.postfix_autoreply import models + + +class ARMessageSerializer(serializers.ModelSerializer): + """A serializer for ARmessage.""" + + class Meta: + model = models.ARmessage + fields = "__all__" + + def validate(self, data): + """Check dates.""" + if not data.get("fromdate"): + data["fromdate"] = timezone.now() + if not data["enabled"]: + return data + untildate = data.get("untildate") + if untildate is not None: + if untildate < timezone.now(): + raise serializers.ValidationError({"untildate": _("This date is over")}) + elif untildate < data["fromdate"]: + raise serializers.ValidationError( + {"untildate": _("Must be greater than start date")} + ) + return data + + +class AccountARMessageSerializer(ARMessageSerializer): + """Dedicated serializer for account operations.""" + + class Meta: + model = models.ARmessage + fields = ("enabled", "subject", "content", "fromdate", "untildate") diff --git a/modoboa/postfix_autoreply/api/v2/tests.py b/modoboa/postfix_autoreply/api/v2/tests.py new file mode 100644 index 000000000..a17d9f1f7 --- /dev/null +++ b/modoboa/postfix_autoreply/api/v2/tests.py @@ -0,0 +1,169 @@ +from django.urls import reverse +from django.utils import timezone + +from dateutil.relativedelta import relativedelta + +from modoboa.admin import factories as admin_factories +from modoboa.core.models import User +from modoboa.lib.tests import ModoAPITestCase +from modoboa.postfix_autoreply import factories, models + + +class ARMessageViewSetTestCase(ModoAPITestCase): + """API test case.""" + + @classmethod + def setUpTestData(cls): + super(ARMessageViewSetTestCase, cls).setUpTestData() + admin_factories.populate_database() + cls.account = User.objects.get(username="user@test.com") + cls.account2 = User.objects.get(username="user@test2.com") + cls.arm = factories.ARmessageFactory(mbox=cls.account.mailbox) + cls.arm2 = factories.ARmessageFactory(mbox=cls.account2.mailbox) + + def test_retrieve_armessage(self): + url = reverse("api:armessage-list") + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 2) + # Test filters + response = self.client.get( + url + "?mbox={}".format(self.account.mailbox.full_address) + ) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 1) + response = self.client.get( + url + "?mbox={}".format(self.account.mailbox.address) + ) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 2) + response = self.client.get(url + "?mbox__user={}".format(self.account.pk)) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 1) + # Test retrieve + url = reverse("api:armessage-detail", args=[response.data[0]["id"]]) + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + def test_retrieve_armessage_domadmin(self): + admin = User.objects.get(username="admin@test.com") + self.client.logout() + self.client.force_login(admin) + url = reverse("api:armessage-list") + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 1) + + url = reverse("api:armessage-detail", args=[self.arm2.pk]) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_retrieve_armessage_simpleuser(self): + self.client.logout() + self.client.force_login(self.account) + url = reverse("api:armessage-list") + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), 1) + + url = reverse("api:armessage-detail", args=[self.arm2.pk]) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + + def test_create_armessage(self): + url = reverse("api:armessage-list") + account = User.objects.get(username="user@test2.com") + data = { + "mbox": account.mailbox.pk, + "subject": "Je suis absent", + "content": "Je reviens bientôt", + "enabled": True, + } + response = self.client.post(url, data) + self.assertEqual(response.status_code, 201) + + def test_update_armessage(self): + url = reverse("api:armessage-detail", args=[self.arm.pk]) + data = {"enabled": False} + response = self.client.patch(url, data) + self.assertEqual(response.status_code, 200) + self.arm.refresh_from_db() + self.assertFalse(self.arm.enabled) + + data = { + "mbox": self.account.mailbox.pk, + "subject": "Je suis absent", + "content": "Je reviens bientôt", + "enabled": True, + "untildate": (timezone.now() + relativedelta(days=1)).isoformat(), + } + response = self.client.patch(url, data) + self.assertEqual(response.status_code, 200) + self.arm.refresh_from_db() + self.assertIsNot(self.arm.untildate, None) + + def test_date_constraints(self): + url = reverse("api:armessage-detail", args=[self.arm.pk]) + data = { + "mbox": self.account.mailbox.pk, + "subject": "Je suis absent", + "content": "Je reviens bientôt", + "enabled": True, + "untildate": timezone.now().isoformat(), + } + response = self.client.patch(url, data) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data["untildate"][0], "This date is over") + + data.update( + { + "fromdate": (timezone.now() + relativedelta(days=2)).isoformat(), + "untildate": (timezone.now() + relativedelta(days=1)).isoformat(), + } + ) + response = self.client.patch(url, data) + self.assertEqual(response.status_code, 400) + self.assertEqual( + response.data["untildate"][0], "Must be greater than start date" + ) + + +class AccountARMessageViewSetTestCase(ModoAPITestCase): + """API test case.""" + + @classmethod + def setUpTestData(cls): + super().setUpTestData() + admin_factories.populate_database() + cls.account = User.objects.get(username="user@test.com") + + def test_get_armessage(self): + url = reverse("api:account_armessage-armessage") + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + self.client.logout() + self.client.force_login(self.account) + self.assertFalse( + models.ARmessage.objects.filter(mbox=self.account.mailbox).exists() + ) + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertTrue( + models.ARmessage.objects.filter(mbox=self.account.mailbox).exists() + ) + + def test_set_armessage(self): + self.client.logout() + self.client.force_login(self.account) + url = reverse("api:account_armessage-armessage") + data = { + "enabled": True, + "subject": "Je suis absent", + "content": "Je reviendrai", + "fromdate": "2024-03-16T10:00", + "untildate": "2024-03-18T10:00", + } + response = self.client.put(url, data, format="json") + self.assertEqual(response.status_code, 200) + armessage = models.ARmessage.objects.get(mbox=self.account.mailbox) + self.assertTrue(armessage.enabled) diff --git a/modoboa/postfix_autoreply/api/v2/urls.py b/modoboa/postfix_autoreply/api/v2/urls.py new file mode 100644 index 000000000..9c99d6433 --- /dev/null +++ b/modoboa/postfix_autoreply/api/v2/urls.py @@ -0,0 +1,12 @@ +"""Autoreply API urls.""" + +from rest_framework import routers + +from . import viewsets + +router = routers.SimpleRouter() +router.register(r"armessages", viewsets.ARMessageViewSet, basename="armessage") +router.register( + r"account", viewsets.AccountARMessageViewSet, basename="account_armessage" +) +urlpatterns = router.urls diff --git a/modoboa/postfix_autoreply/api/v2/viewsets.py b/modoboa/postfix_autoreply/api/v2/viewsets.py new file mode 100644 index 000000000..316b35090 --- /dev/null +++ b/modoboa/postfix_autoreply/api/v2/viewsets.py @@ -0,0 +1,89 @@ +"""Autoreply viewsets.""" + +from django_filters import rest_framework as filters +from drf_spectacular.utils import extend_schema +from rest_framework import mixins, permissions, response, viewsets +from rest_framework.decorators import action + +from modoboa.admin import models as admin_models +from modoboa.lib.email_utils import split_mailbox + +from modoboa.postfix_autoreply import models +from . import serializers + + +class ARMessageFilterSet(filters.FilterSet): + """Filter set for ARmessage.""" + + mbox = filters.CharFilter(method="filter_mbox") + + class Meta: + fields = ("mbox", "mbox__user") + model = models.ARmessage + + def filter_mbox(self, queryset, name, value): + address, domain = split_mailbox(value) + if address: + queryset = queryset.filter(mbox__address__icontains=address) + if domain: + queryset = queryset.filter(mbox__domain__name__icontains=domain) + return queryset + + +class ARMessageViewSet( + mixins.CreateModelMixin, + mixins.ListModelMixin, + mixins.RetrieveModelMixin, + mixins.UpdateModelMixin, + viewsets.GenericViewSet, +): + """A viewset for ARmessage.""" + + filter_backends = (filters.DjangoFilterBackend,) + filterset_class = ARMessageFilterSet + permission_classes = (permissions.IsAuthenticated,) + queryset = models.ARmessage.objects.select_related("mbox__domain", "mbox__user") + serializer_class = serializers.ARMessageSerializer + + def get_queryset(self): + """Filter queryset based on current user.""" + qset = super().get_queryset() + role = self.request.user.role + if role == "SimpleUsers": + qset = qset.filter(mbox=self.request.user.mailbox) + elif role in ["DomainAdmins", "Resellers"]: + mailboxes = admin_models.Mailbox.objects.get_for_admin(self.request.user) + qset = qset.filter(mbox__in=mailboxes) + return qset + + +class AccountARMessageViewSet(viewsets.ViewSet): + """A viewset dedicated to connected account.""" + + permission_classes = (permissions.IsAuthenticated,) + serializer_class = serializers.AccountARMessageSerializer + + @extend_schema( + description="Get current auto-reply message", + methods=["GET"], + ) + @extend_schema( + description="Set auto-reply message", + methods=["PUT"], + ) + @action(methods=["get", "put"], detail=False) + def armessage(self, request): + if not hasattr(request.user, "mailbox"): + return response.Response(status=404) + armessage, created = models.ARmessage.objects.get_or_create( + mbox=self.request.user.mailbox + ) + if request.method == "GET": + serializer = serializers.AccountARMessageSerializer(armessage) + return response.Response(serializer.data) + serializer = serializers.AccountARMessageSerializer( + armessage, data=request.data + ) + serializer.is_valid(raise_exception=True) + serializer.save() + return response.Response(serializer.validated_data) diff --git a/modoboa/postfix_autoreply/apps.py b/modoboa/postfix_autoreply/apps.py new file mode 100644 index 000000000..fa382fc8b --- /dev/null +++ b/modoboa/postfix_autoreply/apps.py @@ -0,0 +1,24 @@ +"""AppConfig for modoboa_postfix_autoreply.""" + +from django.apps import AppConfig +from django.utils.translation import gettext_lazy + + +def load_settings(): + from modoboa.parameters import tools as param_tools + from modoboa.postfix_autoreply import forms + + param_tools.registry.add( + "global", forms.ParametersForm, gettext_lazy("Automatic replies") + ) + + +class PostfixAutoreplyConfig(AppConfig): + """App configuration.""" + + name = "modoboa.postfix_autoreply" + verbose_name = "Auto-reply functionality using Postfix" + + def ready(self): + load_settings() + from . import handlers # NOQA:F401 diff --git a/modoboa/postfix_autoreply/factories.py b/modoboa/postfix_autoreply/factories.py new file mode 100644 index 000000000..70c2f88f6 --- /dev/null +++ b/modoboa/postfix_autoreply/factories.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- + +"""Postfix auto reply factories.""" + +from __future__ import unicode_literals + +import factory + +from modoboa.admin import factories as admin_factories +from . import models + + +class ARmessageFactory(factory.django.DjangoModelFactory): + """Factory to create ARmessage.""" + + class Meta: + model = models.ARmessage + django_get_or_create = ("mbox",) + + mbox = factory.SubFactory(admin_factories.MailboxFactory) + subject = "I'm absent" + content = "I'll write you back ASAP" + enabled = True diff --git a/modoboa/postfix_autoreply/forms.py b/modoboa/postfix_autoreply/forms.py new file mode 100644 index 000000000..f36641a45 --- /dev/null +++ b/modoboa/postfix_autoreply/forms.py @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- + +"""Custom forms.""" + +from collections import OrderedDict + +from django import forms +from django.utils import timezone +from django.utils.translation import gettext as _, gettext_lazy + +from modoboa.lib import form_utils +from modoboa.parameters import forms as param_forms, tools as param_tools +from .models import ARmessage + + +class ARmessageForm(forms.ModelForm): + """Form to define an auto-reply message.""" + + fromdate = forms.DateTimeField( + label=gettext_lazy("From"), + required=False, + help_text=gettext_lazy( + "Activate your auto reply from this date. " "Format : YYYY-MM-DD HH:mm:ss" + ), + widget=forms.TextInput(attrs={"class": "datefield form-control"}), + ) + untildate = forms.DateTimeField( + label=gettext_lazy("Until"), + required=False, + help_text=gettext_lazy( + "Activate your auto reply until this date. " "Format : YYYY-MM-DD HH:mm:ss" + ), + widget=forms.TextInput(attrs={"class": "datefield form-control"}), + ) + subject = forms.CharField(widget=forms.TextInput(attrs={"class": "form-control"})) + content = forms.CharField( + widget=forms.Textarea(attrs={"class": "form-control"}), + help_text=gettext_lazy( + "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" + ), + ) + + class Meta: + model = ARmessage + fields = ("subject", "content", "enabled", "fromdate", "untildate") + + def __init__(self, *args, **kwargs): + self.mailbox = args[0] + super().__init__(*args[1:], **kwargs) + self.fields = OrderedDict( + (key, self.fields[key]) + for key in ["subject", "content", "fromdate", "untildate", "enabled"] + ) + if not self.instance.pk: + self.fields["subject"].initial = param_tools.get_global_parameter( + "default_subject" + ) + self.fields["content"].initial = param_tools.get_global_parameter( + "default_content" + ) % {"name": self.mailbox.user.fullname} + instance = kwargs.get("instance") + if instance is not None: + if instance.enabled: + self.fields["fromdate"].initial = instance.fromdate.replace( + second=0, microsecond=0 + ) + self.fields["untildate"].initial = kwargs["instance"].untildate + else: + self.fields["fromdate"].initial = None + + def clean(self): + """Custom fields validaton. + + We want to be sure that fromdate < untildate and that they are + both in the future ONLY IF the autoreply is beeing activated. + + """ + cleaned_data = super().clean() + if not cleaned_data.get("fromdate"): + cleaned_data["fromdate"] = timezone.now() + if not cleaned_data["enabled"]: + return cleaned_data + untildate = cleaned_data.get("untildate") + if untildate is not None: + if untildate < timezone.now(): + self.add_error("untildate", _("This date is over")) + elif untildate < cleaned_data["fromdate"]: + self.add_error("untildate", _("Must be greater than start date")) + return cleaned_data + + def save(self, commit=True): + """Custom save method.""" + instance = super().save(commit=False) + instance.mbox = self.mailbox + if commit: + instance.save() + return instance + + +class ParametersForm(param_forms.AdminParametersForm): + """General parameters.""" + + app = "postfix_autoreply" + + general_sep = form_utils.SeparatorField(label=gettext_lazy("General")) + + autoreplies_timeout = forms.IntegerField( + label=gettext_lazy("Automatic reply timeout"), + initial=86400, + help_text=gettext_lazy( + "Timeout in seconds between two auto-replies to the same recipient" + ), + widget=forms.TextInput(attrs={"class": "form-control"}), + ) + + default_subject = forms.CharField( + label=gettext_lazy("Default subject"), + initial=gettext_lazy("I'm off"), + help_text=gettext_lazy( + "Default subject used when an auto-reply message is created " + "automatically" + ), + widget=forms.TextInput(attrs={"class": "form-control"}), + ) + + default_content = forms.CharField( + label=gettext_lazy("Default content"), + initial=gettext_lazy( + """I'm currently off. I'll answer as soon as I come back. + +Best regards, +%(name)s +""" + ), + help_text=gettext_lazy( + "Default content used when an auto-reply message is created " + "automatically. The '%(name)s' macro will be replaced by the " + "user's full name." + ), + widget=forms.widgets.Textarea(attrs={"class": "form-control"}), + ) + + def clean_default_content(self): + """Check if the provided value is valid. + + Must be a valid format string which will be used with the % + operator. + """ + tpl = self.cleaned_data["default_content"] + try: + tpl % {"name": "Antoine Nguyen"} + except (KeyError, ValueError): + raise forms.ValidationError(gettext_lazy("Invalid syntax")) + return tpl + + +def load_settings(): + """Load app settings.""" + from modoboa.parameters import tools as param_tools + + param_tools.registry.add("global", ParametersForm, _("Automatic replies")) diff --git a/modoboa/postfix_autoreply/handlers.py b/modoboa/postfix_autoreply/handlers.py new file mode 100644 index 000000000..694a78448 --- /dev/null +++ b/modoboa/postfix_autoreply/handlers.py @@ -0,0 +1,147 @@ +"""Django signal handlers for modoboa_postfix_autoreply.""" + +from django.urls import re_path +from django.db.models import signals +from django.dispatch import receiver +from django.utils.translation import gettext as _ + +from modoboa.admin import models as admin_models, signals as admin_signals +from modoboa.core import signals as core_signals +from modoboa.transport import models as tr_models + +from . import forms, models + + +@receiver(signals.post_save, sender=admin_models.Domain) +def manage_transport_entry(sender, instance, **kwargs): + """Create or update a transport entry for this domain.""" + if kwargs.get("created"): + tr_models.Transport.objects.get_or_create( + pattern="autoreply.{}".format(instance), service="autoreply" + ) + return + oldname = getattr(instance, "oldname", "None") + if oldname is None or oldname == instance.name: + return + tr_models.Transport.objects.filter(pattern="autoreply.{}".format(oldname)).update( + pattern="autoreply.{}".format(instance.name) + ) + qset = admin_models.AliasRecipient.objects.select_related( + "alias", "r_mailbox" + ).filter( + alias__domain=instance, alias__internal=True, address__contains="@autoreply" + ) + for alr in qset: + alr.address = alr.address.replace(oldname, instance.name) + alr.save() + + +@receiver(signals.post_delete, sender=admin_models.Domain) +def delete_transport_entry(sender, instance, **kwargs): + """Delete a transport entry.""" + tr_models.Transport.objects.filter(pattern="autoreply.{}".format(instance)).delete() + + +@receiver(signals.post_save, sender=admin_models.Mailbox) +def rename_autoreply_alias(sender, instance, **kwargs): + """Rename AR alias if needed.""" + old_address = getattr(instance, "old_full_address", None) + if old_address is None or old_address == instance.full_address: + return + admin_models.AliasRecipient.objects.filter( + address__contains="{}@autoreply".format(old_address) + ).update(address="{}@autoreply.{}".format(instance.full_address, instance.domain)) + + +@receiver(signals.post_delete, sender=admin_models.Mailbox) +def delete_autoreply_alias(sender, instance, **kwargs): + """Delete alias.""" + admin_models.AliasRecipient.objects.filter( + address="{}@autoreply.{}".format(instance.full_address, instance.domain) + ).delete() + + +@receiver(signals.post_save, sender=models.ARmessage) +def manage_autoreply_alias(sender, instance, **kwargs): + """Create or delete the alias.""" + ar_alias_address = "{}@autoreply.{}".format( + instance.mbox.full_address, instance.mbox.domain + ) + admin_models.Alias.objects.get( + address=instance.mbox.full_address, domain=instance.mbox.domain, internal=True + ) + alias, created = admin_models.Alias.objects.get_or_create( + address=instance.mbox.full_address, domain=instance.mbox.domain, internal=True + ) + if instance.enabled: + admin_models.AliasRecipient.objects.get_or_create( + alias=alias, address=ar_alias_address + ) + else: + admin_models.AliasRecipient.objects.filter(address=ar_alias_address).delete() + + +@receiver(core_signals.extra_uprefs_routes) +def extra_routes(sender, **kwargs): + """Add extra routes.""" + from . import views + + return [re_path(r"^user/autoreply/$", views.autoreply, name="autoreply")] + + +@receiver(core_signals.extra_static_content) +def extra_js(sender, caller, st_type, user, **kwargs): + """Add static content.""" + if caller != "user_index" or st_type != "js": + return "" + return """function autoreply_cb() { + $('.datefield').datetimepicker({ + format: 'YYYY-MM-DD HH:mm:ss', + locale: '%(lang)s' + }); +} +""" % { + "lang": user.language + } + + +@receiver(core_signals.extra_user_menu_entries) +def menu(sender, location, user, **kwargs): + """Inject new menu entries.""" + if location != "uprefs_menu" or not hasattr(user, "mailbox"): + return [] + return [ + { + "name": "autoreply", + "class": "ajaxnav", + "url": "autoreply/", + "label": _("Auto-reply message"), + } + ] + + +@receiver(admin_signals.extra_account_forms) +def extra_account_form(sender, user, account, **kwargs): + """Add autoreply form to the account edition form.""" + result = [] + if user.role in ("SuperAdmins", "DomainAdmins"): + if hasattr(account, "mailbox"): + extraform = { + "id": "auto_reply_message", + "title": _("Auto reply"), + "cls": forms.ARmessageForm, + "new_args": [account.mailbox], + } + result.append(extraform) + return result + + +@receiver(admin_signals.get_account_form_instances) +def fill_account_tab(sender, user, account, **kwargs): + """Return form instance.""" + condition = user.role not in ("SuperAdmins", "DomainAdmins") or not hasattr( + account, "mailbox" + ) + if condition: + return {} + return {"auto_reply_message": account.mailbox.armessage_set.first()} diff --git a/modoboa/postfix_autoreply/known_problems.py b/modoboa/postfix_autoreply/known_problems.py new file mode 100644 index 000000000..bcb354c55 --- /dev/null +++ b/modoboa/postfix_autoreply/known_problems.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- + +"""Know problems and associated fixes.""" + +from __future__ import unicode_literals + +from modoboa.admin import models as admin_models +from modoboa.admin.management.commands.subcommands import _repair +from . import models + + +@_repair.known_problem +def ensure_autoreplies_recipents_are_valids(**options): + """Sometime autoreply alias exists when ARmessage is not enabled.""" + deleted = 0 + qs = admin_models.AliasRecipient.objects.select_related("alias").filter( + address__contains="@autoreply." + ) + for alr in qs: + address, domain = alr.alias.address.split("@") + arqs = models.ARmessage.objects.filter( + mbox__address=address, mbox__domain__name=domain + ) + if not arqs.exists(): + _repair.log("Delete {0} (AR does not exist)".format(alr), **options) + alr.delete() + deleted += 1 + elif arqs.filter(enabled=False).exists(): + _repair.log("Delete {0} (AR is disabled)".format(alr), **options) + alr.delete() + deleted += 1 + if deleted: + _repair.log("{0} alias recipient(s) deleted".format(deleted), **options) diff --git a/modoboa/postfix_autoreply/management/__init__.py b/modoboa/postfix_autoreply/management/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/postfix_autoreply/management/commands/__init__.py b/modoboa/postfix_autoreply/management/commands/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/postfix_autoreply/management/commands/autoreply.py b/modoboa/postfix_autoreply/management/commands/autoreply.py new file mode 100644 index 000000000..7dbcb02c5 --- /dev/null +++ b/modoboa/postfix_autoreply/management/commands/autoreply.py @@ -0,0 +1,206 @@ +import datetime +import email +import email.header +import fileinput +from io import StringIO +import logging +import smtplib +import socket +import sys +from logging.handlers import SysLogHandler + +from django.core.mail import EmailMessage +from django.core.management.base import BaseCommand +from django.utils import timezone, translation +from django.utils.encoding import smart_str +from django.utils.formats import localize + +from modoboa.admin.models import Mailbox +from modoboa.lib.email_utils import split_mailbox +from modoboa.parameters import tools as param_tools +from ...models import ARhistoric, ARmessage + +logger = logging.getLogger() + + +def safe_subject(msg): + """Clean message subject and return it.""" + decoded = email.header.decode_header(msg.get("Subject")) + subject = "" + for sub, charset in decoded: + if isinstance(sub, str): + subject += sub + continue + # charset can be None + charset = charset if charset else "utf-8" + try: + subject += sub.decode(charset) + except UnicodeDecodeError: + pass + return " ".join(subject.split()) + + +def send_autoreply(sender, mailbox, armessage, original_msg): + """Send an autoreply message.""" + if armessage.fromdate > timezone.now(): + # Too soon, come back later + return + + condition = armessage.untildate is not None and armessage.untildate < timezone.now() + if condition: + # ARmessage has expired, disable it + armessage.enabled = False + armessage.save(update_fields=["enabled"]) + return + + try: + lastar = ARhistoric.objects.get(armessage=armessage.id, sender=sender) + timeout = param_tools.get_global_parameter( + "autoreplies_timeout", app="postfix_autoreply" + ) + delta = datetime.timedelta(seconds=int(timeout)) + now = timezone.make_aware( + datetime.datetime.now(), timezone.get_default_timezone() + ) + if lastar.last_sent + delta > now: + logger.debug( + "no autoreply message sent because delta (%s) < timetout (%s)", + delta, + timeout, + ) + return + + except ARhistoric.DoesNotExist: + lastar = ARhistoric() + lastar.armessage = armessage + lastar.sender = sender + + headers = {"Auto-Submitted": "auto-replied", "Precedence": "bulk"} + message_id = original_msg.get("Message-ID", "").strip("\n") + if message_id: + headers.update({"In-Reply-To": message_id, "References": message_id}) + + subject = safe_subject(original_msg) + with translation.override(mailbox.user.language): + context = { + "name": mailbox.user.fullname, + "fromdate": localize(armessage.fromdate), + "untildate": "", + } + if armessage.untildate: + context.update({"untildate": localize(armessage.untildate)}) + content = armessage.content % context + msg = EmailMessage( + "Auto: {} Re: {}".format(armessage.subject, subject), + smart_str(content), + mailbox.user.encoded_address, + [sender], + headers=headers, + ) + try: + msg.send() + except smtplib.SMTPException as exp: + logger.error("Failed to send autoreply message: %s", exp) + sys.exit(1) + + logger.debug("autoreply message sent to %s", mailbox.user.encoded_address) + + lastar.last_sent = datetime.datetime.now() + lastar.save() + + +class Command(BaseCommand): + """Command definition.""" + + help = "Send autoreply emails" # NOQA:A003 + + def add_arguments(self, parser): + """Add extra arguments to command line.""" + parser.add_argument("--debug", action="store_true", dest="debug", default=False) + parser.add_argument( + "--syslog-socket-path", default="/dev/log", help="Path to syslog socket" + ) + parser.add_argument("sender") + parser.add_argument("recipient", nargs="+") + + def handle(self, *args, **options): + try: + handler = SysLogHandler(address=options["syslog_socket_path"]) + except socket.error as ex: + if ex.errno == 2: + # try the default, localhost:514 + handler = SysLogHandler() + else: + raise + + logger.addHandler(handler) + logger.setLevel(logging.ERROR) + if options["debug"]: + logger.setLevel(logging.DEBUG) + + logger.debug( + "autoreply sender=%s recipient=%s", + options["sender"], + ",".join(options["recipient"]), + ) + + sender = smart_str(options["sender"]) + + sender_localpart = split_mailbox(sender.lower())[0] + if ( + (sender_localpart in ("mailer-daemon", "listserv", "majordomo")) + or (sender_localpart.startswith("owner-")) + or (sender_localpart.endswith("-request")) + ): + logger.debug("Skip auto reply, this mail comes from a mailing list") + return + + content = StringIO() + for line in fileinput.input([]): + content.write(line) + content.seek(0) + + original_msg = email.message_from_file(content) + + # Mailing list filter based on + # https://tools.ietf.org/html/rfc5230#page-7 + ml_known_headers = [ + "List-Id", + "List-Help", + "List-Subscribe", + "List-Unsubscribe", + "List-Post", + "List-Owner", + "List-Archive", + ] + from_ml = False + for header in ml_known_headers: + if header in original_msg: + from_ml = True + break + condition = ( + original_msg.get("Precedence") == "bulk" + or original_msg.get("X-Mailer") == "PHPMailer" + or from_ml + ) + if condition: + logger.debug("Skip auto reply, this mail comes from a mailing list") + return + + recipients = [smart_str(rcpt) for rcpt in options["recipient"]] + for fulladdress in recipients: + address, domain = split_mailbox(fulladdress) + try: + mbox = Mailbox.objects.get(address=address, domain__name=domain) + except Mailbox.DoesNotExist: + msg = "Unknown recipient %s" % (fulladdress) + logger.debug("autoreply %s", msg) + continue + try: + armessage = ARmessage.objects.get(mbox=mbox.id, enabled=True) + logger.debug("autoreply message found") + except ARmessage.DoesNotExist: + logger.debug("autoreply message not found") + continue + + send_autoreply(sender, mbox, armessage, original_msg) diff --git a/modoboa/postfix_autoreply/migrations/0001_initial.py b/modoboa/postfix_autoreply/migrations/0001_initial.py new file mode 100644 index 000000000..b2ac5ded3 --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0001_initial.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ("admin", "__first__"), + ] + + operations = [ + migrations.CreateModel( + name="Alias", + fields=[ + ( + "id", + models.AutoField( + verbose_name="ID", + serialize=False, + auto_created=True, + primary_key=True, + ), + ), + ("full_address", models.CharField(max_length=255)), + ("autoreply_address", models.CharField(max_length=255)), + ], + options={ + "db_table": "postfix_autoreply_alias", + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name="ARhistoric", + fields=[ + ( + "id", + models.AutoField( + verbose_name="ID", + serialize=False, + auto_created=True, + primary_key=True, + ), + ), + ("last_sent", models.DateTimeField(auto_now=True)), + ("sender", models.CharField(max_length=254)), + ], + options={ + "db_table": "postfix_autoreply_arhistoric", + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name="ARmessage", + fields=[ + ( + "id", + models.AutoField( + verbose_name="ID", + serialize=False, + auto_created=True, + primary_key=True, + ), + ), + ( + "subject", + models.CharField( + help_text="The subject that will appear in sent emails", + max_length=255, + verbose_name="subject", + ), + ), + ( + "content", + models.TextField( + help_text="The content that will appear in sent emails", + verbose_name="content", + ), + ), + ( + "enabled", + models.BooleanField( + default=False, + help_text="Activate/Deactivate your auto reply", + verbose_name="enabled", + ), + ), + ("fromdate", models.DateTimeField(default=django.utils.timezone.now)), + ("untildate", models.DateTimeField(null=True, blank=True)), + ( + "mbox", + models.ForeignKey(to="admin.Mailbox", on_delete=models.CASCADE), + ), + ], + options={ + "db_table": "postfix_autoreply_armessage", + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name="Transport", + fields=[ + ( + "id", + models.AutoField( + verbose_name="ID", + serialize=False, + auto_created=True, + primary_key=True, + ), + ), + ("domain", models.CharField(max_length=300)), + ("method", models.CharField(max_length=255)), + ], + options={ + "db_table": "postfix_autoreply_transport", + }, + bases=(models.Model,), + ), + migrations.AddField( + model_name="arhistoric", + name="armessage", + field=models.ForeignKey( + to="postfix_autoreply.ARmessage", on_delete=models.CASCADE + ), + preserve_default=True, + ), + migrations.AlterUniqueTogether( + name="arhistoric", + unique_together=set([("armessage", "sender")]), + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/0002_auto_20150728_1236.py b/modoboa/postfix_autoreply/migrations/0002_auto_20150728_1236.py new file mode 100644 index 000000000..0c9a53e88 --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0002_auto_20150728_1236.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0001_initial"), + ] + + operations = [ + migrations.AlterField( + model_name="transport", + name="domain", + field=models.CharField(max_length=300, db_index=True), + preserve_default=True, + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/0003_move_aliases.py b/modoboa/postfix_autoreply/migrations/0003_move_aliases.py new file mode 100644 index 000000000..a45a0d27a --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0003_move_aliases.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +def move_aliases(apps, schema_editor): + """Move exising aliases to the main table.""" + OldAlias = apps.get_model("postfix_autoreply", "Alias") + Alias = apps.get_model("admin", "Alias") + AliasRecipient = apps.get_model("admin", "AliasRecipient") + try: + ObjectDates = apps.get_model("admin", "ObjectDates") + except LookupError: + ObjectDates = None + to_create = [] + for old_alias in OldAlias.objects.all(): + values = {"address": old_alias.full_address, "internal": True} + try: + alias = Alias.objects.get(**values) + except Alias.DoesNotExist: + if ObjectDates: + values["dates"] = ObjectDates.objects.create() + alias = Alias.objects.create(**values) + to_create.append( + AliasRecipient(address=old_alias.autoreply_address, alias=alias) + ) + AliasRecipient.objects.bulk_create(to_create) + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0002_auto_20150728_1236"), + ] + + operations = [migrations.RunPython(move_aliases)] diff --git a/modoboa/postfix_autoreply/migrations/0004_delete_alias.py b/modoboa/postfix_autoreply/migrations/0004_delete_alias.py new file mode 100644 index 000000000..4e23ae3fb --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0004_delete_alias.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0003_move_aliases"), + ] + + operations = [ + migrations.DeleteModel( + name="Alias", + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/0005_auto_20151202_1623.py b/modoboa/postfix_autoreply/migrations/0005_auto_20151202_1623.py new file mode 100644 index 000000000..eb2c5b0cb --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0005_auto_20151202_1623.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +def remove_useless_aliases(apps, schema_editor): + """Remove aliases linked to disabled messages.""" + ARmessage = apps.get_model("postfix_autoreply", "ARmessage") + AliasRecipient = apps.get_model("admin", "AliasRecipient") + qset = ARmessage.objects.select_related("mbox", "mbox__domain").filter( + enabled=False + ) + for armessage in qset: + alr_address = "{0}@{1}@autoreply.{1}".format( + armessage.mbox.address, armessage.mbox.domain + ) + try: + alr = AliasRecipient.objects.get(address=alr_address) + except AliasRecipient.DoesNotExist: + continue + alias = alr.alias + alr.delete() + if not alias.recipients_count: + alias.delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0004_delete_alias"), + ] + + operations = [ + migrations.RunPython(remove_useless_aliases), + ] diff --git a/modoboa/postfix_autoreply/migrations/0006_auto_20160329_1501.py b/modoboa/postfix_autoreply/migrations/0006_auto_20160329_1501.py new file mode 100644 index 000000000..4809cd439 --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0006_auto_20160329_1501.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0005_auto_20151202_1623"), + ] + + operations = [ + migrations.AlterField( + model_name="transport", + name="domain", + field=models.CharField(max_length=253, db_index=True), + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/0007_auto_20180928_1423.py b/modoboa/postfix_autoreply/migrations/0007_auto_20180928_1423.py new file mode 100644 index 000000000..2b7d039d1 --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0007_auto_20180928_1423.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.15 on 2018-09-28 12:23 +from __future__ import unicode_literals + +from django.db import migrations + + +def move_transport_entries(apps, schema_editor): + """Move old transport entries to new model.""" + pf_Transport = apps.get_model("postfix_autoreply", "Transport") + Transport = apps.get_model("transport", "Transport") + to_create = [] + for old_transport in pf_Transport.objects.all(): + to_create.append(Transport(pattern=old_transport.domain, service="autoreply")) + Transport.objects.bulk_create(to_create) + + +def backward(apps, schema_editor): + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ("transport", "0002_auto_20180928_1520"), + ("postfix_autoreply", "0006_auto_20160329_1501"), + ] + + operations = [ + migrations.RunPython(move_transport_entries, backward), + ] diff --git a/modoboa/postfix_autoreply/migrations/0008_delete_transport.py b/modoboa/postfix_autoreply/migrations/0008_delete_transport.py new file mode 100644 index 000000000..4d0479c4f --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0008_delete_transport.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.11 on 2018-09-28 12:27 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0007_auto_20180928_1423"), + ] + + operations = [ + migrations.DeleteModel( + name="Transport", + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/0009_auto_20220926_0913.py b/modoboa/postfix_autoreply/migrations/0009_auto_20220926_0913.py new file mode 100644 index 000000000..84dc3eef0 --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0009_auto_20220926_0913.py @@ -0,0 +1,27 @@ +# Generated by Django 3.2.12 on 2022-09-26 07:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0008_delete_transport"), + ] + + operations = [ + migrations.AlterField( + model_name="arhistoric", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="armessage", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/0010_auto_20230421_1825.py b/modoboa/postfix_autoreply/migrations/0010_auto_20230421_1825.py new file mode 100644 index 000000000..d8847d8b7 --- /dev/null +++ b/modoboa/postfix_autoreply/migrations/0010_auto_20230421_1825.py @@ -0,0 +1,27 @@ +# Generated by Django 3.2.17 on 2023-04-21 16:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("postfix_autoreply", "0009_auto_20220926_0913"), + ] + + operations = [ + migrations.AlterField( + model_name="arhistoric", + name="id", + field=models.AutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="armessage", + name="id", + field=models.AutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + ] diff --git a/modoboa/postfix_autoreply/migrations/__init__.py b/modoboa/postfix_autoreply/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/postfix_autoreply/models.py b/modoboa/postfix_autoreply/models.py new file mode 100644 index 000000000..02602124e --- /dev/null +++ b/modoboa/postfix_autoreply/models.py @@ -0,0 +1,44 @@ +"""Postfix autoreply models.""" + +from django.db import models +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ + +from modoboa.admin.models import Mailbox + + +class ARmessage(models.Model): + """Auto reply messages.""" + + mbox = models.ForeignKey(Mailbox, on_delete=models.CASCADE) + subject = models.CharField( + _("subject"), + max_length=255, + help_text=_("The subject that will appear in sent emails"), + ) + content = models.TextField( + _("content"), help_text=_("The content that will appear in sent emails") + ) + enabled = models.BooleanField( + _("enabled"), help_text=_("Activate/Deactivate your auto reply"), default=False + ) + fromdate = models.DateTimeField(default=timezone.now) + untildate = models.DateTimeField(null=True, blank=True) + + class Meta: + db_table = "postfix_autoreply_armessage" + + def __str__(self): + return "AR<{}>: {}".format(self.mbox, self.enabled) + + +class ARhistoric(models.Model): + """Auto reply historic.""" + + armessage = models.ForeignKey(ARmessage, on_delete=models.CASCADE) + last_sent = models.DateTimeField(auto_now=True) + sender = models.CharField(max_length=254) + + class Meta: + unique_together = ("armessage", "sender") + db_table = "postfix_autoreply_arhistoric" diff --git a/modoboa/postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html b/modoboa/postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html new file mode 100644 index 000000000..0fc1027d9 --- /dev/null +++ b/modoboa/postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html @@ -0,0 +1,12 @@ +{% load i18n form_tags %} + +

        {% trans "Auto-reply message" %} {% trans "Define a message to automatically send when you are off" %}

        +
        +
        {% csrf_token %} + {% render_form form %} +
        + +
        +
        diff --git a/modoboa/postfix_autoreply/tests.py b/modoboa/postfix_autoreply/tests.py new file mode 100644 index 000000000..4b252a325 --- /dev/null +++ b/modoboa/postfix_autoreply/tests.py @@ -0,0 +1,453 @@ +"""modoboa-postfix-autoreply unit tests.""" + +import datetime +from io import StringIO +import sys + +from dateutil.relativedelta import relativedelta + +from django.core import mail, management +from django.urls import reverse +from django.utils import timezone +from django.utils.formats import date_format + +from modoboa.admin import factories as admin_factories, models as admin_models +from modoboa.core.models import User +from modoboa.lib.tests import ModoTestCase, ModoAPITestCase +from modoboa.transport import models as tr_models + +from . import factories, models + +SIMPLE_EMAIL_CONTENT = """ +From: Homer Simpson +Date: Wed, 15 Mar 2017 18:35:19 +0100 +Message-ID: +Subject: Test +To: user@test.com +Content-Type: multipart/alternative; boundary=001a114420be4c231a054ac85e75 + +--001a114420be4c231a054ac85e75 +Content-Type: text/plain; charset=UTF-8 + +pouet + +--001a114420be4c231a054ac85e75 +Content-Type: text/html; charset=UTF-8 + +
        pouet
        + +--001a114420be4c231a054ac85e75-- +""" + +SIMPLE_EMAIL_CONTENT_WITH_BAD_HEADER = """ +From: Homer Simpson +Date: Wed, 15 Mar 2017 18:35:19 +0100 +Message-ID: + +Subject: Test +To: user@test.com +Content-Type: multipart/alternative; boundary=001a114420be4c231a054ac85e75 + +--001a114420be4c231a054ac85e75 +Content-Type: text/plain; charset=UTF-8 + +pouet + +--001a114420be4c231a054ac85e75 +Content-Type: text/html; charset=UTF-8 + +
        pouet
        + +--001a114420be4c231a054ac85e75-- +""" + +ENCODED_EMAIL_SUBJECT = r""" +From: Homer Simpson +Date: Wed, 15 Mar 2017 18:35:19 +0100 +Message-ID: +Subject: =?utf-8?q?A_m=C3=A9_non!!?=\n =?utf-8?q?_=C3=A7a_va_pas!!?= +To: user@test.com +Content-Type: multipart/alternative; boundary=001a114420be4c231a054ac85e75 + +--001a114420be4c231a054ac85e75 +Content-Type: text/plain; charset=UTF-8 + +pouet + +--001a114420be4c231a054ac85e75 +Content-Type: text/html; charset=UTF-8 + +
        pouet
        + +--001a114420be4c231a054ac85e75-- +""" + +EMAIL_FROM_ML_CONTENT = """ +From: Homer Simpson +Date: Wed, 15 Mar 2017 18:35:19 +0100 +Message-ID: +List-Id: "Test list" +List-Archive: +Subject: Test +To: user@test.com +Content-Type: multipart/alternative; boundary=001a114420be4c231a054ac85e75 + +--001a114420be4c231a054ac85e75 +Content-Type: text/plain; charset=UTF-8 + +pouet + +--001a114420be4c231a054ac85e75 +Content-Type: text/html; charset=UTF-8 + +
        pouet
        + +--001a114420be4c231a054ac85e75-- +""" + + +class EventsTestCase(ModoTestCase): + + @classmethod + def setUpTestData(cls): # NOQA:N802 + """Create test data.""" + super(EventsTestCase, cls).setUpTestData() + admin_factories.populate_database() + + def test_domain_created_event(self): + values = { + "name": "domain.tld", + "quota": 100, + "default_mailbox_quota": 1, + "create_dom_admin": False, + "stepid": "step3", + "type": "domain", + } + self.ajax_post(reverse("admin:domain_add"), values) + self.assertTrue( + tr_models.Transport.objects.filter(pattern="autoreply.domain.tld").exists() + ) + + def test_domain_deleted_event(self): + dom = admin_models.Domain.objects.get(name="test.com") + self.ajax_post(reverse("admin:domain_delete", args=[dom.id]), {}) + with self.assertRaises(tr_models.Transport.DoesNotExist): + tr_models.Transport.objects.get(pattern="autoreply.test.com") + + def test_domain_modified_event(self): + values = { + "name": "test.fr", + "quota": 100, + "default_mailbox_quota": 1, + "enabled": True, + "type": "domain", + } + dom = admin_models.Domain.objects.get(name="test.com") + self.ajax_post(reverse("admin:domain_change", args=[dom.id]), values) + self.assertTrue( + tr_models.Transport.objects.filter(pattern="autoreply.test.fr").exists() + ) + self.assertEqual( + admin_models.Alias.objects.filter(domain=dom, internal=True).count(), 2 + ) + for alr in admin_models.AliasRecipient.objects.filter( + address__contains="@test.fr" + ): + self.assertIn("autoreply.test.fr", alr.address) + + def test_armessage_postsave_event(self): + values = { + "username": "leon@test.com", + "first_name": "Tester", + "last_name": "Toto", + "role": "SimpleUsers", + "quota_act": True, + "is_active": True, + "email": "leon@test.com", + "subject": "test", + "content": "test", + "enabled": True, + "language": "en", + } + account = User.objects.get(username="user@test.com") + self.ajax_post(reverse("admin:account_change", args=[account.id]), values) + self.assertTrue( + admin_models.AliasRecipient.objects.filter( + alias__address="leon@test.com", + alias__internal=True, + address="leon@test.com@autoreply.test.com", + ).exists() + ) + values["enabled"] = False + self.ajax_post(reverse("admin:account_change", args=[account.id]), values) + self.assertFalse( + admin_models.AliasRecipient.objects.filter( + alias__address="leon@test.com", + alias__internal=True, + address="leon@test.com@autoreply.test.com", + ).exists() + ) + + def test_mailbox_deleted_event(self): + account = User.objects.get(username="user@test.com") + self.ajax_post(reverse("admin:account_delete", args=[account.id]), {}) + self.assertFalse( + admin_models.Alias.objects.filter( + address="user@test.com", internal=True + ).exists() + ) + self.assertFalse( + models.ARmessage.objects.filter( + mbox__address="user", mbox__domain__name="test.com" + ).exists() + ) + + def test_modify_mailbox_event(self): + """Rename mailbox.""" + account = User.objects.get(username="user@test.com") + factories.ARmessageFactory(mbox=account.mailbox) + values = { + "username": "leon@test.com", + "first_name": "Tester", + "last_name": "Toto", + "role": "SimpleUsers", + "quota_act": True, + "is_active": True, + "email": "leon@test.com", + "subject": "test", + "content": "test", + "enabled": True, + "language": "en", + } + self.ajax_post(reverse("admin:account_change", args=[account.id]), values) + self.assertFalse( + admin_models.AliasRecipient.objects.filter( + alias__address="user@test.com", + alias__internal=True, + address="user@test.com@autoreply.test.com", + ).exists() + ) + self.assertTrue( + admin_models.AliasRecipient.objects.filter( + alias__address="leon@test.com", + alias__internal=True, + address="leon@test.com@autoreply.test.com", + ).exists() + ) + + +class FormTestCase(ModoTestCase): + + @classmethod + def setUpTestData(cls): # NOQA:N802 + """Create test data.""" + super(FormTestCase, cls).setUpTestData() + admin_factories.populate_database() + + def setUp(self): + """Initialize tests.""" + super(FormTestCase, self).setUp() + self.client.logout() + self.client.login(username="user@test.com", password="toto") + + def test_form_display(self): + """Check if form is displayed.""" + url = reverse("core:user_index") + response = self.client.get(url) + self.assertContains(response, "function autoreply_cb()") + self.assertContains(response, 'name="autoreply"') + + response = self.ajax_get(reverse("autoreply")) + self.assertIn("%(name)s", response["content"]) + + def test_set_autoreply(self): + values = {"subject": "test", "content": "I'm off", "enabled": True} + self.ajax_post(reverse("autoreply"), values) + account = User.objects.get(username="user@test.com") + arm = models.ARmessage.objects.get(mbox=account.mailbox) + self.assertEqual(arm.subject, "test") + self.assertTrue(arm.enabled) + self.assertFalse(arm.untildate) + self.assertTrue(arm.fromdate) + + def test_set_autoreply_in_past(self): + """Create an autoreply with from date expired.""" + fromdate = timezone.localtime( + timezone.now().replace(year=2014, month=1, day=1, hour=12, microsecond=0) + ) + values = { + "subject": "test", + "content": "I'm off", + "enabled": True, + "fromdate": fromdate.strftime("%Y-%m-%d %H:%M:%S"), + } + self.ajax_post(reverse("autoreply"), values) + account = User.objects.get(username="user@test.com") + arm = models.ARmessage.objects.get(mbox=account.mailbox) + self.assertEqual(timezone.localtime(arm.fromdate), fromdate) + + def test_set_autoreply_dates(self): + """Create an autoreply with from and to dates.""" + fromdate = timezone.localtime(timezone.now()) + untildate = fromdate + datetime.timedelta(days=1) + values = { + "subject": "test", + "content": "I'm off", + "enabled": True, + "fromdate": fromdate.strftime("%Y-%m-%d %H:%M:%S"), + "untildate": untildate.strftime("%Y-%m-%d %H:%M:%S"), + } + self.ajax_post(reverse("autoreply"), values) + account = User.objects.get(username="user@test.com") + arm = models.ARmessage.objects.get(mbox=account.mailbox) + self.assertEqual( + timezone.localtime(arm.fromdate), fromdate.replace(microsecond=0) + ) + self.assertEqual( + timezone.localtime(arm.untildate), untildate.replace(microsecond=0) + ) + + +class RepairTestCase(ModoTestCase): + """Check repair command.""" + + @classmethod + def setUpTestData(cls): # NOQA:N802 + """Create some data.""" + super(RepairTestCase, cls).setUpTestData() + admin_factories.populate_database() + + def test_management_command(self): + """Check if problems are fixed.""" + mbox = admin_models.Mailbox.objects.get(user__username="user@test.com") + alias = admin_models.Alias.objects.get(internal=True, address=mbox.full_address) + arm = factories.ARmessageFactory(mbox=mbox, enabled=False) + ar_address = "{}@autoreply.{}".format(mbox.full_address, mbox.domain.name) + admin_factories.AliasRecipientFactory(alias=alias, address=ar_address) + management.call_command("modo", "repair", "--quiet") + self.assertFalse( + admin_models.AliasRecipient.objects.filter(address=ar_address).exists() + ) + admin_factories.AliasRecipientFactory(alias=alias, address=ar_address) + arm.delete() + management.call_command("modo", "repair", "--quiet") + self.assertFalse( + admin_models.AliasRecipient.objects.filter(address=ar_address).exists() + ) + + +class ManagementCommandTestCase(ModoTestCase): + """Management command related tests.""" + + @classmethod + def setUpTestData(cls): # NOQA:N802 + """Create some data.""" + super(ManagementCommandTestCase, cls).setUpTestData() + admin_factories.populate_database() + cls.account = User.objects.get(username="user@test.com") + + def setUp(self): + """Replace stdin.""" + super(ManagementCommandTestCase, self).setUp() + self.stdin = sys.stdin + sys.stdin = StringIO(SIMPLE_EMAIL_CONTENT.strip()) + self.arm = factories.ARmessageFactory(mbox=self.account.mailbox) + + def tearDown(self): + """Restore stdin.""" + sys.stdin = self.stdin + + def test_simple_case(self): + """Check basic autoreply.""" + management.call_command("autoreply", "homer@simpson.test", "user@test.com") + self.assertEqual(len(mail.outbox), 1) + self.assertTrue(models.ARhistoric.objects.filter(armessage=self.arm).exists()) + + # Try to send a new one + sys.stdin.seek(0) + management.call_command("autoreply", "homer@simpson.test", "user@test.com") + self.assertEqual(len(mail.outbox), 1) + + def test_armessage_date_constraints(self): + """Check date constraints.""" + account = User.objects.get(username="admin@test.com") + arm = factories.ARmessageFactory( + mbox=account.mailbox, fromdate=timezone.now() + relativedelta(days=1) + ) + management.call_command("autoreply", "homer@simpson.com", "admin@test.com") + self.assertEqual(len(mail.outbox), 0) + + arm.fromdate = timezone.now() - relativedelta(days=2) + arm.untildate = timezone.now() - relativedelta(days=1) + arm.save() + sys.stdin.seek(0) + management.call_command("autoreply", "homer@simpson.com", "admin@test.com") + self.assertEqual(len(mail.outbox), 0) + arm.refresh_from_db() + self.assertFalse(arm.enabled) + + def test_recipient_does_not_exist(self): + """Message received for non local recipient.""" + management.call_command("autoreply", "homer@simpson.com", "pouet@test.fr") + self.assertEqual(len(mail.outbox), 0) + + def test_no_ar_message_defined(self): + """No AR defined for local recipient.""" + management.call_command("autoreply", "homer@simpson.com", "admin@test.com") + self.assertEqual(len(mail.outbox), 0) + + def test_encoded_message(self): + """Message received with encoded header""" + sys.stdin = StringIO(ENCODED_EMAIL_SUBJECT.strip()) + management.call_command("autoreply", "homer@simpson.test", "user@test.com") + self.assertEqual(len(mail.outbox), 1) + + def test_message_from_ml(self): + """Message received from a mailing list.""" + sys.stdin = StringIO(EMAIL_FROM_ML_CONTENT.strip()) + management.call_command("autoreply", "mailer-daemon@list.test", "user@test.com") + self.assertEqual(len(mail.outbox), 0) + + sys.stdin.seek(0) + management.call_command("autoreply", "sender@list.test", "user@test.com") + self.assertEqual(len(mail.outbox), 0) + + def test_variable_substitution(self): + """Check when message contains variables.""" + tz = timezone.get_current_timezone() + self.arm.fromdate = datetime.datetime(2017, 12, 8, 14, 0, 0, 0).replace( + tzinfo=tz + ) + self.arm.content = "%(name)s %(fromdate)s %(untildate)s" + self.arm.save() + self.account.language = "fr" + self.account.save(update_fields=["language"]) + management.call_command("autoreply", "homer@simpson.test", "user@test.com") + self.assertEqual(len(mail.outbox), 1) + self.assertEqual( + "user@test.com 8 décembre 2017 14:00", mail.outbox[0].body.strip() + ) + + def test_untildate_substitution(self): + """Check substitution of until date.""" + tz = timezone.get_current_timezone() + self.arm.fromdate = datetime.datetime(2017, 12, 8, 14, 0, 0, 0).replace( + tzinfo=tz + ) + self.arm.untildate = timezone.now() + relativedelta(hours=1) + self.arm.content = "%(name)s %(fromdate)s %(untildate)s" + self.arm.save() + management.call_command("autoreply", "homer@simpson.test", "user@test.com") + self.assertEqual(len(mail.outbox), 1) + self.assertEqual( + "user@test.com Dec. 8, 2017, 2 p.m. {}".format( + date_format(self.arm.untildate, "DATETIME_FORMAT") + ), + mail.outbox[0].body.strip(), + ) + + def test_message_with_bad_headers(self): + """Message received with bad header (including newline)""" + sys.stdin = StringIO(SIMPLE_EMAIL_CONTENT_WITH_BAD_HEADER.strip()) + management.call_command("autoreply", "homer@simpson.test", "user@test.com") + self.assertEqual(len(mail.outbox), 1) diff --git a/modoboa/postfix_autoreply/views.py b/modoboa/postfix_autoreply/views.py new file mode 100644 index 000000000..58ce8ee07 --- /dev/null +++ b/modoboa/postfix_autoreply/views.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- + +from django.contrib.auth.decorators import login_required +from django.template.loader import render_to_string +from django.utils.translation import gettext as _ + +from modoboa.admin.lib import needs_mailbox +from modoboa.admin.models import Mailbox +from modoboa.lib.web_utils import render_to_json_response +from .forms import ARmessageForm +from .models import ARmessage + + +@login_required +@needs_mailbox() +def autoreply(request, tplname="modoboa_postfix_autoreply/autoreply.html"): + mb = Mailbox.objects.get(user=request.user.id) + try: + arm = ARmessage.objects.get(mbox=mb.id) + except ARmessage.DoesNotExist: + arm = None + if request.method == "POST": + if arm: + form = ARmessageForm(mb, request.POST, instance=arm) + else: + form = ARmessageForm(mb, request.POST) + if form.is_valid(): + form.save() + return render_to_json_response( + _("Auto reply message updated successfully.") + ) + + return render_to_json_response({"form_errors": form.errors}, status=400) + + form = ARmessageForm(mb, instance=arm) + return render_to_json_response( + { + "content": render_to_string(tplname, {"form": form}, request), + "onload_cb": "autoreply_cb", + } + ) diff --git a/modoboa/urls_api_v2.py b/modoboa/urls_api_v2.py index 9da57ae1a..ab42765ee 100644 --- a/modoboa/urls_api_v2.py +++ b/modoboa/urls_api_v2.py @@ -18,6 +18,7 @@ urlpatterns = [ path("", include("modoboa.maillog.api.v2.urls")), path("", include("modoboa.transport.api.v2.urls")), path("", include("modoboa.pdfcredentials.api.v2.urls")), + path("", include("modoboa.postfix_autoreply.api.v2.urls")), ] urlpatterns += exts_pool.get_urls(category="api") diff --git a/test_project/test_project/settings.py b/test_project/test_project/settings.py index 10b10b2a9..79889a953 100644 --- a/test_project/test_project/settings.py +++ b/test_project/test_project/settings.py @@ -94,6 +94,7 @@ MODOBOA_APPS = ( "modoboa.pdfcredentials", "modoboa.dmarc", "modoboa.imap_migration", + "modoboa.postfix_autoreply", # Modoboa extensions here. ) From 5ad4face02326cd3b6a9787d9487ca77fd15b191 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 15 Mar 2024 17:42:22 +0100 Subject: [PATCH 02/10] Fixed unit tests --- modoboa/core/tests/test_views.py | 3 +++ modoboa/postfix_autoreply/api/v2/viewsets.py | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modoboa/core/tests/test_views.py b/modoboa/core/tests/test_views.py index 5448f6c02..8989aeb56 100644 --- a/modoboa/core/tests/test_views.py +++ b/modoboa/core/tests/test_views.py @@ -113,6 +113,9 @@ SETTINGS_SAMPLE = { "imap_migration-enabled_imapmigration": True, "imap_migration-max_sync_accounts": 2, "imap_migration-create_folders": True, + "postfix_autoreply-autoreplies_timeout": 86400, + "postfix_autoreply-default_subject": "I'm off", + "postfix_autoreply-default_content": "I'm off", } diff --git a/modoboa/postfix_autoreply/api/v2/viewsets.py b/modoboa/postfix_autoreply/api/v2/viewsets.py index 316b35090..41d61e85f 100644 --- a/modoboa/postfix_autoreply/api/v2/viewsets.py +++ b/modoboa/postfix_autoreply/api/v2/viewsets.py @@ -75,8 +75,13 @@ class AccountARMessageViewSet(viewsets.ViewSet): def armessage(self, request): if not hasattr(request.user, "mailbox"): return response.Response(status=404) + params = dict(param_tools.get_global_parameters("postfix_autoreply")) armessage, created = models.ARmessage.objects.get_or_create( - mbox=self.request.user.mailbox + mbox=self.request.user.mailbox, + defaults={ + "subject": params["default_subject"], + "content": params["default_content"], + }, ) if request.method == "GET": serializer = serializers.AccountARMessageSerializer(armessage) From df6f2cad3b7d064d5a09abe90c178e20805bb56f Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sat, 16 Mar 2024 17:52:26 +0100 Subject: [PATCH 03/10] Fixed unit tests --- modoboa/admin/tests/test_account.py | 22 +++++++++++++++++++ modoboa/admin/tests/test_alias.py | 10 +++++++++ .../admin/tests/test_mailbox_operations.py | 2 ++ modoboa/postfix_autoreply/api/v2/viewsets.py | 1 + 4 files changed, 35 insertions(+) diff --git a/modoboa/admin/tests/test_account.py b/modoboa/admin/tests/test_account.py index 0fd77ff20..561079b02 100644 --- a/modoboa/admin/tests/test_account.py +++ b/modoboa/admin/tests/test_account.py @@ -88,6 +88,8 @@ class AccountTestCase(ModoTestCase): "language": "en", "secondary_email": "homer@simpson.com", "phone_number": "+33612345678", + "subject": "subject", + "content": "content", } ) self.ajax_post(reverse("admin:account_change", args=[account.id]), values) @@ -203,6 +205,8 @@ class AccountTestCase(ModoTestCase): "is_active": False, "email": "user@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[account.id]), values) internal.refresh_from_db() @@ -228,6 +232,8 @@ class AccountTestCase(ModoTestCase): "is_active": account.is_active, "email": "new_user@test.com", "language": "en", + "subject": "subject", + "content": "content", "create_alias_with_old_address": False, "aliases_1": "alias@test.com", } @@ -249,6 +255,8 @@ class AccountTestCase(ModoTestCase): "is_active": account.is_active, "email": "new_user@test.com", "language": "en", + "subject": "subject", + "content": "content", "create_alias_with_old_address": False, } url = reverse("admin:account_change", args=[account.pk]) @@ -343,6 +351,8 @@ class AccountTestCase(ModoTestCase): account = User.objects.get(username=values["username"]) password = account.password values["language"] = "en" + values["subject"] = "subject" + values["content"] = "content" # Since 'random_password' is still True, a new password should # be generated self.ajax_post(reverse("admin:account_change", args=[account.pk]), values) @@ -367,6 +377,8 @@ class AccountTestCase(ModoTestCase): "is_active": True, "email": "user@test.com", "language": "en", + "subject": "subject", + "content": "content", } account = User.objects.get(username="user@test.com") self.ajax_post(reverse("admin:account_change", args=[account.pk]), values) @@ -385,6 +397,8 @@ class AccountTestCase(ModoTestCase): "senderaddress": "test@titi.com", "senderaddress_1": "toto@go.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[account.pk]), values) self.assertEqual( @@ -474,6 +488,8 @@ class AccountTestCase(ModoTestCase): "quota": value, "email": email, "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post( reverse("admin:account_change", args=[account.id]), @@ -617,6 +633,8 @@ class PermissionsTestCase(ModoTestCase): "email": "user@test.com", "quota_act": True, "language": "en", + "subject": "subject", + "content": "content", } def tearDown(self): @@ -691,6 +709,8 @@ class PermissionsTestCase(ModoTestCase): "is_active": True, "email": "admin@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[admin.id]), values) self.assertEqual(admin.role, "DomainAdmins") @@ -711,6 +731,8 @@ class PermissionsTestCase(ModoTestCase): "password2": "", "is_active": True, "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[self.reseller.pk]), values) self.assertEqual(self.reseller.role, "Resellers") diff --git a/modoboa/admin/tests/test_alias.py b/modoboa/admin/tests/test_alias.py index 94d3a57b7..dafa6b2cd 100644 --- a/modoboa/admin/tests/test_alias.py +++ b/modoboa/admin/tests/test_alias.py @@ -26,6 +26,8 @@ class AliasTestCase(ModoTestCase): "aliases": "toto@test.com", "aliases_1": "titi@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) self.assertEqual( @@ -65,6 +67,8 @@ class AliasTestCase(ModoTestCase): "email": "user@test.com", "aliases": "Toto@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) mb = user.mailbox @@ -96,6 +100,8 @@ class AliasTestCase(ModoTestCase): "is_active": user.is_active, "email": "user@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) @@ -236,6 +242,8 @@ class AliasTestCase(ModoTestCase): "is_active": True, "email": user.email, "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) @@ -264,6 +272,8 @@ class AliasTestCase(ModoTestCase): "aliases": "toto@test.com", "aliases_1": "titi@test2.com", "language": "en", + "subject": "subject", + "content": "content", } response = self.ajax_post( reverse("admin:account_change", args=[user.id]), values, 400 diff --git a/modoboa/admin/tests/test_mailbox_operations.py b/modoboa/admin/tests/test_mailbox_operations.py index 40003cc62..99b32a1cf 100644 --- a/modoboa/admin/tests/test_mailbox_operations.py +++ b/modoboa/admin/tests/test_mailbox_operations.py @@ -63,6 +63,8 @@ class MailboxOperationTestCase(ModoTestCase): "is_active": True, "email": "admin2@test.com", "language": "en", + "subject": "test", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[mb.user.pk]), values) path = "{}/test.com/admin2".format(self.workdir) diff --git a/modoboa/postfix_autoreply/api/v2/viewsets.py b/modoboa/postfix_autoreply/api/v2/viewsets.py index 41d61e85f..923112483 100644 --- a/modoboa/postfix_autoreply/api/v2/viewsets.py +++ b/modoboa/postfix_autoreply/api/v2/viewsets.py @@ -7,6 +7,7 @@ from rest_framework.decorators import action from modoboa.admin import models as admin_models from modoboa.lib.email_utils import split_mailbox +from modoboa.parameters import tools as param_tools from modoboa.postfix_autoreply import models from . import serializers From d7eb485ec0ad4d5455e1218b3a064117d5c5a684 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sat, 16 Mar 2024 18:04:34 +0100 Subject: [PATCH 04/10] Tests again --- modoboa/limits/tests/test_domain_limits.py | 4 ++++ modoboa/limits/tests/test_user_limits.py | 8 ++++++++ modoboa/pdfcredentials/tests/test_views.py | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modoboa/limits/tests/test_domain_limits.py b/modoboa/limits/tests/test_domain_limits.py index b34a4a072..2ec872fd2 100644 --- a/modoboa/limits/tests/test_domain_limits.py +++ b/modoboa/limits/tests/test_domain_limits.py @@ -94,6 +94,8 @@ class DomainLimitsTestCase(lib_tests.ModoTestCase): "domains": "test2.com", "domains_1": "test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) self.assertTrue(limit.is_exceeded()) @@ -151,6 +153,8 @@ class DomainLimitsTestCase(lib_tests.ModoTestCase): "aliases": "alias@test.com", "aliases_1": "alias1@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) self.assertTrue(limit.is_exceeded()) diff --git a/modoboa/limits/tests/test_user_limits.py b/modoboa/limits/tests/test_user_limits.py index 7349c6429..b5fa2ae00 100644 --- a/modoboa/limits/tests/test_user_limits.py +++ b/modoboa/limits/tests/test_user_limits.py @@ -188,6 +188,8 @@ class DomainAdminTestCase(ResourceTestCase): "aliases": "alias1@test.com", "aliases_1": "alias2@test.com", "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) Alias.objects.get(address="alias1@test.com") @@ -269,6 +271,8 @@ class ResellerTestCase(ResourceTestCase): "is_active": user.is_active, "email": user.email, "language": "en", + "subject": "subject", + "content": "content", } resp = self.ajax_post( reverse("admin:account_change", args=[user.id]), values, status=400 @@ -355,6 +359,8 @@ class ResellerTestCase(ResourceTestCase): "language": "en", "quota_act": False, "quota": 0, + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[admin.pk]), values, 400) @@ -399,6 +405,8 @@ class ResellerTestCase(ResourceTestCase): "mailboxes_limit": 1, "mailbox_aliases_limit": 2, "language": "en", + "subject": "subject", + "content": "content", } self.ajax_post(reverse("admin:account_change", args=[user.id]), values) self._check_limit("mailboxes", 1, 1) diff --git a/modoboa/pdfcredentials/tests/test_views.py b/modoboa/pdfcredentials/tests/test_views.py index f4a1bdf57..96ef17db4 100644 --- a/modoboa/pdfcredentials/tests/test_views.py +++ b/modoboa/pdfcredentials/tests/test_views.py @@ -79,7 +79,7 @@ class EventsTestCase(ModoTestCase): self.assertContains(response, "No document available for this user") # Update account - values.update({"language": "en"}) + values.update({"language": "en", "subject": "subject", "content": "content"}) self.ajax_post(reverse("admin:account_change", args=[account.pk]), values) self.assertFalse(os.path.exists(fname)) From 9a3bd27f53fdefc8b6438dd4b1bdf1aea85f9e2c Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 20 Mar 2024 10:10:39 +0100 Subject: [PATCH 05/10] Added upgrade instructions and updated translations --- doc/upgrade.rst | 41 ++ frontend/src/locale/br/app.po | 434 ++++++++++++--------- frontend/src/locale/cs/app.po | 427 ++++++++++++--------- frontend/src/locale/de/app.po | 434 ++++++++++++--------- frontend/src/locale/el/app.po | 427 ++++++++++++--------- frontend/src/locale/en/app.po | 434 ++++++++++++--------- frontend/src/locale/es/app.po | 434 ++++++++++++--------- frontend/src/locale/fi/app.po | 438 ++++++++++++--------- frontend/src/locale/fr/app.po | 627 ++++++++++++++++--------------- frontend/src/locale/it/app.po | 434 ++++++++++++--------- frontend/src/locale/ja/app.po | 427 ++++++++++++--------- frontend/src/locale/messages.pot | 424 ++++++++++++--------- frontend/src/locale/nl/app.po | 427 ++++++++++++--------- frontend/src/locale/pl/app.po | 427 ++++++++++++--------- frontend/src/locale/pt/app.po | 427 ++++++++++++--------- frontend/src/locale/ru/app.po | 434 ++++++++++++--------- frontend/src/locale/sv/app.po | 438 ++++++++++++--------- frontend/src/locale/tr/app.po | 432 ++++++++++++--------- frontend/src/locale/zh/app.po | 427 ++++++++++++--------- 19 files changed, 4623 insertions(+), 3370 deletions(-) diff --git a/doc/upgrade.rst b/doc/upgrade.rst index feb2e865d..c5e1c0dfc 100644 --- a/doc/upgrade.rst +++ b/doc/upgrade.rst @@ -131,6 +131,47 @@ Rebuild Virtual Environment Specific instructions ********************* +2.3.0 +===== + +.. warning:: + + For this particular version, it is really important that you apply + new migrations **AFTER** the following instructions. If you don't, + you'll get into trouble... + +The ``modoboa-postfix-autoreply`` plugin has been merged into the core. + +In :file:`settings.py` file, add ``'modoboa.postfix_autoreply'`` to ``MODOBOA_APPS``: + +.. sourcecode:: python + + MODOBOA_APPS = ( + 'modoboa', + 'modoboa.core', + 'modoboa.lib', + 'modoboa.admin', + 'modoboa.transport', + 'modoboa.relaydomains', + 'modoboa.limits', + 'modoboa.parameters', + 'modoboa.dnstools', + 'modoboa.policyd', + 'modoboa.maillog', + 'modoboa.dmarc', + 'modoboa.pdfcredentials', + 'modoboa.imap_migration', + 'modoboa.postfix_autoreply', + ) + +And remove any reference to ``'modoboa_postfix_autoreply'`` in this same variable. + +After upgrading modoboa, run the following commands from your virtual environment: + +.. sourcecode:: bash + + > python manage.py rename_app modoboa_postfix_autoreply postfix_autoreply + 2.2.3 ===== diff --git a/frontend/src/locale/br/app.po b/frontend/src/locale/br/app.po index 19d0d67e4..470024d1e 100644 --- a/frontend/src/locale/br/app.po +++ b/frontend/src/locale/br/app.po @@ -20,6 +20,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -51,42 +52,56 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Kont" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Kont" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Kont krouet" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Arventennoù" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Kont krouet" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Kont hizivaet" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Oberioù" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Ouzhpennañ" @@ -95,11 +110,11 @@ msgstr "Ouzhpennañ" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -120,24 +135,28 @@ msgstr "Chomlec'h" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Domanioù meret" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Merourien" @@ -159,8 +178,8 @@ msgstr "Deiziad krouidigezh" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -168,12 +187,12 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -189,16 +208,16 @@ msgstr "Alias krouet" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Alias krouet" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Alias krouet" @@ -210,16 +229,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Aliasoù" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Aliasoù" @@ -228,23 +247,22 @@ msgstr "Aliasoù" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "API moned" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Kont krouet" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 #, fuzzy msgid "API token deleted" @@ -269,13 +287,13 @@ msgstr "Domanioù meret" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Domanioù meret" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -289,6 +307,14 @@ msgstr "O vezañ anavezet" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -313,16 +339,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "Stumm Ereet/anvet" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Cheñch ger-tremen" @@ -330,7 +357,7 @@ msgstr "Cheñch ger-tremen" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -353,7 +380,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -371,11 +398,11 @@ msgstr "Serriñ" msgid "Closed" msgstr "Serriñ" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Kadarnadur" @@ -384,10 +411,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Kenderc'hel war ar fazi" @@ -402,19 +433,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Krouit ur merour domani" @@ -423,7 +455,7 @@ msgstr "Krouit ur merour domani" msgid "Create a mailbox for the administrator." msgstr "Krouiñ ur voest-posteloù evit ar merour." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Krouiñ aliasoù" @@ -460,7 +492,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Taolenn-stur" @@ -469,7 +501,7 @@ msgstr "Taolenn-stur" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -490,15 +522,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -506,7 +539,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Deskrivadur" @@ -514,12 +547,12 @@ msgstr "Deskrivadur" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 #, fuzzy msgid "Disable 2FA" msgstr "Lazhet" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(lazhet)" @@ -568,7 +601,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -591,11 +624,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -607,7 +640,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "Statud DNS" @@ -615,11 +648,11 @@ msgstr "Statud DNS" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -639,28 +672,28 @@ msgstr "Domani" msgid "Domain administrator" msgstr "Merour an domani" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Domani krouet" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 #, fuzzy msgid "Domain default value" msgstr "Implijout un dalvoudegezh domani dre-ziouer" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -668,16 +701,16 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 #, fuzzy msgid "domain's default value" msgstr "Implijout un dalvoudegezh domani dre-ziouer" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Domanioù" @@ -686,7 +719,7 @@ msgstr "Domanioù" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -716,7 +749,7 @@ msgstr "" msgid "Edit provider" msgstr "Chomlec'h postel" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -724,7 +757,7 @@ msgstr "" msgid "Email address" msgstr "Chomlec'h postel" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 #, fuzzy msgid "Email providers" msgstr "Chomlec'h postel" @@ -738,7 +771,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 #, fuzzy msgid "Enable 2FA" msgstr "Enaouet" @@ -753,11 +786,12 @@ msgstr "Enaouiñ ar sinadur DKIM" msgid "Enable DNS checks" msgstr "Enaouiñ ar gwiriañ DNS" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -820,13 +854,13 @@ msgid "Field is required" msgstr "Ar vaezienn-mañ a zo rekiset" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #, fuzzy msgid "First name" msgstr "Anv klok" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Ger-tremen ankouaeet?" @@ -838,7 +872,7 @@ msgstr "Ger-tremen ankouaeet?" msgid "Forgot password?" msgstr "Ger-tremen ankouaeet?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Treuzkas" @@ -861,6 +895,7 @@ msgstr "Treuzkas" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -905,6 +940,7 @@ msgstr "" msgid "General settings" msgstr "Hollek" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -923,6 +959,7 @@ msgstr "Chomlec'hioù ar c'haser" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -934,19 +971,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identelezhioù" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -958,7 +995,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -994,7 +1031,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Titouroù" @@ -1009,11 +1046,11 @@ msgstr "" msgid "Installed components" msgstr "Stumm staliet" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Stumm staliet" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Ger-tremen dre-zegouezh" @@ -1022,11 +1059,11 @@ msgstr "Ger-tremen dre-zegouezh" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1057,12 +1094,12 @@ msgid "Last modification date" msgstr "Deiziad aozañ diwezhañ" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Stumm staliet" @@ -1078,7 +1115,7 @@ msgstr "Live" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1090,23 +1127,23 @@ msgstr "" msgid "Logger" msgstr "Enroller" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Digevreañ" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Boest-posteloù" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Boest-posteloù" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Boest-posteloù" @@ -1132,7 +1169,7 @@ msgstr "Implij" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1140,16 +1177,16 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Deiziad krouidigezh" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1167,11 +1204,11 @@ msgstr "Aozet" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1184,15 +1221,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Anv" @@ -1225,7 +1262,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Kont nevez" @@ -1256,14 +1293,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 #, fuzzy msgid "No associated domains" msgstr "Domanioù meret" @@ -1276,11 +1313,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1292,20 +1329,20 @@ msgstr "" msgid "Not generated" msgstr "Neket ganet" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Boest-posteloù" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 #, fuzzy msgid "Number of associated domains:" msgstr "Domanioù meret" @@ -1329,12 +1366,12 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Kont nevez" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Hegerz ez eus un hizivadenn pe muioc'h" @@ -1347,7 +1384,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Dibarzhioù" @@ -1355,7 +1392,7 @@ msgstr "Dibarzhioù" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 #, fuzzy msgid "Parameters updated" msgstr "Profil hizivaet" @@ -1371,18 +1408,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Ger-tremen" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Disklotadurioù gerioù-tremen" @@ -1439,12 +1476,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profil" @@ -1456,7 +1493,7 @@ msgstr "Profil hizivaet" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Domani krouet" @@ -1466,7 +1503,7 @@ msgstr "Domani krouet" msgid "Provider created" msgstr "Domani krouet" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Domani krouet" @@ -1476,7 +1513,7 @@ msgstr "Domani krouet" msgid "Provider name" msgstr "Domani krouet" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Profil hizivaet" @@ -1491,10 +1528,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1519,9 +1556,9 @@ 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." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 #, fuzzy msgid "Quota: " msgstr "Kota" @@ -1531,9 +1568,9 @@ msgstr "Kota" msgid "Random address" msgstr "Chomlec'h dre-zegouezh" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Ger-tremen dre-zegouezh" @@ -1548,7 +1585,7 @@ msgstr "Resever(ien)" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Reseverien" @@ -1561,7 +1598,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1574,11 +1611,11 @@ msgstr "Domani nevez" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Derc'hel soñj ac'hanon" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1599,12 +1636,12 @@ msgstr "Eilgwerzher" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Mammennoù" @@ -1616,7 +1653,7 @@ msgstr "Implij mammennoù" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1626,7 +1663,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1634,10 +1671,10 @@ msgstr "" msgid "Role" msgstr "Rol" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Enrollañ" @@ -1660,7 +1697,7 @@ msgstr "Eil chomlec'h postel" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1672,26 +1709,36 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Kont nevez" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Kont nevez" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +#, fuzzy +msgid "Sender address added" +msgstr "Chomlec'hioù ar c'haser" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +#, fuzzy +msgid "Sender address deleted" +msgstr "Chomlec'hioù ar c'haser" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Chomlec'hioù ar c'haser" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1699,16 +1746,16 @@ msgstr "" msgid "Separator" msgstr "Skejer" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Arventennoù" @@ -1720,7 +1767,7 @@ msgstr "Diskouez an alc'hwez" msgid "Simple user" msgstr "Implijer diazez" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1737,7 +1784,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 #, fuzzy @@ -1749,7 +1796,11 @@ msgstr "Statud" msgid "Status" msgstr "Statud" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1757,7 +1808,7 @@ msgid "Submit" msgstr "Kas" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Berradenn" @@ -1773,6 +1824,13 @@ msgstr "" msgid "Tags" msgstr "Balizoù" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1801,8 +1859,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1810,7 +1868,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "Hollad" @@ -1820,7 +1878,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "Treuzdougen" @@ -1843,7 +1901,7 @@ msgstr "O vezañ anavezet" msgid "Two-factor authentication" msgstr "O vezañ anavezet" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1858,7 +1916,7 @@ msgstr "" msgid "Type" msgstr "Doare" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 #, fuzzy msgid "Type: " msgstr "Doare" @@ -1882,11 +1940,20 @@ msgstr "divevennet" msgid "Unlimited" msgstr "divevennet" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Hizivaat" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Ger-tremen" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1909,15 +1976,15 @@ msgstr "Implijout un dalvoudegezh domani dre-ziouer" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Dizanv" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Anv implier" @@ -1938,16 +2005,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1959,11 +2027,11 @@ msgstr "Degemer mat e-barzh Modoboa" msgid "With a mailbox" msgstr "Gant ur voest-posteloù" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1973,13 +2041,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1992,14 +2061,19 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Genel ur ger-tremen dre-zegouezh evit ar merour." diff --git a/frontend/src/locale/cs/app.po b/frontend/src/locale/cs/app.po index 032e186ed..1c1ee2655 100644 --- a/frontend/src/locale/cs/app.po +++ b/frontend/src/locale/cs/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,40 +53,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -94,11 +108,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -119,24 +133,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -156,8 +174,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -165,11 +183,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -184,15 +202,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -203,16 +221,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -220,22 +238,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -258,12 +275,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -277,6 +294,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -301,16 +326,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -318,7 +344,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -339,7 +365,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -356,11 +382,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -369,10 +395,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -387,19 +417,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -408,7 +439,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -444,7 +475,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -453,7 +484,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -472,15 +503,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -488,7 +520,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -496,11 +528,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -548,7 +580,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -571,11 +603,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -587,7 +619,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -595,11 +627,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -618,27 +650,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -646,15 +678,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -663,7 +695,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -690,7 +722,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -698,7 +730,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -711,7 +743,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -725,11 +757,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -790,12 +823,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -805,7 +838,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -826,6 +859,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -868,6 +902,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -884,6 +919,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -895,19 +931,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -919,7 +955,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -955,7 +991,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -969,11 +1005,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -981,11 +1017,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1016,12 +1052,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1036,7 +1072,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1048,22 +1084,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1087,7 +1123,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1095,15 +1131,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1120,11 +1156,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1137,15 +1173,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1176,7 +1212,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1206,14 +1242,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1225,11 +1261,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1241,19 +1277,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1276,11 +1312,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1293,7 +1329,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1301,7 +1337,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1316,18 +1352,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1381,12 +1417,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1398,7 +1434,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1406,7 +1442,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1414,7 +1450,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1427,10 +1463,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1449,9 +1485,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1460,9 +1496,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1477,7 +1513,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1490,7 +1526,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1502,11 +1538,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1526,12 +1562,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1543,7 +1579,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1553,7 +1589,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1561,10 +1597,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1587,7 +1623,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1599,24 +1635,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1624,16 +1668,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1645,7 +1689,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1662,7 +1706,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1673,7 +1717,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1681,7 +1729,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1697,6 +1745,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1725,8 +1780,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1734,7 +1789,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1744,7 +1799,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1764,7 +1819,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1779,7 +1834,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1801,11 +1856,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1826,14 +1889,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1853,16 +1916,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1874,11 +1938,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1888,13 +1952,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1907,10 +1972,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/de/app.po b/frontend/src/locale/de/app.po index 09b4c9f65..f7ab219b4 100644 --- a/frontend/src/locale/de/app.po +++ b/frontend/src/locale/de/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,42 +53,56 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Konto" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Konto" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Konto erstellt" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Einstellungen" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Konto erstellt" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Konto aktualisiert" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Aktionen" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Hinzufügen" @@ -96,11 +111,11 @@ msgstr "Hinzufügen" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -121,24 +136,28 @@ msgstr "Adresse" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Administrierte Domains" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Administratoren" @@ -160,8 +179,8 @@ msgstr "Erstellungsdatum" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -169,12 +188,12 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -190,16 +209,16 @@ msgstr "Alias erstellt" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Alias erstellt" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Alias erstellt" @@ -211,16 +230,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Aliase" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Aliase" @@ -229,23 +248,22 @@ msgstr "Aliase" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "API Zugriff" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Konto erstellt" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 #, fuzzy msgid "API token deleted" @@ -270,13 +288,13 @@ msgstr "Administrierte Domains" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Administrierte Domains" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -290,6 +308,14 @@ msgstr "Authentifizierung" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -314,16 +340,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "Gebundenes Format" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Passwort ändern" @@ -331,7 +358,7 @@ msgstr "Passwort ändern" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -352,7 +379,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -370,11 +397,11 @@ msgstr "Schließen" msgid "Closed" msgstr "Schließen" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Bestätigung" @@ -385,10 +412,14 @@ msgstr "" "Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account " "aktiviert." -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Bei Fehler fortfahren" @@ -403,19 +434,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Domain-Administrator erstellen" @@ -424,7 +456,7 @@ msgstr "Domain-Administrator erstellen" msgid "Create a mailbox for the administrator." msgstr "Erzeuge Postfach für den Administrator." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Aliase erstellen" @@ -461,7 +493,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Dashboard" @@ -470,7 +502,7 @@ msgstr "Dashboard" msgid "Date" msgstr "Datum" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Tag" @@ -491,15 +523,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -507,7 +540,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Beschreibung" @@ -515,11 +548,11 @@ msgstr "Beschreibung" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "Deaktiviere 2-Faktor-Authentifizierung" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(deaktiviert)" @@ -568,7 +601,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -591,11 +624,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -607,7 +640,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "DNS Status" @@ -615,11 +648,11 @@ msgstr "DNS Status" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -639,28 +672,28 @@ msgstr "Domain" msgid "Domain administrator" msgstr "Domain Administrator" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Domain erstellt." -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 #, fuzzy msgid "Domain default value" msgstr "Standardwert der Domain verwenden" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -668,16 +701,16 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 #, fuzzy msgid "domain's default value" msgstr "Standardwert der Domain verwenden" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Domains" @@ -686,7 +719,7 @@ msgstr "Domains" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -716,7 +749,7 @@ msgstr "" msgid "Edit provider" msgstr "E-Mail Adresse" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -724,7 +757,7 @@ msgstr "" msgid "Email address" msgstr "E-Mail Adresse" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 #, fuzzy msgid "Email providers" msgstr "E-Mail Adresse" @@ -738,7 +771,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "Aktiviere 2FA" @@ -752,11 +785,12 @@ msgstr "Aktiviere DKIM Signierung" msgid "Enable DNS checks" msgstr "Aktiviere DNS Prüfungen" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -818,13 +852,13 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #, fuzzy msgid "First name" msgstr "Vollständiger Name" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Passwort vergessen?" @@ -836,7 +870,7 @@ msgstr "Passwort vergessen?" msgid "Forgot password?" msgstr "Passwort vergessen?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Weiterleiten" @@ -858,6 +892,7 @@ msgstr "Weiterleiten" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -902,6 +937,7 @@ msgstr "" msgid "General settings" msgstr "Allgemein" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -920,6 +956,7 @@ msgstr "Ab­sen­der­ad­res­sen " msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -931,19 +968,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identitäten" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -955,7 +992,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -991,7 +1028,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Information" @@ -1006,11 +1043,11 @@ msgstr "" msgid "Installed components" msgstr "Installierte Version" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Installierte Version" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Zufälliges Passwort" @@ -1019,11 +1056,11 @@ msgstr "Zufälliges Passwort" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1054,12 +1091,12 @@ msgid "Last modification date" msgstr "Datum der letzten Änderung" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Installierte Version" @@ -1075,7 +1112,7 @@ msgstr "Stufe" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1087,23 +1124,23 @@ msgstr "" msgid "Logger" msgstr "Logger" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Logout" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Postfächer" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Mailboxen" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Postfächer" @@ -1129,7 +1166,7 @@ msgstr "Verwendung" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1137,16 +1174,16 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Erstellungsdatum" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1164,11 +1201,11 @@ msgstr "Verändert" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Monat" @@ -1181,15 +1218,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Name" @@ -1222,7 +1259,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Neues Konto" @@ -1253,14 +1290,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 #, fuzzy msgid "No associated domains" msgstr "Administrierte Domains" @@ -1273,11 +1310,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1289,20 +1326,20 @@ msgstr "" msgid "Not generated" msgstr "Nicht generiert" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Mailboxen" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 #, fuzzy msgid "Number of associated domains:" msgstr "Administrierte Domains" @@ -1326,12 +1363,12 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Neues Konto" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Eine oder mehrere Aktualisierungen sind verfügbar" @@ -1344,7 +1381,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Optionen" @@ -1352,7 +1389,7 @@ msgstr "Optionen" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 #, fuzzy msgid "Parameters updated" msgstr "Profil aktualisiert" @@ -1368,18 +1405,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Passwort" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Passwörter stimmen nicht überein" @@ -1436,12 +1473,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profil" @@ -1453,7 +1490,7 @@ msgstr "Profil aktualisiert" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Neue Wiederherstellungscodes" @@ -1463,7 +1500,7 @@ msgstr "Neue Wiederherstellungscodes" msgid "Provider created" msgstr "Domain erstellt." -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Domain erstellt." @@ -1473,7 +1510,7 @@ msgstr "Domain erstellt." msgid "Provider name" msgstr "Domain erstellt." -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Profil aktualisiert" @@ -1488,10 +1525,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1517,9 +1554,9 @@ msgstr "" "(Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu " "verwenden." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1528,9 +1565,9 @@ msgstr "" msgid "Random address" msgstr "Zufällige Adresse" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Zufälliges Passwort" @@ -1545,7 +1582,7 @@ msgstr "Empfänger" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Empfänger" @@ -1558,7 +1595,7 @@ msgstr "Registrieren" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1571,11 +1608,11 @@ msgstr "Neue Domain" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "An mich erinnern" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1596,12 +1633,12 @@ msgstr "Reseller" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "Setze Wiederherstellungscodes zurück" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Ressourcen" @@ -1613,7 +1650,7 @@ msgstr "Ressourcen-Verbrauch" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1623,7 +1660,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1631,10 +1668,10 @@ msgstr "" msgid "Role" msgstr "Rolle" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Speichern" @@ -1658,7 +1695,7 @@ msgstr "Zweite E-Mail Adresse" msgid "Secured" msgstr "Sicherheit" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "Sicherheit" @@ -1670,26 +1707,36 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Neues Konto" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Neues Konto" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +#, fuzzy +msgid "Sender address added" +msgstr "Ab­sen­der­ad­res­sen " + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +#, fuzzy +msgid "Sender address deleted" +msgstr "Ab­sen­der­ad­res­sen " + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Ab­sen­der­ad­res­sen " -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1697,16 +1744,16 @@ msgstr "" msgid "Separator" msgstr "Separator" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Einstellungen" @@ -1718,7 +1765,7 @@ msgstr "Zeige Schlüssel" msgid "Simple user" msgstr "Normaler Benutzer" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1735,7 +1782,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 #, fuzzy @@ -1747,7 +1794,11 @@ msgstr "Statistiken" msgid "Status" msgstr "Status" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1755,7 +1806,7 @@ msgid "Submit" msgstr "Abschicken" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Zusammenfassung" @@ -1771,6 +1822,13 @@ msgstr "" msgid "Tags" msgstr "Tags" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1799,8 +1857,8 @@ msgstr "" msgid "To" msgstr "Bis" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1808,7 +1866,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "Total" @@ -1818,7 +1876,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1841,7 +1899,7 @@ msgstr "Authentifizierung" msgid "Two-factor authentication" msgstr "Authentifizierung" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1862,7 +1920,7 @@ msgstr "" msgid "Type" msgstr "Typ" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 #, fuzzy msgid "Type: " msgstr "Typ" @@ -1886,11 +1944,20 @@ msgstr "unbegrenzt" msgid "Unlimited" msgstr "unbegrenzt" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Aktualisieren" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Passwort" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1913,15 +1980,15 @@ msgstr "Standardwert der Domain verwenden" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Unbekannt" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Benutzername" @@ -1942,16 +2009,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Woche" @@ -1963,11 +2031,11 @@ msgstr "Willkommen zu Modoboa" msgid "With a mailbox" msgstr "Mit einem Postfach" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Jahr" @@ -1977,13 +2045,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1996,14 +2065,19 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Zufällig generiertes Passwort für den Administrator verwenden." diff --git a/frontend/src/locale/el/app.po b/frontend/src/locale/el/app.po index 01ec11b44..90589dc4e 100644 --- a/frontend/src/locale/el/app.po +++ b/frontend/src/locale/el/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,40 +53,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -94,11 +108,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -119,24 +133,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -156,8 +174,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -165,11 +183,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -184,15 +202,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -203,16 +221,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -220,22 +238,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -258,12 +275,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -277,6 +294,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -301,16 +326,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -318,7 +344,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -339,7 +365,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -356,11 +382,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -369,10 +395,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -387,19 +417,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -408,7 +439,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -444,7 +475,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -453,7 +484,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -472,15 +503,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -488,7 +520,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -496,11 +528,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -548,7 +580,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -571,11 +603,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -587,7 +619,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -595,11 +627,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -618,27 +650,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -646,15 +678,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -663,7 +695,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -690,7 +722,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -698,7 +730,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -711,7 +743,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -725,11 +757,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -790,12 +823,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -805,7 +838,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -826,6 +859,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -868,6 +902,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -884,6 +919,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -895,19 +931,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -919,7 +955,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -955,7 +991,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -969,11 +1005,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -981,11 +1017,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1016,12 +1052,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1036,7 +1072,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1048,22 +1084,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1087,7 +1123,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1095,15 +1131,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1120,11 +1156,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1137,15 +1173,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1176,7 +1212,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1206,14 +1242,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1225,11 +1261,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1241,19 +1277,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1276,11 +1312,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1293,7 +1329,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1301,7 +1337,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1316,18 +1352,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1381,12 +1417,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1398,7 +1434,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1406,7 +1442,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1414,7 +1450,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1427,10 +1463,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1449,9 +1485,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1460,9 +1496,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1477,7 +1513,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1490,7 +1526,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1502,11 +1538,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1526,12 +1562,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1543,7 +1579,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1553,7 +1589,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1561,10 +1597,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1587,7 +1623,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1599,24 +1635,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1624,16 +1668,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1645,7 +1689,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1662,7 +1706,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1673,7 +1717,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1681,7 +1729,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1697,6 +1745,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1725,8 +1780,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1734,7 +1789,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1744,7 +1799,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1764,7 +1819,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1779,7 +1834,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1801,11 +1856,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1826,14 +1889,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1853,16 +1916,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1874,11 +1938,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1888,13 +1952,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1907,10 +1972,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/en/app.po b/frontend/src/locale/en/app.po index e6ed876d8..0040ea4bc 100644 --- a/frontend/src/locale/en/app.po +++ b/frontend/src/locale/en/app.po @@ -13,6 +13,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -45,43 +46,57 @@ msgstr "" msgid "Absolute time range" msgstr "Absolute time range" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Account" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Account" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 #, fuzzy msgid "Account created" msgstr "Domain created" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Settings" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 #, fuzzy msgid "Account updated" msgstr "Domain updated" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Actions" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Add" @@ -90,11 +105,11 @@ msgstr "Add" msgid "Add a new domain alias" msgstr "Add a new domain alias" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "Add administrator" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "Add sender address" @@ -115,24 +130,28 @@ msgstr "Address" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Administered domains" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "Administrator added" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "Administrator name" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "Administrator removed" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Administrators" @@ -154,8 +173,8 @@ msgstr "Domain deleted" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "Alarms" @@ -164,12 +183,12 @@ msgstr "Alarms" msgid "Alarms deleted" msgstr "Domain alias deleted" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -184,15 +203,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Domain alias updated" @@ -204,16 +223,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Aliases" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Aliases" @@ -222,24 +241,23 @@ msgstr "Aliases" msgid "Alignment" msgstr "Alignment" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 #, fuzzy msgid "API token copied to your clipboard" msgstr "Password copied to clipboard" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Domain created" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 #, fuzzy msgid "API token deleted" @@ -266,13 +284,13 @@ msgstr "Administered domains" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Administered domains" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "Audit trail" @@ -286,6 +304,14 @@ msgstr "Authentication" msgid "Auto configuration" msgstr "Auto configuration" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "autoconfig record (Mozilla) not found" @@ -310,16 +336,17 @@ msgstr "Back" msgid "Bind/named format. Click to copy" msgstr "Bind/named format. Click to copy" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "Cancel" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 #, fuzzy msgid "Change password" msgstr "Random password" @@ -328,7 +355,7 @@ msgstr "Random password" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -350,7 +377,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -369,11 +396,11 @@ msgstr "Close" msgid "Closed" msgstr "Close" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "Confirm and create" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 #, fuzzy msgid "Confirmation" msgstr "Information" @@ -383,10 +410,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "Connect" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Continue on error" @@ -402,20 +433,21 @@ msgstr "Copy to clipboard" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "Copy to clipboard" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 #, fuzzy msgid "Copy token to clipboard" msgstr "Copy to clipboard" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Create a domain administrator" @@ -424,7 +456,7 @@ msgstr "Create a domain administrator" msgid "Create a mailbox for the administrator." msgstr "Create a mailbox for the administrator." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Create aliases" @@ -463,7 +495,7 @@ msgstr "Message sending limit" msgid "Daily sending limit" msgstr "Daily sending limit" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Dashboard" @@ -472,7 +504,7 @@ msgstr "Dashboard" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Day" @@ -493,15 +525,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "Delete" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 #, fuzzy msgid "Delete token" @@ -510,7 +543,7 @@ msgstr "Delete" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -518,12 +551,12 @@ msgstr "" msgid "Detail" msgstr "Detail" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 #, fuzzy msgid "Disable 2FA" msgstr "Disabled" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(disabled)" @@ -576,7 +609,7 @@ msgstr "DKIM record found" msgid "DKIM record not found" msgstr "DKIM record not found" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "DKIM signing" @@ -599,11 +632,11 @@ msgstr "DMARC support does not seem to be enabled for this domain." #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "DNS checks" @@ -615,7 +648,7 @@ msgstr "DNS configuration for " msgid "DNS configuration help" msgstr "DNS configuration help" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "DNS status" @@ -624,11 +657,11 @@ msgstr "DNS status" msgid "Do not delete account folder" msgstr "Do not delete domain folder" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "Do not delete domain folder" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "Do you really want to delete the domain %{ domain }?" @@ -649,28 +682,28 @@ msgstr "Domain" msgid "Domain administrator" msgstr "Create a domain administrator" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "Domain alias created" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "Domain alias deleted" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "Domain alias updated" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Domain created" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 #, fuzzy msgid "Domain default value" msgstr "Domain deleted" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "Domain deleted" @@ -678,16 +711,16 @@ msgstr "Domain deleted" msgid "Domain name (ex: domain.tld)" msgstr "Domain name (ex: domain.tld)" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "Domain updated" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 #, fuzzy msgid "domain's default value" msgstr "Domain deleted" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Domains" @@ -696,7 +729,7 @@ msgstr "Domains" msgid "Don't treat duplicated objects as errors" msgstr "Don't treat duplicated objects as errors" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -726,7 +759,7 @@ msgstr "Edit domain alias" msgid "Edit provider" msgstr "Email providers" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -735,7 +768,7 @@ msgstr "" msgid "Email address" msgstr "Specify an email address" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "Email providers" @@ -748,7 +781,7 @@ msgstr "" msgid "Empty" msgstr "Empty" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 #, fuzzy msgid "Enable 2FA" msgstr "Enabled" @@ -763,11 +796,12 @@ msgstr "Enable DKIM signing" msgid "Enable DNS checks" msgstr "Enable DNS checks" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -831,13 +865,13 @@ msgid "Field is required" msgstr "Field is required" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #, fuzzy msgid "First name" msgstr "Full name" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "Forgot password" @@ -848,7 +882,7 @@ msgstr "Forgot password" msgid "Forgot password?" msgstr "Forgot password" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Forward" @@ -870,6 +904,7 @@ msgstr "Forwarded" msgid "Forwarders with ARC" msgstr "Forwarders with ARC" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -913,6 +948,7 @@ msgstr "General information" msgid "General settings" msgstr "General information" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -931,6 +967,7 @@ msgstr "Sender addresses" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -944,19 +981,19 @@ msgstr "" "Here is an example of DNS configuration (bind format). Replace values " "between [ ] by the appropriate ones." -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "Identification" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identities" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -972,7 +1009,7 @@ msgstr "" "If you configured it recently, please wait for the first report to be " "received and processed." -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "IMAP Migration" @@ -1010,7 +1047,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Information" @@ -1024,11 +1061,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Random password" @@ -1037,11 +1074,11 @@ msgstr "Random password" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1072,13 +1109,13 @@ msgid "Last modification date" msgstr "Last modification date" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #, fuzzy msgid "Last name" msgstr "Last login date" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1093,7 +1130,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "Limitations" @@ -1105,24 +1142,24 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Logout" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 #, fuzzy msgid "Mailbox" msgstr "Mailboxes" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Mailboxes" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Mailboxes" @@ -1149,7 +1186,7 @@ msgstr "Messages" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "Message sending limit" @@ -1157,16 +1194,16 @@ msgstr "Message sending limit" msgid "messages" msgstr "messages" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "Messages" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Domain deleted" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "Migrations" @@ -1185,11 +1222,11 @@ msgstr "Modify" msgid "Modify" msgstr "Modify" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "Monitoring" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Month" @@ -1202,15 +1239,15 @@ msgid "MX records" msgstr "MX records" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Name" @@ -1243,7 +1280,7 @@ msgid "New" msgstr "New" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 #, fuzzy msgid "New account" msgstr "Account" @@ -1276,14 +1313,14 @@ msgstr "no" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "No" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1295,11 +1332,11 @@ msgstr "No data to export" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "No sender address defined for this account" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "No sending limit" @@ -1311,19 +1348,19 @@ msgstr "Not a valid email" msgid "Not generated" msgstr "Not generated" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1349,12 +1386,12 @@ msgstr "" msgid "OK" msgstr "OK" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Account" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1367,7 +1404,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Options" @@ -1375,7 +1412,7 @@ msgstr "Options" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1390,18 +1427,18 @@ msgstr "Partially trusted sources / Forwarders" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Password" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "Password copied to clipboard" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Password" @@ -1460,12 +1497,12 @@ msgstr "" msgid "Problem" msgstr "Problem" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profile" @@ -1478,7 +1515,7 @@ msgstr "Domain updated" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "Provide a CSV file where lines respect one of the following formats:" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Email providers" @@ -1488,7 +1525,7 @@ msgstr "Email providers" msgid "Provider created" msgstr "Domain created" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Domain deleted" @@ -1497,7 +1534,7 @@ msgstr "Domain deleted" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Domain updated" @@ -1512,10 +1549,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1536,9 +1573,9 @@ msgstr "" "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " "A value of 0 means no quota." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "Quota: " @@ -1548,9 +1585,9 @@ msgstr "Quota: " msgid "Random address" msgstr "Random password" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Random password" @@ -1565,7 +1602,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1578,7 +1615,7 @@ msgstr "" msgid "Relative time ranges" msgstr "Relative time ranges" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "Relay" @@ -1591,11 +1628,11 @@ msgstr "New domain" msgid "Reload" msgstr "Reload" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Remember me" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "Remove this address" @@ -1615,12 +1652,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Resources" @@ -1632,7 +1669,7 @@ msgstr "Resources usage" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1642,7 +1679,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1650,10 +1687,10 @@ msgstr "" msgid "Role" msgstr "Role" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Save" @@ -1677,7 +1714,7 @@ msgstr "Secondary email" msgid "Secured" msgstr "Security" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "Security" @@ -1689,25 +1726,35 @@ msgstr "Select an account" msgid "Select file" msgstr "Select file" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Select an account" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +#, fuzzy +msgid "Sender address added" +msgstr "Sender addresses" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +#, fuzzy +msgid "Sender address deleted" +msgstr "Sender addresses" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Sender addresses" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "Sending limit" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "Sending limit: " @@ -1715,16 +1762,16 @@ msgstr "Sending limit: " msgid "Separator" msgstr "Separator" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "Service" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "Service: " -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Settings" @@ -1736,7 +1783,7 @@ msgstr "Show key" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "Specify an email address" @@ -1753,7 +1800,7 @@ msgstr "SPF record not found" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1765,7 +1812,11 @@ msgstr "Statistics" msgid "Status" msgstr "DNS status" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1773,7 +1824,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Summary" @@ -1790,6 +1841,13 @@ msgstr "" msgid "Tags" msgstr "Tags" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1820,8 +1878,8 @@ msgstr "" msgid "To" msgstr "To" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1829,7 +1887,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "Total" @@ -1839,7 +1897,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "Transport" @@ -1860,7 +1918,7 @@ msgstr "Two-factor authentication" msgid "Two-factor authentication" msgstr "Two-factor authentication" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1875,7 +1933,7 @@ msgstr "" msgid "Type" msgstr "Type" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "Type: " @@ -1898,11 +1956,20 @@ msgstr "Unlimited" msgid "Unlimited" msgstr "Unlimited" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Update" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Password" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1925,15 +1992,15 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Unknown" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Username" @@ -1954,16 +2021,17 @@ msgstr "Verify code" msgid "warning" msgstr "warning" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "Warning" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Week" @@ -1975,11 +2043,11 @@ msgstr "" msgid "With a mailbox" msgstr "With a mailbox" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "With mailbox" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Year" @@ -1989,13 +2057,14 @@ msgstr "yes" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "Yes" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -2008,13 +2077,18 @@ msgstr "You can use a different character as separator." msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Generate a random password for the administrator." diff --git a/frontend/src/locale/es/app.po b/frontend/src/locale/es/app.po index 892b8ad82..8dee0cfc5 100644 --- a/frontend/src/locale/es/app.po +++ b/frontend/src/locale/es/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,42 +53,56 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Cuenta" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Cuenta" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Cuenta creada" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Configuración" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Cuenta creada" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Cuenta actualizada" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Acciones" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Añadir" @@ -96,11 +111,11 @@ msgstr "Añadir" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -121,24 +136,28 @@ msgstr "Dirección" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Dominios administrados" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Administradores" @@ -160,8 +179,8 @@ msgstr "Fecha de creación" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -169,12 +188,12 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -190,16 +209,16 @@ msgstr "Alias creado" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Alias creado" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Alias creado" @@ -211,16 +230,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Alias" @@ -229,23 +248,22 @@ msgstr "Alias" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "Acceso API" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Cuenta creada" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 #, fuzzy msgid "API token deleted" @@ -270,13 +288,13 @@ msgstr "Dominios administrados" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Dominios administrados" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -290,6 +308,14 @@ msgstr "Autenticación" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -314,16 +340,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "Formato inválido" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Cambiar contraseña" @@ -331,7 +358,7 @@ msgstr "Cambiar contraseña" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -354,7 +381,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -371,11 +398,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Confirmación" @@ -384,10 +411,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Continúe en error." @@ -402,19 +433,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Crear un administrador del dominio" @@ -423,7 +455,7 @@ msgstr "Crear un administrador del dominio" msgid "Create a mailbox for the administrator." msgstr "Crear mailbox para el administrador." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Crear alias" @@ -460,7 +492,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Panel de Control" @@ -469,7 +501,7 @@ msgstr "Panel de Control" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Día" @@ -489,15 +521,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -505,7 +538,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Descripción" @@ -513,12 +546,12 @@ msgstr "Descripción" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 #, fuzzy msgid "Disable 2FA" msgstr "Deshabilitado" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(deshabilitado)" @@ -567,7 +600,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -590,11 +623,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -606,7 +639,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "Estado de DNS" @@ -614,11 +647,11 @@ msgstr "Estado de DNS" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -638,28 +671,28 @@ msgstr "Dominio" msgid "Domain administrator" msgstr "Administrador del dominio" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Dominio creado" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 #, fuzzy msgid "Domain default value" msgstr "Usar el valor por defecto del dominio" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -667,16 +700,16 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 #, fuzzy msgid "domain's default value" msgstr "Usar el valor por defecto del dominio" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Dominios" @@ -685,7 +718,7 @@ msgstr "Dominios" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -715,7 +748,7 @@ msgstr "" msgid "Edit provider" msgstr "Dirección de email" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -723,7 +756,7 @@ msgstr "" msgid "Email address" msgstr "Dirección de email" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 #, fuzzy msgid "Email providers" msgstr "Dirección de email" @@ -737,7 +770,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 #, fuzzy msgid "Enable 2FA" msgstr "Activado" @@ -752,11 +785,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "Activar comprobación de DNS" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -818,13 +852,13 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #, fuzzy msgid "First name" msgstr "Nombre completo" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "¿Ha olvidado su contraseña?" @@ -836,7 +870,7 @@ msgstr "¿Ha olvidado su contraseña?" msgid "Forgot password?" msgstr "¿Ha olvidado su contraseña?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Siguiente" @@ -858,6 +892,7 @@ msgstr "Siguiente" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -902,6 +937,7 @@ msgstr "" msgid "General settings" msgstr "General" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -920,6 +956,7 @@ msgstr "Direcciónes de remitente" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -931,19 +968,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identidades" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -955,7 +992,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -991,7 +1028,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Información" @@ -1006,11 +1043,11 @@ msgstr "" msgid "Installed components" msgstr "Versión instalada" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Versión instalada" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Dirección aleatoria" @@ -1019,11 +1056,11 @@ msgstr "Dirección aleatoria" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1054,12 +1091,12 @@ msgid "Last modification date" msgstr "Última fecha de modificación" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Versión instalada" @@ -1075,7 +1112,7 @@ msgstr "Nivel" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1087,23 +1124,23 @@ msgstr "" msgid "Logger" msgstr "Logger" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Salir" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Mailboxes" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Mailboxes" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Mailboxes" @@ -1129,7 +1166,7 @@ msgstr "Uso" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1137,16 +1174,16 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Fecha de creación" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1164,11 +1201,11 @@ msgstr "Modificado" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Mes" @@ -1181,15 +1218,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Nombre" @@ -1222,7 +1259,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Nueva cuenta" @@ -1253,14 +1290,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 #, fuzzy msgid "No associated domains" msgstr "Dominios administrados" @@ -1273,11 +1310,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1289,20 +1326,20 @@ msgstr "" msgid "Not generated" msgstr "Sin definir" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Mailboxes" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 #, fuzzy msgid "Number of associated domains:" msgstr "Dominios administrados" @@ -1326,12 +1363,12 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Nueva cuenta" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Una o más actualizaciones están disponibles" @@ -1344,7 +1381,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Opciones" @@ -1352,7 +1389,7 @@ msgstr "Opciones" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 #, fuzzy msgid "Parameters updated" msgstr "Perfil actualizado" @@ -1368,18 +1405,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Contraseña" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Las contraseñas no coinciden" @@ -1436,12 +1473,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1453,7 +1490,7 @@ msgstr "Perfil actualizado" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Dominio creado" @@ -1463,7 +1500,7 @@ msgstr "Dominio creado" msgid "Provider created" msgstr "Dominio creado" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Dominio creado" @@ -1473,7 +1510,7 @@ msgstr "Dominio creado" msgid "Provider name" msgstr "Dominio creado" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Perfil actualizado" @@ -1488,10 +1525,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1514,9 +1551,9 @@ msgid "" msgstr "" "Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1525,9 +1562,9 @@ msgstr "" msgid "Random address" msgstr "Dirección aleatoria" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Dirección aleatoria" @@ -1542,7 +1579,7 @@ msgstr "Destinatario(s)" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Destinatarios" @@ -1555,7 +1592,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1568,11 +1605,11 @@ msgstr "Nuevo dominio" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Recuerdame" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1592,12 +1629,12 @@ msgstr "Revendedor" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Recursos" @@ -1609,7 +1646,7 @@ msgstr "Uso de recursos" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1619,7 +1656,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1627,10 +1664,10 @@ msgstr "" msgid "Role" msgstr "Rol" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Guardar" @@ -1653,7 +1690,7 @@ msgstr "Email secundario" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1665,26 +1702,36 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Nueva cuenta" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Nueva cuenta" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +#, fuzzy +msgid "Sender address added" +msgstr "Direcciónes de remitente" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +#, fuzzy +msgid "Sender address deleted" +msgstr "Direcciónes de remitente" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Direcciónes de remitente" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1692,16 +1739,16 @@ msgstr "" msgid "Separator" msgstr "Separador" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Configuración" @@ -1713,7 +1760,7 @@ msgstr "" msgid "Simple user" msgstr "Usuario normal" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1730,7 +1777,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 #, fuzzy @@ -1742,7 +1789,11 @@ msgstr "Estadísticas" msgid "Status" msgstr "Estatus" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1750,7 +1801,7 @@ msgid "Submit" msgstr "Enviar" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Resumen" @@ -1766,6 +1817,13 @@ msgstr "" msgid "Tags" msgstr "Tags" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1794,8 +1852,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1803,7 +1861,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1813,7 +1871,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1836,7 +1894,7 @@ msgstr "Autenticación" msgid "Two-factor authentication" msgstr "Autenticación" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1851,7 +1909,7 @@ msgstr "" msgid "Type" msgstr "Tipo" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 #, fuzzy msgid "Type: " msgstr "Tipo" @@ -1875,11 +1933,20 @@ msgstr "ilimitado" msgid "Unlimited" msgstr "ilimitado" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Actualizar" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Contraseña" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1902,15 +1969,15 @@ msgstr "Usar el valor por defecto del dominio" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Desconocido" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Nombre de usuario" @@ -1931,16 +1998,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Semana" @@ -1952,11 +2020,11 @@ msgstr "Bienvenido a Modoboa" msgid "With a mailbox" msgstr "Con una mailbox" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Año" @@ -1966,13 +2034,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1985,14 +2054,19 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Crear mailbox para el administrador." diff --git a/frontend/src/locale/fi/app.po b/frontend/src/locale/fi/app.po index 7b1e05ebf..97f547795 100644 --- a/frontend/src/locale/fi/app.po +++ b/frontend/src/locale/fi/app.po @@ -19,6 +19,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "API:n dokumentaatio on saatavilla" @@ -59,42 +60,56 @@ msgstr "" msgid "Absolute time range" msgstr "Määrämittainen aikaraja" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Tili" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Tili" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Tili luotu" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Päivitä asetukset" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Tili luotu" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Tili päivitetty" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Toiminnot" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Lisää" @@ -103,11 +118,11 @@ msgstr "Lisää" msgid "Add a new domain alias" msgstr "Lisää uusi verkkotunnuksen alias" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "Lisää järjestelmänvalvoja" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "Lisää lähettäjän osoite" @@ -129,24 +144,28 @@ msgstr "Osoite" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Hallinnoidut verkkotunnukset" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "Järjestelmänvalvoja lisäsi" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "Järjestelmänvalvojan nimi" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "Järjestelmänvalvoja poistettu" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Ylläpitäjät" @@ -170,8 +189,8 @@ msgstr "Verkkotunnuksen alias poistettu" msgid "Alarm re-opened" msgstr "Verkkotunnuksen alias poistettu" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "Hälytykset" @@ -180,12 +199,12 @@ msgstr "Hälytykset" msgid "Alarms deleted" msgstr "Verkkotunnuksen alias poistettu" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -201,17 +220,17 @@ msgstr "Alias luotu" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Alias luotu" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 #, fuzzy msgid "Alias successfully deleted" msgstr "Verkkotunnuksen alias poistettu" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "Alias päivitetty" @@ -224,16 +243,16 @@ msgstr "" "Tämän postilaatikon alias-nimet. Jos haluat luoda catchall-aliaksen, " "kirjoita vain verkkotunnus (@domain.tld)." -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Aliakset" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Aliakset" @@ -242,22 +261,21 @@ msgstr "Aliakset" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "API-pääsy" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "API-tunniste kopioitu leikepöydälle" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "API-tunniste luotu" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "API-tunniste poistettu" @@ -283,13 +301,13 @@ msgstr "Hallinnoidut verkkotunnukset" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Hallinnoidut verkkotunnukset" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "Tarkastusketju" @@ -303,6 +321,14 @@ msgstr "Tunnistautuminen" msgid "Auto configuration" msgstr "Automaattinen asetusten määrittäminen" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "autoconfig-tallennetta (Mozilla) ei löydy" @@ -327,16 +353,17 @@ msgstr "Takaisin" msgid "Bind/named format. Click to copy" msgstr "Bind/nimetty muoto. Kopioi klikkaamalla" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "Peruuta" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 #, fuzzy msgid "Change password" msgstr "Vaihda salasana" @@ -345,7 +372,7 @@ msgstr "Vaihda salasana" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -368,7 +395,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -387,11 +414,11 @@ msgstr "Sulje" msgid "Closed" msgstr "Suljettu" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "Vahvista ja luo" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Vahvistus" @@ -400,10 +427,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "Onnittelut! Kaksivaiheinen tunnistus on nyt käytössä tililläsi." -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "Yhdistä" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Jatka virheestä" @@ -419,19 +450,20 @@ msgstr "Kopioi turvatunnus leikepöydälle" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "Kopioi leikepöydälle" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "Kopioi turvatunnus leikepöydälle" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Luo verkkotunnuksen ylläpitäjä" @@ -440,7 +472,7 @@ msgstr "Luo verkkotunnuksen ylläpitäjä" msgid "Create a mailbox for the administrator." msgstr "Luo ylläpitäjän postilaatikko." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Luo aliaksia" @@ -476,7 +508,7 @@ msgstr "Päivittäinen viestien lähetysraja" msgid "Daily sending limit" msgstr "Päivittäinen lähetysraja" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Työpöytä" @@ -485,7 +517,7 @@ msgstr "Työpöytä" msgid "Date" msgstr "Päivämäärä" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Päivä" @@ -506,15 +538,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "Poista" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "Poista avain" @@ -522,7 +555,7 @@ msgstr "Poista avain" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Kuvaus" @@ -530,11 +563,11 @@ msgstr "Kuvaus" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "Poista kaksivaiheinen tunnistautuminen (2FA) käytöstä" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(ei käytössä)" @@ -587,7 +620,7 @@ msgstr "DKIM-tietue löydetty" msgid "DKIM record not found" msgstr "DKIM-tietuetta ei löydy" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "DKIM-allekirjoitus" @@ -610,11 +643,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "DNS-tarkistukset" @@ -627,7 +660,7 @@ msgstr "DNS-määritykset" msgid "DNS configuration help" msgstr "DNS-määritysapu" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "DNS-tila" @@ -635,11 +668,11 @@ msgstr "DNS-tila" msgid "Do not delete account folder" msgstr "Älä poista tilikansiota" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "Älä poista verkkotunnuksen kansiota" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 #, fuzzy msgid "Do you really want to delete the domain %{ domain }?" msgstr "Haluatko todella poistaa aliaksen %{ alias }?" @@ -660,27 +693,27 @@ msgstr "Verkkotunnus" msgid "Domain administrator" msgstr "Luo verkkotunnuksen ylläpitäjä" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "Verkkotunnuksen alias luotu" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "Verkkotunnuksen alias poistettu" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "Verkkotunnuksen alias päivitetty" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Verkkotunnus luotu" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "Verkkotunnuksen oletusarvo" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -688,15 +721,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "Verkkotunnus (esim. domain.tld)" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "Verkkotunnus päivitetty" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "verkkotunnuksen oletusarvo" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia" @@ -705,7 +738,7 @@ msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia" msgid "Don't treat duplicated objects as errors" msgstr "Älä käsittele päällekkäisiä objekteja virheinä" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -733,7 +766,7 @@ msgstr "Muokkaa verkkotunnusta" msgid "Edit provider" msgstr "Sähköpostiosoite" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "Sähköposti" @@ -741,7 +774,7 @@ msgstr "Sähköposti" msgid "Email address" msgstr "Sähköpostiosoite" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 #, fuzzy msgid "Email providers" msgstr "Sähköpostiosoite" @@ -755,7 +788,7 @@ msgstr "" msgid "Empty" msgstr "Tyhjä" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "Ota käyttöön kaksivaiheinen tunnistus (2FA)" @@ -769,11 +802,12 @@ msgstr "Ota DKIM-allekirjoitus käyttöön" msgid "Enable DNS checks" msgstr "Ota DNS-tarkistukset käyttöön" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -837,12 +871,12 @@ msgid "Field is required" msgstr "Tämä kenttä on pakollinen" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "Etunimi" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Unohditko salasanasi?" @@ -854,7 +888,7 @@ msgstr "Unohditko salasanasi?" msgid "Forgot password?" msgstr "Unohditko salasanasi?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Välitä" @@ -876,6 +910,7 @@ msgstr "Välitä" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -919,6 +954,7 @@ msgstr "Yleiset tiedot" msgid "General settings" msgstr "Yleiset asetukset" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "Luo" @@ -936,6 +972,7 @@ msgstr "Lähettäjän osoitteet" msgid "help" msgstr "ohje" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -949,19 +986,19 @@ msgstr "" "Tässä on esimerkki DNS-määrityksistä (bind-muodossa). Korvaa [ ]:n välissä " "olevat arvot sopivilla arvoilla." -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "Tunniste" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identiteetit" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -973,7 +1010,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 #, fuzzy msgid "IMAP Migration" msgstr "Automaattinen asetusten määrittäminen" @@ -1011,7 +1048,7 @@ msgstr "Ilmoita yksi tai useampi vastaanottaja pilkulla (,) erotettuna" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 #, fuzzy msgid "Information" msgstr "Tiedot" @@ -1031,11 +1068,11 @@ msgstr "" msgid "Installed components" msgstr "Asennettu versio" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Asennettu versio" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "Virheellinen salasana" @@ -1044,11 +1081,11 @@ msgstr "Virheellinen salasana" msgid "Invalid port number" msgstr "Virheellinen salasana" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "Virheellinen käyttäjätunnus ja/tai salasana" @@ -1082,12 +1119,12 @@ msgid "Last modification date" msgstr "Viimeisin muutospäivä" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "Sukunimi" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Asennettu versio" @@ -1103,7 +1140,7 @@ msgstr "Taso" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "Rajoitukset" @@ -1115,23 +1152,23 @@ msgstr "" msgid "Logger" msgstr "Lokikirja" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Kirjaudu ulos" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Postilaatikko" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Postilaatikot" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Postilaatikko" @@ -1156,7 +1193,7 @@ msgstr "Viestien historia" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "Viestien lähetysraja" @@ -1164,16 +1201,16 @@ msgstr "Viestien lähetysraja" msgid "messages" msgstr "viestit" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "Viestit" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Luontipäivä" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1191,11 +1228,11 @@ msgstr "Muokattu" msgid "Modify" msgstr "Muokkaa" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Kuukausi" @@ -1208,15 +1245,15 @@ msgid "MX records" msgstr "MX-tietueet" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Nimi" @@ -1250,7 +1287,7 @@ msgid "New" msgstr "Uusi" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Uusi tili" @@ -1281,14 +1318,14 @@ msgstr "ei" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "Ei" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 #, fuzzy msgid "No associated domains" msgstr "Hallinnoidut verkkotunnukset" @@ -1301,11 +1338,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "Tälle tilille ei ole määritelty lähettäjän osoitetta" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "Ei lähetysrajaa" @@ -1317,20 +1354,20 @@ msgstr "" msgid "Not generated" msgstr "Ei luotu" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Postilaatikot" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 #, fuzzy msgid "Number of associated domains:" msgstr "Hallinnoidut verkkotunnukset" @@ -1358,12 +1395,12 @@ msgstr "" msgid "OK" msgstr "OK" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Muokkaa tiliä" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Yksi tai useampi päivitys on saatavilla" @@ -1377,7 +1414,7 @@ msgid "Opened alarms" msgstr "Avatut hälytykset" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Vaihtoehdot" @@ -1385,7 +1422,7 @@ msgstr "Vaihtoehdot" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "Parametrit päivitetty" @@ -1400,18 +1437,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Salasana" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "Salasana kopioitu leikepöydälle" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Salasanat eivät täsmää" @@ -1467,12 +1504,12 @@ msgstr "" msgid "Problem" msgstr "Ongelma" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "Jatka" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profiili" @@ -1484,7 +1521,7 @@ msgstr "Profiili päivitetty" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "Toimita CSV-tiedosto, jonka rivit ovat jossakin seuraavista muodoista:" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Etunimi" @@ -1494,7 +1531,7 @@ msgstr "Etunimi" msgid "Provider created" msgstr "API-tunniste luotu" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "API-tunniste poistettu" @@ -1504,7 +1541,7 @@ msgstr "API-tunniste poistettu" msgid "Provider name" msgstr "Etunimi" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Profiili päivitetty" @@ -1519,10 +1556,10 @@ msgid "Queue ID" msgstr "Jonon ID" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1548,9 +1585,9 @@ msgstr "" "megatavuina (MB) (oletus) tai gigatavuina (GB). Arvo 0 tarkoittaa, ettei " "kiintiötä ole." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 #, fuzzy msgid "Quota: " msgstr "Kiintiö:" @@ -1560,9 +1597,9 @@ msgstr "Kiintiö:" msgid "Random address" msgstr "Satunnainen osoite" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Satunnainen salasana" @@ -1577,7 +1614,7 @@ msgstr "Vastaanottaja(t)" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Vastaanottajat" @@ -1590,7 +1627,7 @@ msgstr "Rekisteröidy" msgid "Relative time ranges" msgstr "Suhteelliset aikavälialueet" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "Välitysrele" @@ -1603,11 +1640,11 @@ msgstr "Uusi verkkotunnus" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Muista minut" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "Poista tämä osoite" @@ -1628,13 +1665,13 @@ msgstr "Jälleenmyyjä" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 #, fuzzy msgid "Reset recovery codes" msgstr "Uudet palautuskoodit" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Resurssit" @@ -1646,7 +1683,7 @@ msgstr "Resurssien käyttö" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1656,7 +1693,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1664,10 +1701,10 @@ msgstr "" msgid "Role" msgstr "Rooli" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Tallenna" @@ -1691,7 +1728,7 @@ msgstr "Toissijainen sähköpostiosoite" msgid "Secured" msgstr "Turvallisuus" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "Turvallisuus" @@ -1703,26 +1740,34 @@ msgstr "Valitse tili" msgid "Select file" msgstr "Valitse tiedosto" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Valitse tili" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Valitse tili" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "Lähettäjän osoite lisätty" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "Lähettäjän osoite poistettu" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Lähettäjän osoitteet" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "Lähetysraja" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 #, fuzzy msgid "Sending limit: " msgstr "Lähetysraja:" @@ -1731,17 +1776,17 @@ msgstr "Lähetysraja:" msgid "Separator" msgstr "Erotin" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "Palvelu" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 #, fuzzy msgid "Service: " msgstr "Palvelu:" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Asetukset" @@ -1753,7 +1798,7 @@ msgstr "Näytä avain" msgid "Simple user" msgstr "Yksinkertainen käyttäjä" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "Määritä sähköpostiosoite" @@ -1770,7 +1815,7 @@ msgstr "SPF-tietuetta ei löydy" msgid "Start typing a name here..." msgstr "Aloita nimen kirjoittaminen tästä..." -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 #, fuzzy @@ -1782,7 +1827,11 @@ msgstr "Tilastot" msgid "Status" msgstr "Tila" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1790,7 +1839,7 @@ msgid "Submit" msgstr "Lähetä" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Yhteenveto" @@ -1806,6 +1855,13 @@ msgstr "" msgid "Tags" msgstr "Tunnisteet" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1842,8 +1898,8 @@ msgstr "Tämä sivu on vielä rakenteilla." msgid "To" msgstr "Vastaanottaja" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1851,7 +1907,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1861,7 +1917,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "Siirto" @@ -1884,7 +1940,7 @@ msgstr "Kaksivaiheinent tunnistus" msgid "Two-factor authentication" msgstr "Kaksivaiheinent tunnistus" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1902,7 +1958,7 @@ msgstr "Onnittelut! Kaksivaiheinen tunnistus on nyt käytössä tililläsi." msgid "Type" msgstr "Tyyppi" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 #, fuzzy msgid "Type: " msgstr "Tyyppi:" @@ -1926,11 +1982,20 @@ msgstr "rajoittamaton" msgid "Unlimited" msgstr "rajoittamaton" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Päivitä" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Vaihda salasana" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "Vaihda salasana" @@ -1951,15 +2016,15 @@ msgstr "Käytä verkkotunnuksen oletusarvoa" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Tuntematon" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Käyttäjätunnus" @@ -1980,16 +2045,17 @@ msgstr "Tarkista koodi" msgid "warning" msgstr "Varoitus" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "Varoitus" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Viikko" @@ -2001,11 +2067,11 @@ msgstr "Tervetuloa Modoboaan" msgid "With a mailbox" msgstr "Postilaatikolla" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "Postilaatikolla" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Vuosi" @@ -2015,13 +2081,14 @@ msgstr "kyllä" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "Kyllä" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "Olet poistamassa API-pääsytunnistetta" @@ -2034,14 +2101,19 @@ msgstr "Voit käyttää erottimena eri merkkiä." msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "API-pääsytunnistetta ei ole vielä luotu." +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "API-pääsytunnisteesi on:" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Luo satunnainen salasana järjestelmänvalvojalle." @@ -2065,12 +2137,6 @@ msgstr "API-pääsytunnisteesi on:" #~ msgid "IP address of your Modoboa server" #~ msgstr "Modoboa-palvelimen IP-osoite" -#~ msgid "Sender address added" -#~ msgstr "Lähettäjän osoite lisätty" - -#~ msgid "Sender address deleted" -#~ msgstr "Lähettäjän osoite poistettu" - #~ msgid "Settings: thislabel" #~ msgstr "Asetukset: tämä etiketti" diff --git a/frontend/src/locale/fr/app.po b/frontend/src/locale/fr/app.po index 55c8505a2..be4f238be 100644 --- a/frontend/src/locale/fr/app.po +++ b/frontend/src/locale/fr/app.po @@ -1,27 +1,42 @@ -# -# Translators: -# Che Akycow, 2023 -# Antoine Nguyen , 2023 +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. # msgid "" msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-01 14:58+0100\n" -"Last-Translator: Antoine Nguyen , 2023\n" -"Language-Team: French (https://app.transifex.com/tonio/teams/13749/fr/)\n" -"Language: fr\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2024-03-20 10:10+0100\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: easygettext\n" -"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " -"1000000 == 0 ? 1 : 2;\n" + +#~ # +#~ # Translators: +#~ # Che Akycow, 2023 +#~ # Antoine Nguyen , 2023 +#~ # +#~ msgid "" +#~ msgstr "" +#~ "Project-Id-Version: \n" +#~ "Report-Msgid-Bugs-To: \n" +#~ "POT-Creation-Date: 2023-12-01 14:58+0100\n" +#~ "Last-Translator: Antoine Nguyen , 2023\n" +#~ "Language-Team: French (https://app.transifex.com/tonio/teams/13749/fr/)\n" +#~ "Language: fr\n" +#~ "MIME-Version: 1.0\n" +#~ "Content-Type: text/plain; charset=UTF-8\n" +#~ "Content-Transfer-Encoding: 8bit\n" +#~ "Generated-By: easygettext\n" +#~ "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +#~ "1000000 == 0 ? 1 : 2;\n" #: src/components/admin/imap_migration/ProviderCreationForm.vue:41 msgid "(the domain will be created locally)" -msgstr "" +msgstr "(Le domaine sera créé automatiquement)" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "Une documentation de l'API est disponible" @@ -64,42 +79,53 @@ msgstr "" msgid "Absolute time range" msgstr "Plage de temps absolue" -#: src/stores/identities.store.js:67 -#, fuzzy +#: src/stores/identities.store.js:72 msgid "account" -msgstr "Compte" +msgstr "compte" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Compte" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Compte créé" -#: src/stores/accounts.store.js:62 -#, fuzzy -msgid "Account successfully deleted" -msgstr "Compte supprimé" +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "Paramètres du compte" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:67 +msgid "Account successfully deleted" +msgstr "Compte supprimé avec succès" + +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Compte mis à jour" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Actions" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "Activez votre réponse automatique à partir de cette date" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "Activez votre réponse automatique jusqu'à cette date" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Ajouter" @@ -108,18 +134,17 @@ msgstr "Ajouter" msgid "Add a new domain alias" msgstr "Ajouter un nouvel alias de domaine" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "Ajouter un administrateur" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "Ajouter l'adresse de l'expéditeur" #: src/components/admin/identities/DomainAdminDomains.vue:16 -#, fuzzy msgid "Add/Remove from the domain page" -msgstr "Nom du domaine à migrer" +msgstr "Ajouter/Supprimer depuis la page du domaine" #: src/components/admin/domains/DNSDetail.vue:171 #: src/components/admin/identities/AccountSenderAddresses.vue:73 @@ -134,31 +159,34 @@ msgstr "Adresse" msgid "Address (hostname or IP)" msgstr "Adresse (nom d'hôte ou IP)" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Domaines administrés" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "L'administrateur a ajouté" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "Nom de l'administrateur" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "Administrateur supprimé" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Administrateurs" #: src/components/admin/domains/DomainAdminList.vue:6 -#, fuzzy msgid "Administrators of" -msgstr "Administrateurs" +msgstr "Administrateurs de" #: src/components/admin/alarms/AlarmList.vue:188 msgid "Alarm closed" @@ -172,8 +200,8 @@ msgstr "Alarme supprimée" msgid "Alarm re-opened" msgstr "Alarme ré-ouverte" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "Alarmes" @@ -181,12 +209,11 @@ msgstr "Alarmes" msgid "Alarms deleted" msgstr "Alarmes supprimées" -#: src/stores/identities.store.js:97 -#, fuzzy +#: src/stores/identities.store.js:106 msgid "alias" -msgstr "Alias" +msgstr "alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -194,25 +221,22 @@ msgid "Alias" msgstr "Alias" #: src/components/admin/identities/form_steps/AccountAliasForm.vue:50 -#, fuzzy msgid "Alias already added" -msgstr "Alias créé" +msgstr "Alias déjà ajouté" #: src/components/admin/identities/AliasCreationForm.vue:130 msgid "Alias already exists, redirecting to edit page" -msgstr "" +msgstr "L'alias existe déjà, redirection vers la page de modification" -#: src/stores/aliases.store.js:48 -#, fuzzy +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" -msgstr "Alias créé" +msgstr "Alias créé avec succès" -#: src/stores/aliases.store.js:61 -#, fuzzy +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" -msgstr "Alias supprimé" +msgstr "Alias supprimé avec succès" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "Alias mis à jour" @@ -225,40 +249,38 @@ msgstr "" "Alias(s) de cette boîte aux lettres. Pour créer un alias fourre-tout, entrer " "uniquement le nom du domaine (@domain.tld)." -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:124 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" -msgstr "Alias" +msgstr "Alias :" #: src/components/admin/dmarc/DmarcAligmentChart.vue:5 msgid "Alignment" msgstr "Alignement" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "Accès API" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "Jeton API copié dans votre presse-papier" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "Jeton API créé" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "Jeton API supprimé" @@ -268,28 +290,25 @@ msgid "Apply" msgstr "Appliquer" #: src/components/admin/identities/IdentityList.vue:231 -#, fuzzy msgid "Are you sure you want to delete this alias?" -msgstr "Voulez-vous réellement supprimer l'alias %{ alias }?" +msgstr "Voulez-vous réellement supprimer cet alias ?" #: src/components/admin/identities/IdentityList.vue:205 -#, fuzzy msgid "Are you sure you want to delete this identity ?" -msgstr "Voulez-vous vraiment supprimer les identités sélectionnées?" +msgstr "Voulez-vous réellement supprimer cette identité ?" #: src/components/admin/imap_migration/ProviderCreationForm.vue:42 -#, fuzzy msgid "Associated domain" -msgstr "Domaines associés" +msgstr "Domaine associé" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "Domaines associés" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "Journal des modifications" @@ -303,6 +322,14 @@ msgstr "Authentification" msgid "Auto configuration" msgstr "Configuration automatique" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "Message de réponse automatique" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "Message de réponse automatique mis à jour" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "Enregistrement autoconfig (Mozilla) introuvable" @@ -327,16 +354,17 @@ msgstr "Retour" msgid "Bind/named format. Click to copy" msgstr "Format bind/named. Cliquez pour copier" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "Annuler" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Modifier le mot de passe" @@ -344,7 +372,7 @@ msgstr "Modifier le mot de passe" msgid "Check connection:" msgstr "Vérifier la connexion :" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "Consulter la liste suivante pour trouver des composants associés" @@ -364,10 +392,10 @@ msgstr "Choisissez un rôle" #: src/components/account/TwoFactorAuthForm.vue:24 msgid "Click here to copy the key" -msgstr "" +msgstr "Cliquer ici pour copier la clé" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -384,11 +412,11 @@ msgstr "Fermer l'alarme" msgid "Closed" msgstr "Fermé" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "Confirmer et créer" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Confirmation" @@ -399,10 +427,14 @@ msgstr "" "Félicitations ! l'authentification à double facteur est maintenant activée " "sur votre compte" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "Connexion" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "Contenu" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Continuer en cas d'erreur" @@ -413,25 +445,25 @@ msgstr "" "Contrôler si ce domaine sera autorisé à envoyer et recevoir des messages." #: src/components/admin/domains/DNSDetail.vue:114 -#, fuzzy msgid "Copy key to clipboard" -msgstr "Copier le jeton dans la presse-papiers" +msgstr "Copier la clé dans la presse-papiers" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "Copier dans le presse-papiers" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "Copier le jeton dans la presse-papiers" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" -msgstr "" +msgstr "Impossible de sauvegarder les paramètres" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Créer un administrateur de domaine" @@ -440,7 +472,7 @@ msgstr "Créer un administrateur de domaine" msgid "Create a mailbox for the administrator." msgstr "Créer une boite aux lettres pour l'administrateur" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Créer des alias" @@ -461,7 +493,7 @@ msgstr "Chiffrer les mots de passe" #: src/mixins/importExport.js:39 msgid "CSV seems to be badly formatted" -msgstr "" +msgstr "Le fichier CSV semble être mal formaté" #: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:4 msgid "Current password" @@ -476,7 +508,7 @@ msgstr "Limite quotidienne d'envoi de messages" msgid "Daily sending limit" msgstr "Limite d'envoi quotidienne" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Tableau de bord" @@ -485,7 +517,7 @@ msgstr "Tableau de bord" msgid "Date" msgstr "Date" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Jour" @@ -506,15 +538,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "Supprimer" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "Supprimer le jeton" @@ -522,7 +555,7 @@ msgstr "Supprimer le jeton" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Description" @@ -530,14 +563,13 @@ msgstr "Description" msgid "Detail" msgstr "Détail" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "Désactiver l'authentification à double facteur" -#: src/components/admin/domains/DomainList.vue:80 -#, fuzzy +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" -msgstr "(désactivé)" +msgstr "désactivé" #: src/components/admin/domains/DNSStatusChip.vue:18 msgid "Disabled" @@ -548,16 +580,14 @@ msgid "DKIM key" msgstr "Clé DKIM" #: src/components/admin/domains/DNSDetail.vue:182 -#, fuzzy msgid "DKIM key copied to clipboard" -msgstr "Jeton API copié dans votre presse-papier" +msgstr "Clé DKIM copiée dans le presse-papier" #: src/components/admin/domains/DNSDetail.vue:218 -#, fuzzy msgid "" "DKIM key does not seem to be genrated yet or has failed. Do you want to " "requeue the job?" -msgstr "Des clés DKIM existent déjà pour ce domaine. Voulez-vous les écraser?" +msgstr "La génération de la clé DKIM ne semble pas encore avoir eu lieu ou a échoué. Souhaitez vous relancer l'opération ?" #: src/components/admin/domains/DomainCreationForm.vue:208 #: src/components/admin/domains/form_steps/DomainDNSForm.vue:22 @@ -585,7 +615,7 @@ msgstr "Enregistrement DKIM trouvé" msgid "DKIM record not found" msgstr "Enregistrement DKIM introuvable" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "Signature DKIM" @@ -608,16 +638,15 @@ msgstr "La support DMARC ne semble pas actif pour ce domaine." #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "Vérifications DNS" #: src/components/admin/domains/DomainDNSConfig.vue:4 -#, fuzzy msgid "DNS configuration for " msgstr "Configuration DNS pour" @@ -625,7 +654,7 @@ msgstr "Configuration DNS pour" msgid "DNS configuration help" msgstr "Aide à la configuration du DNS" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "Statut DNS" @@ -633,19 +662,17 @@ msgstr "Statut DNS" msgid "Do not delete account folder" msgstr "Ne pas supprimer le dossier du compte" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "Ne pas supprimer le dossier des domaines" -#: src/components/admin/domains/DomainList.vue:236 -#, fuzzy +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" -msgstr "Voulez-vous réellement supprimer l'alias %{ alias }?" +msgstr "Voulez-vous réellement supprimer le domaine %{ domaine } ?" #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:55 -#, fuzzy msgid "domain" -msgstr "Domaine" +msgstr "domaine" #: src/components/admin/alarms/AlarmList.vue:94 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:21 @@ -658,27 +685,27 @@ msgstr "Domaine" msgid "Domain administrator" msgstr "Administrateur de domaine" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "Alias de domaine créé" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "Alias de domaine supprimé" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "Alias de domaine mise à jour" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Domaine créé" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "Valeur du domaine par défaut" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "Supprimer le domaine" @@ -686,15 +713,15 @@ msgstr "Supprimer le domaine" msgid "Domain name (ex: domain.tld)" msgstr "Nom de domaine (ex: domaine.tld)" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "Domaine mise à jour" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "La valeur par défaut du domaine" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Domaines" @@ -703,7 +730,7 @@ msgstr "Domaines" msgid "Don't treat duplicated objects as errors" msgstr "Ne pas traiter les objets dupliqués comme des erreurs" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -730,7 +757,7 @@ msgstr "Modifier l'alias de domaine" msgid "Edit provider" msgstr "Modifier le fournisseur" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "E-mail" @@ -738,20 +765,20 @@ msgstr "E-mail" msgid "Email address" msgstr "Adresse email" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "Fournisseurs de messagerie" #: src/components/login/PasswordRecoveryForm.vue:104 #: src/views/login/PasswordRecoveryForm.vue:103 msgid "Email sent, please check your inbox" -msgstr "" +msgstr "Email envoyé, veuillez vérifier votre boite aux lettres" #: src/components/tools/CreationSummary.vue:45 msgid "Empty" msgstr "Vide" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "Activer 2FA" @@ -765,11 +792,12 @@ msgstr "Activer la signature DKIM" msgid "Enable DNS checks" msgstr "Activer les tests DNS" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -829,29 +857,26 @@ msgid "Feel free to improve the translations" msgstr "" #: src/plugins/rules.js:27 -#, fuzzy msgid "Field is required" msgstr "Ce champ est requis" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "Prénom" -#: src/components/login/LoginForm.vue:96 -#, fuzzy +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "Mot de passe oublié ?" #: src/components/login/PasswordRecoveryChangeForm.vue:11 #: src/components/login/PasswordRecoveryForm.vue:12 #: src/views/login/PasswordRecoveryForm.vue:17 -#, fuzzy msgid "Forgot password?" msgstr "Mot de passe oublié ?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Transfert" @@ -874,6 +899,7 @@ msgstr "Transféré" msgid "Forwarders with ARC" msgstr "Transporteur avec ARC" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -916,6 +942,7 @@ msgstr "Information générale" msgid "General settings" msgstr "Paramètres généraux " +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "Générer" @@ -925,18 +952,18 @@ msgid "Generate a new DKIM key" msgstr "Générer une nouvelle clé DKIM" #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:38 -#, fuzzy msgid "Generated address" -msgstr "Adresses d'expédition" +msgstr "Adresse générée" #: src/components/admin/identities/form_steps/AccountRoleForm.vue:101 msgid "help" msgstr "aide" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" -msgstr "" +msgstr "ici" #: src/components/admin/domains/DomainDNSConfig.vue:9 msgid "" @@ -946,19 +973,19 @@ msgstr "" "Voici un exemplaire de configuration DNS (format bind). Remplacer les " "valeurs entre [ ] par les valeurs appropriées." -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "Identification" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identités" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -974,7 +1001,7 @@ msgstr "" "Si vous l'avez récemment configuré, veuillez attendre que le premier rapport " "soit reçu et traité. " -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "Migration IMAP" @@ -1008,14 +1035,13 @@ msgstr "Indiquer un ou plusieurs destinataires séparés par une virgule (,) " #: src/views/login/PasswordRecoveryForm.vue:102 msgid "Info" -msgstr "" +msgstr "Info" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Information" #: src/components/account/TwoFactorAuthForm.vue:34 -#, fuzzy msgid "" "Install a soft token authenticator like FreeOTP or Google Authenticator from " "your application repository and use that app to scan this QR code." @@ -1029,24 +1055,23 @@ msgstr "" msgid "Installed components" msgstr "Composants installés" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Version installée" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "Mot de passe incorrect" #: src/plugins/rules.js:41 -#, fuzzy msgid "Invalid port number" -msgstr "Spécifier un numéro de port correct" +msgstr "Numéro de port incorrect" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "Jeton de réinitialisation incorrect." -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "Nom d'utilisateur et/ou mot de passe incorrect" @@ -1056,7 +1081,6 @@ msgstr "" "La connexion IMAP est-elle sécurisée via l'utilisation de SSL/TLS ou StartTLS" #: src/views/Dashboard.vue:9 -#, fuzzy msgid "" "It will present a summary of your Modoboa server's status and some useful " "information about the product." @@ -1081,12 +1105,12 @@ msgid "Last modification date" msgstr "Date de dernière modification" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "Nom de famille" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "Dernière version" @@ -1101,7 +1125,7 @@ msgstr "Niveau" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "Limites" @@ -1113,24 +1137,22 @@ msgstr "Domaine local (optionnel)" msgid "Logger" msgstr "Logger" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Déconnexion" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Boîte aux lettres" -#: src/components/admin/identities/AccountEditForm.vue:164 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" -msgstr "Boîtes aux lettres" +msgstr "Alias de boîte aux lettres :" -#: src/components/admin/identities/AccountEditForm.vue:157 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "Boîte aux lettres" @@ -1141,7 +1163,7 @@ msgstr "Boîtes aux lettres" #: src/components/admin/domains/DomainSummary.vue:20 #: src/components/admin/identities/AccountSummary.vue:49 msgid "MB" -msgstr "" +msgstr "Mo" #: src/components/admin/alarms/AlarmList.vue:96 #: src/components/admin/logs/AuditTrailList.vue:52 @@ -1154,7 +1176,7 @@ msgstr "Historique des messages" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "Limite d'envoi des messages" @@ -1162,22 +1184,22 @@ msgstr "Limite d'envoi des messages" msgid "messages" msgstr "messages" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "Messages" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "Migration supprimée" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "Migrations" #: src/plugins/rules.js:32 msgid "Minimum length is %{ length }" -msgstr "" +msgstr "La taille minimale est %{ length }" #: src/components/admin/identities/AliasSummary.vue:12 msgid "Modified" @@ -1187,32 +1209,32 @@ msgstr "Modifié" msgid "Modify" msgstr "Modifier" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" -msgstr "" +msgstr "Supervision" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Mois" #: src/plugins/rules.js:37 msgid "Must be a numeric value or empty" -msgstr "" +msgstr "Valeur numérique requise, ou pas de valeur" #: src/components/admin/domains/DNSDetail.vue:15 msgid "MX records" msgstr "Enregistrements MX" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Nom" @@ -1225,12 +1247,10 @@ msgid "Name of the domain to migrate" msgstr "Nom du domaine à migrer" #: src/components/admin/imap_migration/ProviderForm.vue:14 -#, fuzzy msgid "Name:" msgstr "Nom :" #: src/components/admin/domains/DomainEditForm.vue:16 -#, fuzzy msgid "Name: " msgstr "Nom :" @@ -1245,7 +1265,7 @@ msgid "New" msgstr "Nouvelle" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Nouveau compte" @@ -1275,57 +1295,54 @@ msgstr "non" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "Non" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "Aucun domaine associé" #: src/mixins/importExport.js:8 msgid "No data to export" -msgstr "" +msgstr "Aucune donnée à exporter" #: src/components/admin/identities/DomainAdminDomains.vue:13 msgid "No domain managed" -msgstr "" +msgstr "Aucun domaine géré" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "Aucune adresse d'expéditeur définie pour ce compte" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "Pas de limite d'envoi" #: src/plugins/rules.js:7 msgid "Not a valid email" -msgstr "" +msgstr "Ce n'est pas un email correct" #: src/components/admin/domains/DNSDetail.vue:126 msgid "Not generated" msgstr "Non générée" -#: src/components/admin/identities/AccountEditForm.vue:165 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" -msgstr "Nombre de domaines associés :" +msgstr "Nombre d'alias autorisé :" -#: src/components/admin/identities/AccountEditForm.vue:158 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" -msgstr "Nombre de domaines associés :" +msgstr "Nombre de boites aux lettres autorisé :" -#: src/components/admin/identities/AccountEditForm.vue:125 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" -msgstr "Nombre de domaines associés :" +msgstr "Nombre d'alias associés :" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "Nombre de domaines associés :" @@ -1352,11 +1369,11 @@ msgstr "Ok" msgid "OK" msgstr "OK" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "Ancien compte" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Une ou plusieurs mise à jour sont disponibles" @@ -1369,7 +1386,7 @@ msgid "Opened alarms" msgstr "Alarmes ouvertes" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Options" @@ -1377,7 +1394,7 @@ msgstr "Options" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "Paramètres mis à jour" @@ -1392,21 +1409,20 @@ msgstr "Sources partiellement fiables / Transitaires" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Mot de passe" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "Mot de passe copié dans la presse-papier" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 -#, fuzzy +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" -msgstr "Les mots de passe diffèrent" +msgstr "Le mot de passe est différent" #: src/components/login/PasswordRecoverySmsTotpForm.vue:12 msgid "Password recovery" @@ -1442,7 +1458,7 @@ msgstr "Code Pin" #: src/components/admin/identities/form_steps/AliasRecipientForm.vue:62 msgid "Please add at least one recipient." -msgstr "" +msgstr "Veuillez ajouter au moins un destinataire" #: src/components/login/PasswordRecoveryForm.vue:16 #: src/views/login/PasswordRecoveryForm.vue:21 @@ -1458,12 +1474,12 @@ msgstr "Port" msgid "Problem" msgstr "Problème" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "Procéder" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profil" @@ -1476,7 +1492,7 @@ msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" "Fournir un fichier CSV dont les lignes respectent l'un des formats suivants:" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "Fournisseur" @@ -1484,7 +1500,7 @@ msgstr "Fournisseur" msgid "Provider created" msgstr "Fournisseur créé" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "Fournisseur supprimé" @@ -1492,7 +1508,7 @@ msgstr "Fournisseur supprimé" msgid "Provider name" msgstr "Nom du fournisseur" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "Fournisseur mis à jour" @@ -1505,10 +1521,10 @@ msgid "Queue ID" msgstr "ID de file" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1533,21 +1549,20 @@ msgstr "" "Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo " "(défaut) ou Go. Une valeur à 0 signifie pas de quota." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 -#, fuzzy +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " -msgstr "Quota:" +msgstr "Quota :" #: src/components/admin/identities/AliasCreationForm.vue:56 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:6 msgid "Random address" msgstr "Adresse aléatoire" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Mot de passe aléatoire" @@ -1562,7 +1577,7 @@ msgstr "Destinataire(s)" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Destinataires" @@ -1575,24 +1590,23 @@ msgstr "Enregistrer" msgid "Relative time ranges" msgstr "Intervalles des temps relatifs" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "Relais" #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:60 -#, fuzzy msgid "relaydomain" -msgstr "Nouveau domaine" +msgstr "domaine relais" #: src/components/admin/alarms/AlarmList.vue:116 msgid "Reload" msgstr "Recharger" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Se souvenir de moi" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "Supprimer cette adresse" @@ -1612,12 +1626,12 @@ msgstr "Revendeur" msgid "Resend SMS." msgstr "Renvoyer le SMS." -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "Rénitialiser les codes de récupération" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Ressources" @@ -1629,7 +1643,7 @@ msgstr "Utilisation des ressources" msgid "Retry reset" msgstr "Réessayer la rénitialisation" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1639,7 +1653,7 @@ msgstr "Réessayer la rénitialisation" msgid "Return to login" msgstr "Retour à la connexion" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1647,10 +1661,10 @@ msgstr "Retour à la connexion" msgid "Role" msgstr "Rôle" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Enregistrer" @@ -1673,7 +1687,7 @@ msgstr "E-mail secondaire" msgid "Secured" msgstr "Sécurisé" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "Sécurité" @@ -1685,27 +1699,32 @@ msgstr "Sélectionner un compte" msgid "Select file" msgstr "Sélectionner un fichier" -#: src/components/admin/identities/AccountEditForm.vue:92 -#, fuzzy +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" -msgstr "Sélectionner un compte" +msgstr "Envoi uniquement" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 -#, fuzzy msgid "Send only account" -msgstr "Sélectionner un compte" +msgstr "Compte limité à l'envoi" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "Adresse d'expédition ajoutée" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "Adresse d'expédition supprimée" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Adresses d'expédition" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "Limite d'envoi" -#: src/components/admin/domains/DomainEditForm.vue:84 -#, fuzzy +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "Limite d'envoi :" @@ -1713,17 +1732,16 @@ msgstr "Limite d'envoi :" msgid "Separator" msgstr "Séparateur" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "Service" -#: src/components/admin/domains/DomainEditForm.vue:116 -#, fuzzy +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "Service :" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Paramètres" @@ -1735,7 +1753,7 @@ msgstr "Afficher la clé" msgid "Simple user" msgstr "Utilisateur simple" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "Spécifier une adresse e-mail" @@ -1752,7 +1770,7 @@ msgstr "Enregistrement SPF introuvable" msgid "Start typing a name here..." msgstr "Commencer à saisir un nom ici..." -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1763,7 +1781,11 @@ msgstr "Statistiques" msgid "Status" msgstr "Statut" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "Sujet" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1771,7 +1793,7 @@ msgid "Submit" msgstr "Soumettre" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Résumé" @@ -1781,12 +1803,19 @@ msgstr "Super administrateur" #: src/components/tools/EmailField.vue:58 msgid "SuperAdmins cannot own a mailbox" -msgstr "" +msgstr "Les SuperAdmins ne peuvent pas avoir de boite aux lettres" #: src/components/admin/identities/IdentityList.vue:120 msgid "Tags" msgstr "Tags" +#: src/components/account/AutoReplyForm.vue:23 +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 "Le contenu de votre réponse. Vous pouvez utiliser les variables suivantes, qui seront automatiquement remplacées par les valeurs appropriées : %(name)s, %(fromdate)s, %(untildate)s" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1797,7 +1826,6 @@ msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:9 #: src/components/account/TwoFactorAuthForm.vue:57 -#, fuzzy 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 " @@ -1812,7 +1840,7 @@ msgstr "" #: src/components/account/ProfileForm.vue:34 msgid "there" -msgstr "" +msgstr "ici" #: src/views/Dashboard.vue:6 msgid "This page is still under construction." @@ -1823,8 +1851,8 @@ msgstr "Cette page est en cours de construction." msgid "To" msgstr "A" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1832,7 +1860,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "Trop de tentatives sans succès, veuillez réessayer plus tard" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "Total" @@ -1842,7 +1870,7 @@ msgstr "TOTP envoyé." #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "Transport" @@ -1855,16 +1883,14 @@ msgid "Trusted sources" msgstr "Sources de confiance" #: src/components/account/TwoFactorAuthForm.vue:6 -#, fuzzy msgid "Two factor authentication" msgstr "Authentification à double facteur" #: src/components/login/TwofaForm.vue:6 -#, fuzzy msgid "Two-factor authentication" msgstr "Authentification à double facteur" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1874,19 +1900,15 @@ msgstr "" "votre compte." #: src/components/account/TwoFactorAuthForm.vue:71 -#, fuzzy msgid "Two-Factor Authentication is enabled for your account." -msgstr "" -"Félicitations ! l'authentification à double facteur est maintenant activée " -"sur votre compte" +msgstr "L'authentification à double facteur est maintenant activée sur votre compte" #: src/components/admin/domains/DomainCreationForm.vue:164 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:13 msgid "Type" msgstr "Type" -#: src/components/admin/domains/DomainEditForm.vue:19 -#, fuzzy +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "Type :" @@ -1905,15 +1927,22 @@ msgstr "illimité" #: src/components/admin/domains/DomainSummary.vue:18 #: src/components/admin/domains/DomainSummary.vue:25 #: src/components/admin/identities/AccountSummary.vue:38 -#, fuzzy msgid "Unlimited" msgstr "illimité" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "Jusqu'au" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Mettre à jour" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "Mettre à jour la réponse automatique" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "Mise à jour du mot de passe" @@ -1936,14 +1965,14 @@ msgstr "" "L'utilisateur semble erroné, revenez à la connexion ou redémarrer " "réinitialisez le processus " -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "Utilisateur inconnu." -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Nom d'utilisateur" @@ -1960,20 +1989,20 @@ msgid "Verify code" msgstr "Vérifier le code" #: src/components/admin/domains/DNSDetail.vue:217 -#, fuzzy msgid "warning" msgstr "Avertissement" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "Avertissement" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Semaine" @@ -1985,11 +2014,11 @@ msgstr "Bienvenue dans Modoboa" msgid "With a mailbox" msgstr "Avec une boite aux lettres" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "Avec boîte aux lettres" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Année" @@ -1999,13 +2028,14 @@ msgstr "oui" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "Oui" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "Vous êtes sur le point de supprimer votre jeton d'accès à l'API" @@ -2016,16 +2046,21 @@ msgstr "Vous pouvez utiliser autre caractère comme séparateur" #: src/components/admin/imap_migration/form_steps/ProviderAssociatedForm.vue:115 msgid "You need to bind at least one domain to the provider." -msgstr "" +msgstr "Vous devez associer au moins un domaine à ce fournisseur." +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "Votre jeton API n'a pas encore été généré." +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "Votre jeton API est :" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Générer un mot de passe aléatoire pour cet administrateur." @@ -2056,12 +2091,6 @@ msgstr "Votre jeton API est :" #~ msgid "IP address of your Modoboa server" #~ msgstr "Adresse IP de votre serveur Modoboa" -#~ msgid "Sender address added" -#~ msgstr "Adresse d'expédition ajoutée" - -#~ msgid "Sender address deleted" -#~ msgstr "Adresse d'expédition supprimée" - #~ msgid "Settings: thislabel" #~ msgstr "Paramètres : thislabel" diff --git a/frontend/src/locale/it/app.po b/frontend/src/locale/it/app.po index a1bd397f6..fdaad5830 100644 --- a/frontend/src/locale/it/app.po +++ b/frontend/src/locale/it/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,42 +53,56 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Account" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Account" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Account creato" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Impostazioni" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Account creato" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Account aggiornato" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Azioni" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Aggiungi" @@ -96,11 +111,11 @@ msgstr "Aggiungi" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -121,24 +136,28 @@ msgstr "Indirizzo" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Domini amministrati" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Amministratori" @@ -160,8 +179,8 @@ msgstr "Data di creazione" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -169,12 +188,12 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -190,16 +209,16 @@ msgstr "Alias creato" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Alias creato" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Alias creato" @@ -211,16 +230,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Alias" @@ -229,23 +248,22 @@ msgstr "Alias" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "Accesso API" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Account creato" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 #, fuzzy msgid "API token deleted" @@ -270,13 +288,13 @@ msgstr "Domini amministrati" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Domini amministrati" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -290,6 +308,14 @@ msgstr "Autenticazione" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -314,16 +340,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "Formato bind/named" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Cambia password" @@ -331,7 +358,7 @@ msgstr "Cambia password" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -353,7 +380,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -371,11 +398,11 @@ msgstr "Chiudi" msgid "Closed" msgstr "Chiudi" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Conferma" @@ -384,10 +411,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Continuare in caso di errore" @@ -402,19 +433,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Crea un amministratore di dominio" @@ -423,7 +455,7 @@ msgstr "Crea un amministratore di dominio" msgid "Create a mailbox for the administrator." msgstr "Crea una casella di posta per l'amministratore." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Crea alias" @@ -460,7 +492,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -469,7 +501,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Giorno" @@ -491,15 +523,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -507,7 +540,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Descrizione" @@ -515,12 +548,12 @@ msgstr "Descrizione" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 #, fuzzy msgid "Disable 2FA" msgstr "Disabilitato" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(disabilitato)" @@ -569,7 +602,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -592,11 +625,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -608,7 +641,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "Stato del DNS" @@ -616,11 +649,11 @@ msgstr "Stato del DNS" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -640,28 +673,28 @@ msgstr "Dominio" msgid "Domain administrator" msgstr "Amministratore di dominio" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Dominio creato" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 #, fuzzy msgid "Domain default value" msgstr "Usa il valore predefinito" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -669,16 +702,16 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 #, fuzzy msgid "domain's default value" msgstr "Usa il valore predefinito" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Domini" @@ -687,7 +720,7 @@ msgstr "Domini" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -717,7 +750,7 @@ msgstr "" msgid "Edit provider" msgstr "Indirizzo email" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -725,7 +758,7 @@ msgstr "" msgid "Email address" msgstr "Indirizzo email" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 #, fuzzy msgid "Email providers" msgstr "Indirizzo email" @@ -739,7 +772,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 #, fuzzy msgid "Enable 2FA" msgstr "Abilitato" @@ -754,11 +787,12 @@ msgstr "Abilita la firma DKIM" msgid "Enable DNS checks" msgstr "Abilita i controlli DNS" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -821,13 +855,13 @@ msgid "Field is required" msgstr "Questo campo è obbligatorio" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #, fuzzy msgid "First name" msgstr "Nome completo" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Password dimenticata?" @@ -839,7 +873,7 @@ msgstr "Password dimenticata?" msgid "Forgot password?" msgstr "Password dimenticata?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Inoltra" @@ -862,6 +896,7 @@ msgstr "Inoltra" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -906,6 +941,7 @@ msgstr "" msgid "General settings" msgstr "Generale" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -924,6 +960,7 @@ msgstr "Indirizzi mittenti" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -935,19 +972,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identità" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -959,7 +996,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -995,7 +1032,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Informazioni" @@ -1010,11 +1047,11 @@ msgstr "" msgid "Installed components" msgstr "Versione installata" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Versione installata" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Password casuale" @@ -1023,11 +1060,11 @@ msgstr "Password casuale" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1058,12 +1095,12 @@ msgid "Last modification date" msgstr "Data dell'ultima modifica" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Versione installata" @@ -1079,7 +1116,7 @@ msgstr "Livello" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1091,23 +1128,23 @@ msgstr "" msgid "Logger" msgstr "Logger" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Esci" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Caselle di posta" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Caselle di posta" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Caselle di posta" @@ -1133,7 +1170,7 @@ msgstr "Utilizzo" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1141,16 +1178,16 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Data di creazione" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1168,11 +1205,11 @@ msgstr "Modificato" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Mese" @@ -1185,15 +1222,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Nome" @@ -1226,7 +1263,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Nuovo account" @@ -1257,14 +1294,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 #, fuzzy msgid "No associated domains" msgstr "Domini amministrati" @@ -1277,11 +1314,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1293,20 +1330,20 @@ msgstr "" msgid "Not generated" msgstr "Non generata" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Caselle di posta" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 #, fuzzy msgid "Number of associated domains:" msgstr "Domini amministrati" @@ -1330,12 +1367,12 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Nuovo account" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Sono disponibili nuovi aggiornamenti" @@ -1348,7 +1385,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Opzioni" @@ -1356,7 +1393,7 @@ msgstr "Opzioni" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 #, fuzzy msgid "Parameters updated" msgstr "Profilo aggiornato" @@ -1372,18 +1409,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Password" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Le password non corrispondono" @@ -1440,12 +1477,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profilo" @@ -1457,7 +1494,7 @@ msgstr "Profilo aggiornato" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Dominio creato" @@ -1467,7 +1504,7 @@ msgstr "Dominio creato" msgid "Provider created" msgstr "Dominio creato" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Dominio creato" @@ -1477,7 +1514,7 @@ msgstr "Dominio creato" msgid "Provider name" msgstr "Dominio creato" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Profilo aggiornato" @@ -1492,10 +1529,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1520,9 +1557,9 @@ msgstr "" "Spazio massimo confiviso tra le mailbox. Può essere espresso in KB, MB " "(predefinito) o GB. Il valore 0 indica nessun limite." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 #, fuzzy msgid "Quota: " msgstr "Dimensione massima" @@ -1532,9 +1569,9 @@ msgstr "Dimensione massima" msgid "Random address" msgstr "Indirizzo casuale" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Password casuale" @@ -1549,7 +1586,7 @@ msgstr "Destinatario(i)" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Destinatari" @@ -1562,7 +1599,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1575,11 +1612,11 @@ msgstr "Nuovo dominio" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Ricordami" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1600,12 +1637,12 @@ msgstr "Rivenditore" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Risorse" @@ -1617,7 +1654,7 @@ msgstr "Utilizzo risorse" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1627,7 +1664,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1635,10 +1672,10 @@ msgstr "" msgid "Role" msgstr "Ruolo" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Salva" @@ -1661,7 +1698,7 @@ msgstr "Email secondaria" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1673,26 +1710,36 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Nuovo account" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Nuovo account" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +#, fuzzy +msgid "Sender address added" +msgstr "Indirizzi mittenti" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +#, fuzzy +msgid "Sender address deleted" +msgstr "Indirizzi mittenti" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Indirizzi mittenti" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1700,16 +1747,16 @@ msgstr "" msgid "Separator" msgstr "Separatore" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Impostazioni" @@ -1721,7 +1768,7 @@ msgstr "Visualizza chiave" msgid "Simple user" msgstr "Utente semplice" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1738,7 +1785,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 #, fuzzy @@ -1750,7 +1797,11 @@ msgstr "Statistiche" msgid "Status" msgstr "Stato" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1758,7 +1809,7 @@ msgid "Submit" msgstr "Invia" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Sommario" @@ -1774,6 +1825,13 @@ msgstr "" msgid "Tags" msgstr "Tag" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1802,8 +1860,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1811,7 +1869,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "Totale" @@ -1821,7 +1879,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "Trasporto" @@ -1844,7 +1902,7 @@ msgstr "Autenticazione" msgid "Two-factor authentication" msgstr "Autenticazione" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1859,7 +1917,7 @@ msgstr "" msgid "Type" msgstr "Tipo" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 #, fuzzy msgid "Type: " msgstr "Tipo" @@ -1883,11 +1941,20 @@ msgstr "senza limiti" msgid "Unlimited" msgstr "senza limiti" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Aggiorna" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Password" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1910,15 +1977,15 @@ msgstr "Usa il valore predefinito" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Sconosciuto" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Nome utente" @@ -1939,16 +2006,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Settimana" @@ -1960,11 +2028,11 @@ msgstr "Benvenuti in Modoboa" msgid "With a mailbox" msgstr "Con una casella di posta" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Anno" @@ -1974,13 +2042,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1993,14 +2062,19 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Genera una password casuale per l'amministratore." diff --git a/frontend/src/locale/ja/app.po b/frontend/src/locale/ja/app.po index a61a3c694..a7646719c 100644 --- a/frontend/src/locale/ja/app.po +++ b/frontend/src/locale/ja/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,40 +53,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -94,11 +108,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -119,24 +133,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -156,8 +174,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -165,11 +183,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -184,15 +202,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -203,16 +221,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -220,22 +238,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -258,12 +275,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -277,6 +294,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -301,16 +326,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -318,7 +344,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -339,7 +365,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -356,11 +382,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -369,10 +395,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -387,19 +417,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -408,7 +439,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -444,7 +475,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -453,7 +484,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -472,15 +503,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -488,7 +520,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -496,11 +528,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -548,7 +580,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -571,11 +603,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -587,7 +619,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -595,11 +627,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -618,27 +650,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -646,15 +678,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -663,7 +695,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -690,7 +722,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -698,7 +730,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -711,7 +743,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -725,11 +757,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -790,12 +823,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -805,7 +838,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -826,6 +859,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -868,6 +902,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -884,6 +919,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -895,19 +931,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -919,7 +955,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -955,7 +991,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -969,11 +1005,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -981,11 +1017,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1016,12 +1052,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1036,7 +1072,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1048,22 +1084,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1087,7 +1123,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1095,15 +1131,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1120,11 +1156,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1137,15 +1173,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1176,7 +1212,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1206,14 +1242,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1225,11 +1261,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1241,19 +1277,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1276,11 +1312,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1293,7 +1329,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1301,7 +1337,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1316,18 +1352,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1381,12 +1417,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1398,7 +1434,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1406,7 +1442,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1414,7 +1450,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1427,10 +1463,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1449,9 +1485,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1460,9 +1496,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1477,7 +1513,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1490,7 +1526,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1502,11 +1538,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1526,12 +1562,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1543,7 +1579,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1553,7 +1589,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1561,10 +1597,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1587,7 +1623,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1599,24 +1635,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1624,16 +1668,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1645,7 +1689,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1662,7 +1706,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1673,7 +1717,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1681,7 +1729,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1697,6 +1745,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1725,8 +1780,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1734,7 +1789,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1744,7 +1799,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1764,7 +1819,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1779,7 +1834,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1801,11 +1856,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1826,14 +1889,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1853,16 +1916,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1874,11 +1938,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1888,13 +1952,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1907,10 +1972,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/messages.pot b/frontend/src/locale/messages.pot index 6f7ccc7a2..8632124b5 100644 --- a/frontend/src/locale/messages.pot +++ b/frontend/src/locale/messages.pot @@ -6,6 +6,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -30,40 +31,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -72,11 +86,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -97,24 +111,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -134,8 +152,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -143,11 +161,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -162,15 +180,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -179,16 +197,16 @@ msgstr "" msgid "Alias(es) of this mailbox. To create a catchall alias, just enter the domain name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -196,22 +214,22 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - #: src/views/account/APISetupView.vue:4 +#: src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -234,12 +252,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -253,6 +271,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -277,16 +303,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -294,7 +321,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -315,7 +342,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -332,11 +359,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -344,10 +371,14 @@ msgstr "" msgid "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -362,19 +393,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -383,7 +415,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -419,7 +451,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -428,7 +460,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -445,15 +477,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -461,7 +494,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -469,11 +502,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -519,7 +552,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -542,11 +575,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -558,7 +591,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -566,11 +599,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -589,27 +622,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -617,15 +650,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -634,7 +667,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -661,7 +694,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -669,7 +702,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -682,7 +715,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -696,11 +729,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -759,12 +793,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -774,8 +808,8 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 #: src/views/account/ForwardView.vue:3 +#: src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -796,6 +830,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -838,6 +873,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -854,6 +890,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -863,19 +900,19 @@ msgstr "" msgid "Here is an example of DNS configuration (bind format). Replace values between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "If you close this form now, your modifications won't be saved. Do you confirm?" msgstr "" @@ -883,7 +920,7 @@ msgstr "" msgid "If you configured it recently, please wait for the first report to be received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -919,7 +956,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 +#: src/layouts/dashboard/NavBar.vue:253 #: src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -932,11 +969,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -944,11 +981,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -977,12 +1014,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -997,7 +1034,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1009,22 +1046,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1048,7 +1085,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1056,15 +1093,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1081,11 +1118,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1098,15 +1135,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1137,7 +1174,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1167,14 +1204,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1186,11 +1223,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1202,19 +1239,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1235,11 +1272,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1252,7 +1289,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1260,7 +1297,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1275,18 +1312,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1340,13 +1377,13 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 -#: src/layouts/dashboard/NavBar.vue:294 #: src/views/account/ProfileView.vue:4 +#: src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1358,7 +1395,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1366,7 +1403,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1374,7 +1411,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1387,10 +1424,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1404,9 +1441,9 @@ msgstr "" msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1415,9 +1452,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1432,7 +1469,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1445,7 +1482,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1457,11 +1494,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1481,12 +1518,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1498,7 +1535,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1508,7 +1545,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1516,10 +1553,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1542,8 +1579,8 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 #: src/views/account/SecurityView.vue:4 +#: src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1555,24 +1592,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1580,16 +1625,17 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 +#: src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1601,7 +1647,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1618,7 +1664,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1629,7 +1675,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1637,7 +1687,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1653,6 +1703,10 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "The first element of each line is mandatory and must be equal to one of the previous values." msgstr "" @@ -1675,8 +1729,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1684,7 +1738,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1694,7 +1748,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1714,7 +1768,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "Two-Factor Authentication (2FA) is not yet activated for your account. Enabling this feature will increase your account's security." msgstr "" @@ -1727,7 +1781,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1749,11 +1803,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1774,14 +1836,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1801,16 +1863,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1822,11 +1885,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1836,13 +1899,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1855,10 +1919,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/nl/app.po b/frontend/src/locale/nl/app.po index 5d99c8cf1..1de794156 100644 --- a/frontend/src/locale/nl/app.po +++ b/frontend/src/locale/nl/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,40 +53,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -94,11 +108,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -119,24 +133,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -156,8 +174,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -165,11 +183,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -184,15 +202,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -203,16 +221,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -220,22 +238,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -258,12 +275,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -277,6 +294,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -301,16 +326,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -318,7 +344,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -339,7 +365,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -356,11 +382,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -369,10 +395,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -387,19 +417,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -408,7 +439,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -444,7 +475,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -453,7 +484,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -472,15 +503,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -488,7 +520,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -496,11 +528,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -548,7 +580,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -571,11 +603,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -587,7 +619,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -595,11 +627,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -618,27 +650,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -646,15 +678,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -663,7 +695,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -690,7 +722,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -698,7 +730,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -711,7 +743,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -725,11 +757,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -790,12 +823,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -805,7 +838,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -826,6 +859,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -868,6 +902,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -884,6 +919,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -895,19 +931,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -919,7 +955,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -955,7 +991,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -969,11 +1005,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -981,11 +1017,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1016,12 +1052,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1036,7 +1072,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1048,22 +1084,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1087,7 +1123,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1095,15 +1131,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1120,11 +1156,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1137,15 +1173,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1176,7 +1212,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1206,14 +1242,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1225,11 +1261,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1241,19 +1277,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1276,11 +1312,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1293,7 +1329,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1301,7 +1337,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1316,18 +1352,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1381,12 +1417,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1398,7 +1434,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1406,7 +1442,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1414,7 +1450,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1427,10 +1463,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1449,9 +1485,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1460,9 +1496,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1477,7 +1513,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1490,7 +1526,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1502,11 +1538,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1526,12 +1562,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1543,7 +1579,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1553,7 +1589,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1561,10 +1597,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1587,7 +1623,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1599,24 +1635,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1624,16 +1668,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1645,7 +1689,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1662,7 +1706,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1673,7 +1717,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1681,7 +1729,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1697,6 +1745,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1725,8 +1780,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1734,7 +1789,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1744,7 +1799,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1764,7 +1819,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1779,7 +1834,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1801,11 +1856,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1826,14 +1889,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1853,16 +1916,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1874,11 +1938,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1888,13 +1952,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1907,10 +1972,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/pl/app.po b/frontend/src/locale/pl/app.po index 884811147..167550e98 100644 --- a/frontend/src/locale/pl/app.po +++ b/frontend/src/locale/pl/app.po @@ -22,6 +22,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -53,40 +54,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -95,11 +109,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -120,24 +134,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -157,8 +175,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -166,11 +184,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -185,15 +203,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -204,16 +222,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -221,22 +239,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -259,12 +276,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -278,6 +295,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -302,16 +327,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -319,7 +345,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -340,7 +366,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -357,11 +383,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -370,10 +396,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -388,19 +418,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -409,7 +440,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -445,7 +476,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -454,7 +485,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -473,15 +504,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -489,7 +521,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -497,11 +529,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -549,7 +581,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -572,11 +604,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -588,7 +620,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -596,11 +628,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -619,27 +651,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -647,15 +679,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -664,7 +696,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -691,7 +723,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -699,7 +731,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -712,7 +744,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -726,11 +758,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -791,12 +824,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -806,7 +839,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -827,6 +860,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -869,6 +903,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -885,6 +920,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -896,19 +932,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -920,7 +956,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -956,7 +992,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -970,11 +1006,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -982,11 +1018,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1017,12 +1053,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1037,7 +1073,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1049,22 +1085,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1088,7 +1124,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1096,15 +1132,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1121,11 +1157,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1138,15 +1174,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1177,7 +1213,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1207,14 +1243,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1226,11 +1262,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1242,19 +1278,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1277,11 +1313,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1294,7 +1330,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1302,7 +1338,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1317,18 +1353,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1382,12 +1418,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1399,7 +1435,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1407,7 +1443,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1415,7 +1451,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1428,10 +1464,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1450,9 +1486,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1461,9 +1497,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1478,7 +1514,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1491,7 +1527,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1503,11 +1539,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1527,12 +1563,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1544,7 +1580,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1554,7 +1590,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1562,10 +1598,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1588,7 +1624,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1600,24 +1636,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1625,16 +1669,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1646,7 +1690,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1663,7 +1707,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1674,7 +1718,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1682,7 +1730,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1698,6 +1746,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1726,8 +1781,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1735,7 +1790,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1745,7 +1800,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1765,7 +1820,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1780,7 +1835,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1802,11 +1857,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1827,14 +1890,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1854,16 +1917,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1875,11 +1939,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1889,13 +1953,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1908,10 +1973,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/pt/app.po b/frontend/src/locale/pt/app.po index 15c86ad27..7629848a3 100644 --- a/frontend/src/locale/pt/app.po +++ b/frontend/src/locale/pt/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,40 +53,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -94,11 +108,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -119,24 +133,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -156,8 +174,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -165,11 +183,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -184,15 +202,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -203,16 +221,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -220,22 +238,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -258,12 +275,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -277,6 +294,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -301,16 +326,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -318,7 +344,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -339,7 +365,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -356,11 +382,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -369,10 +395,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -387,19 +417,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -408,7 +439,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -444,7 +475,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -453,7 +484,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -472,15 +503,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -488,7 +520,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -496,11 +528,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -548,7 +580,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -571,11 +603,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -587,7 +619,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -595,11 +627,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -618,27 +650,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -646,15 +678,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -663,7 +695,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -690,7 +722,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -698,7 +730,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -711,7 +743,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -725,11 +757,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -790,12 +823,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -805,7 +838,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -826,6 +859,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -868,6 +902,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -884,6 +919,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -895,19 +931,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -919,7 +955,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -955,7 +991,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -969,11 +1005,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -981,11 +1017,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1016,12 +1052,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1036,7 +1072,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1048,22 +1084,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1087,7 +1123,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1095,15 +1131,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1120,11 +1156,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1137,15 +1173,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1176,7 +1212,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1206,14 +1242,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1225,11 +1261,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1241,19 +1277,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1276,11 +1312,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1293,7 +1329,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1301,7 +1337,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1316,18 +1352,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1381,12 +1417,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1398,7 +1434,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1406,7 +1442,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1414,7 +1450,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1427,10 +1463,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1449,9 +1485,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1460,9 +1496,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1477,7 +1513,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1490,7 +1526,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1502,11 +1538,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1526,12 +1562,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1543,7 +1579,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1553,7 +1589,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1561,10 +1597,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1587,7 +1623,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1599,24 +1635,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1624,16 +1668,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1645,7 +1689,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1662,7 +1706,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1673,7 +1717,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1681,7 +1729,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1697,6 +1745,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1725,8 +1780,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1734,7 +1789,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1744,7 +1799,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1764,7 +1819,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1779,7 +1834,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1801,11 +1856,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1826,14 +1889,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1853,16 +1916,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1874,11 +1938,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1888,13 +1952,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1907,10 +1972,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" diff --git a/frontend/src/locale/ru/app.po b/frontend/src/locale/ru/app.po index 3d78939ca..c0160dd19 100644 --- a/frontend/src/locale/ru/app.po +++ b/frontend/src/locale/ru/app.po @@ -22,6 +22,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -53,42 +54,56 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Добавить аккаунт" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Добавить аккаунт" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Аккаунт создан" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Настройки" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Аккаунт создан" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "аккаунт изменен" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Действие" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Адрес" @@ -97,11 +112,11 @@ msgstr "Адрес" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -122,24 +137,28 @@ msgstr "Адрес" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Список квот" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Администраторы" @@ -161,8 +180,8 @@ msgstr "Дата создания" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -170,12 +189,12 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Синоним" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -191,16 +210,16 @@ msgstr "Синоним создан" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Синоним создан" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Синоним создан" @@ -212,16 +231,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Синоним(ы)" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Синоним(ы)" @@ -230,23 +249,22 @@ msgstr "Синоним(ы)" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Аккаунт создан" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 #, fuzzy msgid "API token deleted" @@ -271,13 +289,13 @@ msgstr "Список квот" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 #, fuzzy msgid "Associated domains" msgstr "Список квот" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -291,6 +309,14 @@ msgstr "Аутентификация" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -315,16 +341,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "Неверный формат" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Изменить пароль" @@ -332,7 +359,7 @@ msgstr "Изменить пароль" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -353,7 +380,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -370,11 +397,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Подтверждение" @@ -383,10 +410,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Продолжать при ошибке" @@ -401,19 +432,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Создание администратора домена" @@ -422,7 +454,7 @@ msgstr "Создание администратора домена" msgid "Create a mailbox for the administrator." msgstr "Создание администратора домена" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Создание синонимов" @@ -459,7 +491,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Приборная панель" @@ -468,7 +500,7 @@ msgstr "Приборная панель" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "День" @@ -487,15 +519,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -503,7 +536,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -511,12 +544,12 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 #, fuzzy msgid "Disable 2FA" msgstr "Разрешен" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "Разрешен" @@ -565,7 +598,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -588,11 +621,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -604,7 +637,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "Статистика" @@ -612,11 +645,11 @@ msgstr "Статистика" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -636,28 +669,28 @@ msgstr "" msgid "Domain administrator" msgstr "Администратор домена" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Домен создан" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 #, fuzzy msgid "Domain default value" msgstr "Используются значения домена по умолчанию " -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -665,16 +698,16 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 #, fuzzy msgid "domain's default value" msgstr "Используются значения домена по умолчанию " -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Домены" @@ -683,7 +716,7 @@ msgstr "Домены" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -713,7 +746,7 @@ msgstr "" msgid "Edit provider" msgstr "Е-майл адрес" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -721,7 +754,7 @@ msgstr "" msgid "Email address" msgstr "Е-майл адрес" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 #, fuzzy msgid "Email providers" msgstr "Е-майл адрес" @@ -735,7 +768,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 #, fuzzy msgid "Enable 2FA" msgstr "Разрешено" @@ -750,11 +783,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -816,13 +850,13 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #, fuzzy msgid "First name" msgstr "Имя файла" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Забыли пароль?" @@ -834,7 +868,7 @@ msgstr "Забыли пароль?" msgid "Forgot password?" msgstr "Забыли пароль?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Перенаправленые" @@ -858,6 +892,7 @@ msgstr "Перенаправленые" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -902,6 +937,7 @@ msgstr "" msgid "General settings" msgstr "Основные" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -920,6 +956,7 @@ msgstr "Ошибочный запрос" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -931,19 +968,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Пользователи" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -955,7 +992,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -991,7 +1028,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Информация" @@ -1006,11 +1043,11 @@ msgstr "" msgid "Installed components" msgstr "Установленная версия" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Установленная версия" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Ошибочный запрос" @@ -1019,11 +1056,11 @@ msgstr "Ошибочный запрос" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1054,12 +1091,12 @@ msgid "Last modification date" msgstr "Дата последней модификации" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Установленная версия" @@ -1075,7 +1112,7 @@ msgstr "Уровень" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1087,23 +1124,23 @@ msgstr "" msgid "Logger" msgstr "Логгер" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Завершить сеанс" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Почтовые ящики" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Почтовые ящики" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Почтовые ящики" @@ -1129,7 +1166,7 @@ msgstr "использование (%%)" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1137,16 +1174,16 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Дата создания" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1164,11 +1201,11 @@ msgstr "Синоним изменен" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Месяц" @@ -1181,15 +1218,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Логин" @@ -1222,7 +1259,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Новый аккаунт" @@ -1253,14 +1290,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 #, fuzzy msgid "No associated domains" msgstr "Список квот" @@ -1273,11 +1310,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1289,20 +1326,20 @@ msgstr "" msgid "Not generated" msgstr "Получатель не определен" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Почтовые ящики" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 #, fuzzy msgid "Number of associated domains:" msgstr "Список квот" @@ -1326,12 +1363,12 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 #, fuzzy msgid "Old account" msgstr "Новый аккаунт" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Доступны одно или более обновлений." @@ -1344,7 +1381,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Опции" @@ -1352,7 +1389,7 @@ msgstr "Опции" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 #, fuzzy msgid "Parameters updated" msgstr "Профиль обновлен" @@ -1368,18 +1405,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Пароль" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Пароли не совпадают" @@ -1436,12 +1473,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1453,7 +1490,7 @@ msgstr "Профиль обновлен" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Домен создан" @@ -1463,7 +1500,7 @@ msgstr "Домен создан" msgid "Provider created" msgstr "Домен создан" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Домен создан" @@ -1473,7 +1510,7 @@ msgstr "Домен создан" msgid "Provider name" msgstr "Домен создан" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Профиль обновлен" @@ -1488,10 +1525,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1514,9 +1551,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1525,9 +1562,9 @@ msgstr "" msgid "Random address" msgstr "Ошибочный запрос" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Ошибочный запрос" @@ -1542,7 +1579,7 @@ msgstr "Получатели" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Получатели" @@ -1555,7 +1592,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1568,11 +1605,11 @@ msgstr "Новый домен" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Запомнить меня" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1592,12 +1629,12 @@ msgstr "Реселлер" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Ресурсы" @@ -1609,7 +1646,7 @@ msgstr "Использование ресурсов" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1619,7 +1656,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1627,10 +1664,10 @@ msgstr "" msgid "Role" msgstr "Роль" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Сохранить" @@ -1653,7 +1690,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1665,26 +1702,36 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Новый аккаунт" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Новый аккаунт" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +#, fuzzy +msgid "Sender address added" +msgstr "Ошибочный запрос" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +#, fuzzy +msgid "Sender address deleted" +msgstr "Ошибочный запрос" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Ошибочный запрос" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1692,16 +1739,16 @@ msgstr "" msgid "Separator" msgstr "Разделитель" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Настройки" @@ -1713,7 +1760,7 @@ msgstr "" msgid "Simple user" msgstr "Обычный пользователь" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1730,7 +1777,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 #, fuzzy @@ -1742,7 +1789,11 @@ msgstr "Статистика" msgid "Status" msgstr "Статистика" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1750,7 +1801,7 @@ msgid "Submit" msgstr "Подтвердить" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1766,6 +1817,13 @@ msgstr "" msgid "Tags" msgstr "Теги" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1794,8 +1852,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1803,7 +1861,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1813,7 +1871,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1836,7 +1894,7 @@ msgstr "Аутентификация" msgid "Two-factor authentication" msgstr "Аутентификация" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1851,7 +1909,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1874,11 +1932,20 @@ msgstr "Не лимитировано" msgid "Unlimited" msgstr "Не лимитировано" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Обновление" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Пароль" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1901,15 +1968,15 @@ msgstr "Используются значения домена по умолча msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Неизвестное" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Логин пользователя" @@ -1930,16 +1997,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Неделя" @@ -1951,11 +2019,11 @@ msgstr "Добро пожаловать в Modoboa!" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "Год" @@ -1965,13 +2033,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1984,14 +2053,19 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Создание администратора домена" diff --git a/frontend/src/locale/sv/app.po b/frontend/src/locale/sv/app.po index ef8397721..d3fcdd052 100644 --- a/frontend/src/locale/sv/app.po +++ b/frontend/src/locale/sv/app.po @@ -20,6 +20,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "Dokumentation av API är tillgänglig" @@ -59,42 +60,56 @@ msgstr "" msgid "Absolute time range" msgstr "Absolut tidsintervall" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 #, fuzzy msgid "account" msgstr "Konto" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "Konto" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "Konto skapat" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Uppdatera inställningar" + +#: src/stores/accounts.store.js:67 #, fuzzy msgid "Account successfully deleted" msgstr "Konto raderat" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "Konto uppdaterat" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "Åtgärder" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "Lägg till" @@ -103,11 +118,11 @@ msgstr "Lägg till" msgid "Add a new domain alias" msgstr "Lägg till nytt domän alias" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "Lägg till administratör" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "Lägg till avsändaradress" @@ -129,24 +144,28 @@ msgstr "Adress" msgid "Address (hostname or IP)" msgstr "Adress (värdnamn eller IP)" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "Administrerade domäner" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "Administratör tillagd" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "Administratörs namn" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "Administratör raderad" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "Administratörer" @@ -167,8 +186,8 @@ msgstr "Larm raderat" msgid "Alarm re-opened" msgstr "Larm öppnat på nytt" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "Larm" @@ -176,12 +195,12 @@ msgstr "Larm" msgid "Alarms deleted" msgstr "Larm raderade" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 #, fuzzy msgid "alias" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -197,17 +216,17 @@ msgstr "Alias skapat" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 #, fuzzy msgid "Alias successfully created" msgstr "Alias skapat" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 #, fuzzy msgid "Alias successfully deleted" msgstr "Alias raderat" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "Alias uppdaterat" @@ -220,16 +239,16 @@ msgstr "" "Alias för denna brevlåda. För att skapa ett catchall-alias anger du bara " "domännamnet (@domain.tld)." -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "Alias" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 #, fuzzy msgid "Aliases:" msgstr "Alias" @@ -238,22 +257,21 @@ msgstr "Alias" msgid "Alignment" msgstr "Placering" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "API åtkomst" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "API token kopierat till urklipp" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "API token skapat" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "API token raderat" @@ -279,12 +297,12 @@ msgstr "Associerade domäner" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "Associerade domäner" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "Verifieringskedja" @@ -298,6 +316,14 @@ msgstr "Autentisering" msgid "Auto configuration" msgstr "Automatisk konfiguration" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "autoconfig-posten (Mozilla) hittades inte" @@ -322,16 +348,17 @@ msgstr "Tillbaka" msgid "Bind/named format. Click to copy" msgstr "Bind/named formatterat. Klicka för att kopiera" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "Avbryt" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Ändra lösenord" @@ -339,7 +366,7 @@ msgstr "Ändra lösenord" msgid "Check connection:" msgstr "Kontrollera anslutning:" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "Kolla in följande lista för att hitta relaterade komponenter" @@ -361,7 +388,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -378,11 +405,11 @@ msgstr "Stäng alarm" msgid "Closed" msgstr "Stängd" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "Bekräfta och skapa" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Bekräftelse" @@ -391,10 +418,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "Grattis! Tvåfaktorsautentisering är nu aktiverad för ditt konto." -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "Anslut" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "Fortsätt vid fel" @@ -411,19 +442,20 @@ msgstr "Kopiera token till urklipp" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "Kopiera till urklipp" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "Kopiera token till urklipp" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "Kunde inte spara parametrar" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "Skapa en domänadministratör" @@ -432,7 +464,7 @@ msgstr "Skapa en domänadministratör" msgid "Create a mailbox for the administrator." msgstr "Skapa en brevlåda för administratören." -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "Skapa alias" @@ -468,7 +500,7 @@ msgstr "Daglig sändningsgräns för meddelanden" msgid "Daily sending limit" msgstr "Daglig sändningsgräns" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Instrumentbräda" @@ -477,7 +509,7 @@ msgstr "Instrumentbräda" msgid "Date" msgstr "Datum" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "Dag" @@ -498,15 +530,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "Radera" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "Radera token" @@ -514,7 +547,7 @@ msgstr "Radera token" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Beskrivning" @@ -522,11 +555,11 @@ msgstr "Beskrivning" msgid "Detail" msgstr "Detalj" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "Inaktivear 2FA" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "(inaktiverad)" @@ -577,7 +610,7 @@ msgstr "DKIM-post hittades" msgid "DKIM record not found" msgstr "DKIM-posten hittades inte" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "DKIM signering" @@ -600,11 +633,11 @@ msgstr "DMARC-stöd verkar inte vara aktiverat för den här domänen." #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "DNS" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "DNS kontroller" @@ -617,7 +650,7 @@ msgstr "DNS konfigurering för" msgid "DNS configuration help" msgstr "DNS konfigurering hjälp" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "DNS status" @@ -625,11 +658,11 @@ msgstr "DNS status" msgid "Do not delete account folder" msgstr "Ta inte bort kontomappen" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "Ta inte bort domänmappen" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 #, fuzzy msgid "Do you really want to delete the domain %{ domain }?" msgstr "Vill du verkligen ta bort aliaset %{ alias }?" @@ -650,27 +683,27 @@ msgstr "Domän" msgid "Domain administrator" msgstr "Domänadministratör" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "Domän alias skapat" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "Domänalias raderat" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "Domänalias uppdaterat" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "Domän skapad" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "Domän standardvärde" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "Domän raderad" @@ -678,15 +711,15 @@ msgstr "Domän raderad" msgid "Domain name (ex: domain.tld)" msgstr "Domännamn (ex: domain.tld)" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "Domän uppdaterad" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "domänens standardvärde" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "Domäner" @@ -695,7 +728,7 @@ msgstr "Domäner" msgid "Don't treat duplicated objects as errors" msgstr "Behandla inte duplicerade objekt som fel" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -722,7 +755,7 @@ msgstr "Redigera domänalias" msgid "Edit provider" msgstr "Redigera leverantör" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "E-post" @@ -730,7 +763,7 @@ msgstr "E-post" msgid "Email address" msgstr "E-postadress" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "E-postleverantörer" @@ -743,7 +776,7 @@ msgstr "" msgid "Empty" msgstr "Tom" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "Aktivera 2FA" @@ -757,11 +790,12 @@ msgstr "Aktivera DKIM signering" msgid "Enable DNS checks" msgstr "Aktivera DNS kontroller" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -825,12 +859,12 @@ msgid "Field is required" msgstr "Detta fält krävs" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "Förnamn" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Glömt lösenord?" @@ -842,7 +876,7 @@ msgstr "Glömt lösenord?" msgid "Forgot password?" msgstr "Glömt lösenord?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "Vidarebefordra" @@ -863,6 +897,7 @@ msgstr "Vidarebefordrad" msgid "Forwarders with ARC" msgstr "Vidarebefordrare med ARC" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -905,6 +940,7 @@ msgstr "Allmänn information" msgid "General settings" msgstr "Allmänna inställningar" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "Generera" @@ -922,6 +958,7 @@ msgstr "Avsändaradresser" msgid "help" msgstr "hjälp" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -935,19 +972,19 @@ msgstr "" "Här är ett exempel på DNS-konfiguration (bind-format). Ersätt värdena mellan " "[ ] med de lämpliga värdena." -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "Identifikation" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "Identiteter" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -963,7 +1000,7 @@ msgstr "" "Om du konfigurerade det nyligen, vänta tills den första rapporten tas emot " "och behandlas." -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "IMAP migrering" @@ -999,7 +1036,7 @@ msgstr "Ange en eller flera mottagare separerade med kommatecken (,)" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Information" @@ -1017,11 +1054,11 @@ msgstr "" msgid "Installed components" msgstr "Installerade komponenter" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Installerad version" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "Ogiltigt lösenord" @@ -1030,11 +1067,11 @@ msgstr "Ogiltigt lösenord" msgid "Invalid port number" msgstr "Ange ett giltigt portnummer" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "Ogiltigt återställningstoken." -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "Ogiltigt användarnamn och/eller lösenord" @@ -1069,12 +1106,12 @@ msgid "Last modification date" msgstr "Senaste ändrad datum" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "Efternamn" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "Senaste version" @@ -1089,7 +1126,7 @@ msgstr "Nivå" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "Gränser" @@ -1101,23 +1138,23 @@ msgstr "Lokal domän (valfritt)§" msgid "Logger" msgstr "Logger" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Logga ut" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "Brevlåda" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 #, fuzzy msgid "Mailbox aliases:" msgstr "Brevlådor" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 #, fuzzy msgid "Mailbox:" msgstr "Brevlåda" @@ -1142,7 +1179,7 @@ msgstr "Meddelande historik" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "Begränsning för meddelandesändning" @@ -1150,15 +1187,15 @@ msgstr "Begränsning för meddelandesändning" msgid "messages" msgstr "meddelanden" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "Meddelanden" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "Migrering raderad" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "Migreringar" @@ -1175,11 +1212,11 @@ msgstr "Ändrad" msgid "Modify" msgstr "Ändra" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "Månad" @@ -1192,15 +1229,15 @@ msgid "MX records" msgstr "MX poster" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "Namn" @@ -1233,7 +1270,7 @@ msgid "New" msgstr "Ny" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "Nytt konto" @@ -1263,14 +1300,14 @@ msgstr "nej" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "Nej" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "Inga associerade domäner" @@ -1282,11 +1319,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "Inge avsändaradress agedd för detta konto" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "Ingen sändningsbegränsning" @@ -1298,22 +1335,22 @@ msgstr "" msgid "Not generated" msgstr "Ej genererad" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 #, fuzzy msgid "Number of allowed mailbox aliases:" msgstr "Antal associerade domäner:" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 #, fuzzy msgid "Number of allowed mailboxes:" msgstr "Antal associerade domäner:" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 #, fuzzy msgid "Number of associated alias:" msgstr "Antal associerade domäner:" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "Antal associerade domäner:" @@ -1340,11 +1377,11 @@ msgstr "Ok" msgid "OK" msgstr "OK" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "Gammalt konto" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "En eller flera uppdateringar tillgängliga" @@ -1357,7 +1394,7 @@ msgid "Opened alarms" msgstr "Öppnade alarm" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "Alternativ" @@ -1365,7 +1402,7 @@ msgstr "Alternativ" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "Parametrar uppdaterade" @@ -1380,18 +1417,18 @@ msgstr "Delvis pålitliga källor / speditörer" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Lösenord" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "Lösenord kopierat till urklipp" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Lösenord matchar ej" @@ -1446,12 +1483,12 @@ msgstr "Port" msgid "Problem" msgstr "Problem" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "Fortsätt" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profil" @@ -1463,7 +1500,7 @@ msgstr "Profil uppdaterad" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "Ange en CSV-fil där raderna respekterar ett av följande format:" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "Leverantör" @@ -1471,7 +1508,7 @@ msgstr "Leverantör" msgid "Provider created" msgstr "Leverantör skapad" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "Leverantör raderad" @@ -1479,7 +1516,7 @@ msgstr "Leverantör raderad" msgid "Provider name" msgstr "Leverantörsnamn" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "Leverantör uppdaterad" @@ -1492,10 +1529,10 @@ msgid "Queue ID" msgstr "Kö ID" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1519,9 +1556,9 @@ msgstr "" "Kvot delad mellan brevlådor. Kan anges i KB, MB (standard) eller GB. Ett " "värde av 0 innebär ingen kvot." -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 #, fuzzy msgid "Quota: " msgstr "Kvota:" @@ -1531,9 +1568,9 @@ msgstr "Kvota:" msgid "Random address" msgstr "Slumpmässig adress" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "Slumpmässigt lösenord" @@ -1548,7 +1585,7 @@ msgstr "Mottagare" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "Mottagare" @@ -1561,7 +1598,7 @@ msgstr "Register" msgid "Relative time ranges" msgstr "Relativa tidsintervall" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "Relä" @@ -1574,11 +1611,11 @@ msgstr "Ny domän" msgid "Reload" msgstr "Ladda om" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Kom ihåg mig" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "Radera denna adress" @@ -1598,12 +1635,12 @@ msgstr "Återförsäljare" msgid "Resend SMS." msgstr "Skicka SMS på nytt." -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "Återställ återställningskoder" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "Resurser" @@ -1615,7 +1652,7 @@ msgstr "Resursanvändning" msgid "Retry reset" msgstr "Försök återställning igen" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1625,7 +1662,7 @@ msgstr "Försök återställning igen" msgid "Return to login" msgstr "Återgå till inloggning" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1633,10 +1670,10 @@ msgstr "Återgå till inloggning" msgid "Role" msgstr "Roll" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Spara" @@ -1659,7 +1696,7 @@ msgstr "Sekundär e-post" msgid "Secured" msgstr "Säkrad" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "Säkerhet" @@ -1671,26 +1708,34 @@ msgstr "Välj ett konto" msgid "Select file" msgstr "Välj fil" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 #, fuzzy msgid "Send only" msgstr "Välj ett konto" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 #, fuzzy msgid "Send only account" msgstr "Välj ett konto" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "Avsändaradress tillagd" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "Avsändaradress raderad" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "Avsändaradresser" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "Sändningsgräns" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 #, fuzzy msgid "Sending limit: " msgstr "Sändningsgräns:" @@ -1699,17 +1744,17 @@ msgstr "Sändningsgräns:" msgid "Separator" msgstr "Avgränsare" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "Tjänst" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 #, fuzzy msgid "Service: " msgstr "Tjänst:" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Inställningar" @@ -1721,7 +1766,7 @@ msgstr "Visa nyckel" msgid "Simple user" msgstr "Enkel användare" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "Ange en e-postadress" @@ -1738,7 +1783,7 @@ msgstr "SPF post saknas" msgid "Start typing a name here..." msgstr "Börja skriva ett namn här..." -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1749,7 +1794,11 @@ msgstr "Statistik" msgid "Status" msgstr "Status" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1757,7 +1806,7 @@ msgid "Submit" msgstr "Skicka" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "Sammanfattning" @@ -1773,6 +1822,13 @@ msgstr "" msgid "Tags" msgstr "Taggar" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1808,8 +1864,8 @@ msgstr "Denna sida är fortfarande under konstruktion." msgid "To" msgstr "Till" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1817,7 +1873,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "För många misslyckade försök, försök igen senare." #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "Totalt" @@ -1827,7 +1883,7 @@ msgstr "TOTP skickat igen." #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "Transport" @@ -1849,7 +1905,7 @@ msgstr "Tvåfaktorsautentisering" msgid "Two-factor authentication" msgstr "Tvåfaktorsautentisering" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1867,7 +1923,7 @@ msgstr "Grattis! Tvåfaktorsautentisering är nu aktiverad för ditt konto." msgid "Type" msgstr "Typ" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 #, fuzzy msgid "Type: " msgstr "Typ:" @@ -1891,11 +1947,20 @@ msgstr "obegränsat" msgid "Unlimited" msgstr "obegränsat" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Uppdatera" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Uppdatera lösenord" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "Uppdatera lösenord" @@ -1918,14 +1983,14 @@ msgstr "" "Användare verkar felaktig, återgå till inloggning eller börja om " "återsällningsprocessen?" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "Okänd användare." -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Användarnamn" @@ -1946,16 +2011,17 @@ msgstr "Verifikationskod" msgid "warning" msgstr "Varning" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "Varning" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "Vecka" @@ -1967,11 +2033,11 @@ msgstr "Välkommen till Modoboa" msgid "With a mailbox" msgstr "Med en brevlåda" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "Med brevlåda" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "År" @@ -1981,13 +2047,14 @@ msgstr "ja" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "Ja" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "Du håller på att radera din API-åtkomsttoken" @@ -2000,14 +2067,19 @@ msgstr "Du kan använda ett annat tecken som avgränsare." msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "Ditt API token har ännu ej genererats." +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "Ditt API token är:" +#~ msgid "API" +#~ msgstr "API" + #~ msgid "Generate a random password for the administrator." #~ msgstr "Generera ett slumpmässigt lösenord for administratören." @@ -2038,12 +2110,6 @@ msgstr "Ditt API token är:" #~ msgid "IP address of your Modoboa server" #~ msgstr "IP adress för din Modoboa server" -#~ msgid "Sender address added" -#~ msgstr "Avsändaradress tillagd" - -#~ msgid "Sender address deleted" -#~ msgstr "Avsändaradress raderad" - #~ msgid "Settings: thislabel" #~ msgstr "Inställningar: thislabel" diff --git a/frontend/src/locale/tr/app.po b/frontend/src/locale/tr/app.po index 084cba161..0c029c738 100644 --- a/frontend/src/locale/tr/app.po +++ b/frontend/src/locale/tr/app.po @@ -21,6 +21,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -52,41 +53,55 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +#, fuzzy +msgid "Account settings" +msgstr "Ayarlar" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 #, fuzzy msgid "Account updated" msgstr "Profil güncellendi" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -95,11 +110,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -120,24 +135,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -158,8 +177,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -167,11 +186,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -186,15 +205,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 #, fuzzy msgid "Alias updated" msgstr "Profil güncellendi" @@ -206,16 +225,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -223,23 +242,22 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "API" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "API erişimi" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 #, fuzzy msgid "API token created" msgstr "Profil güncellendi" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -262,12 +280,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -281,6 +299,14 @@ msgstr "Kimlik Doğrulama" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -305,16 +331,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "Parolayı değiştirin" @@ -322,7 +349,7 @@ msgstr "Parolayı değiştirin" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -343,7 +370,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -362,11 +389,11 @@ msgstr "Kapat" msgid "Closed" msgstr "Kapat" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "Onayla" @@ -377,10 +404,14 @@ msgstr "" "Tebrikler! Artık hesabınız için İki Faktörlü Kimlik Doğrulama " "etkinleştirildi." -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -395,19 +426,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -416,7 +448,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -454,7 +486,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "Gösterge Paneli" @@ -463,7 +495,7 @@ msgstr "Gösterge Paneli" msgid "Date" msgstr "Tarih" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -482,15 +514,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -498,7 +531,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "Tanım" @@ -506,11 +539,11 @@ msgstr "Tanım" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "2FA'yı devre dışı bırak" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 #, fuzzy msgid "disabled" msgstr "2FA'yı devre dışı bırak" @@ -559,7 +592,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -582,11 +615,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -598,7 +631,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -606,11 +639,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -629,27 +662,27 @@ msgstr "" msgid "Domain administrator" msgstr "Alan adı Yöneticisi" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -657,15 +690,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -674,7 +707,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -702,7 +735,7 @@ msgstr "" msgid "Edit provider" msgstr "Yeni kurtarma kodları" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -710,7 +743,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -723,7 +756,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "2FA'yı etkinleştir" @@ -737,11 +770,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -803,12 +837,12 @@ msgid "Field is required" msgstr "Bu alan gerekli" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 #, fuzzy msgid "Forgot password" msgstr "Parolanızı mı unuttunuz?" @@ -820,7 +854,7 @@ msgstr "Parolanızı mı unuttunuz?" msgid "Forgot password?" msgstr "Parolanızı mı unuttunuz?" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -842,6 +876,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -885,6 +920,7 @@ msgstr "" msgid "General settings" msgstr "Genel" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 #, fuzzy msgid "Generate" @@ -902,6 +938,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -913,19 +950,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -937,7 +974,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -973,7 +1010,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "Bilgi" @@ -988,11 +1025,11 @@ msgstr "" msgid "Installed components" msgstr "Kurulu sürüm" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "Kurulu sürüm" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 #, fuzzy msgid "Invalid password" msgstr "Parolayı değiştirin" @@ -1001,11 +1038,11 @@ msgstr "Parolayı değiştirin" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1036,12 +1073,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 #, fuzzy msgid "Latest version" msgstr "Kurulu sürüm" @@ -1057,7 +1094,7 @@ msgstr "Seviye" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1069,22 +1106,22 @@ msgstr "" msgid "Logger" msgstr "Kayıtçı" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "Çıkış Yapın" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1109,7 +1146,7 @@ msgstr "İleti" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1117,16 +1154,16 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 #, fuzzy msgid "Migration deleted" msgstr "Onayla" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 #, fuzzy msgid "Migrations" @@ -1144,11 +1181,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1161,15 +1198,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "İsim" @@ -1202,7 +1239,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1233,14 +1270,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "Hayır" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1252,11 +1289,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1268,19 +1305,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1303,11 +1340,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "Bir veya daha fazla güncelleme mevcut" @@ -1320,7 +1357,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1328,7 +1365,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 #, fuzzy msgid "Parameters updated" msgstr "Profil güncellendi" @@ -1344,18 +1381,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "Parola" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 #, fuzzy msgid "Password mismatch" msgstr "Parolalar uyuşmuyor" @@ -1412,12 +1449,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "Profil" @@ -1429,7 +1466,7 @@ msgstr "Profil güncellendi" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 #, fuzzy msgid "Provider" msgstr "Yeni kurtarma kodları" @@ -1439,7 +1476,7 @@ msgstr "Yeni kurtarma kodları" msgid "Provider created" msgstr "Profil güncellendi" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 #, fuzzy msgid "Provider deleted" msgstr "Profil güncellendi" @@ -1449,7 +1486,7 @@ msgstr "Profil güncellendi" msgid "Provider name" msgstr "Profil güncellendi" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 #, fuzzy msgid "Provider updated" msgstr "Profil güncellendi" @@ -1464,10 +1501,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1486,9 +1523,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1497,9 +1534,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1514,7 +1551,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1527,7 +1564,7 @@ msgstr "Kayıt ol" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1539,11 +1576,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "Beni hatırla" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1564,12 +1601,12 @@ msgstr "Bayii" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "Kurtarma kodlarını sıfırla" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1581,7 +1618,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1591,7 +1628,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1599,10 +1636,10 @@ msgstr "" msgid "Role" msgstr "Rol" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "Kaydet" @@ -1626,7 +1663,7 @@ msgstr "İkincil e-posta" msgid "Secured" msgstr "Güvenlik" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "Güvenlik" @@ -1638,24 +1675,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1663,16 +1708,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "Ayarlar" @@ -1684,7 +1729,7 @@ msgstr "" msgid "Simple user" msgstr "Basit kullanıcı" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1701,7 +1746,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1712,7 +1757,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1720,7 +1769,7 @@ msgid "Submit" msgstr "Gönder" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1737,6 +1786,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1765,8 +1821,8 @@ msgstr "" msgid "To" msgstr "Kime" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1774,7 +1830,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1784,7 +1840,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1806,7 +1862,7 @@ msgstr "Kimlik Doğrulama" msgid "Two-factor authentication" msgstr "Kimlik Doğrulama" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1826,7 +1882,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1848,11 +1904,20 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "Güncelle" +#: src/components/account/AutoReplyForm.vue:54 +#, fuzzy +msgid "Update auto-reply" +msgstr "Parola" + #: src/components/account/ProfileForm.vue:75 #, fuzzy msgid "Update Password" @@ -1875,15 +1940,15 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 #, fuzzy msgid "User unknown." msgstr "Bilinmeyen" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "Kullanıcı adı" @@ -1904,16 +1969,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1925,11 +1991,11 @@ msgstr "Modoboa'ya hoş geldiniz" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1939,13 +2005,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "Evet" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1958,10 +2025,15 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" + +#~ msgid "API" +#~ msgstr "API" diff --git a/frontend/src/locale/zh/app.po b/frontend/src/locale/zh/app.po index ab995530f..ff12bb95b 100644 --- a/frontend/src/locale/zh/app.po +++ b/frontend/src/locale/zh/app.po @@ -20,6 +20,7 @@ msgstr "" msgid "(the domain will be created locally)" msgstr "" +#: src/components/account/APISetupForm.vue:45 #: src/views/account/APISetupView.vue:50 msgid "A documentation of the API is available" msgstr "" @@ -51,40 +52,53 @@ msgstr "" msgid "Absolute time range" msgstr "" -#: src/stores/identities.store.js:67 +#: src/stores/identities.store.js:72 msgid "account" msgstr "" +#: src/layouts/dashboard/NavBar.vue:269 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:33 msgid "Account" msgstr "" -#: src/stores/accounts.store.js:51 +#: src/stores/accounts.store.js:56 msgid "Account created" msgstr "" -#: src/stores/accounts.store.js:62 +#: src/views/account/SettingsView.vue:3 +msgid "Account settings" +msgstr "" + +#: src/stores/accounts.store.js:67 msgid "Account successfully deleted" msgstr "" -#: src/stores/accounts.store.js:43 +#: src/stores/accounts.store.js:48 msgid "Account updated" msgstr "" #: src/components/admin/alarms/AlarmList.vue:20 #: src/components/admin/alarms/AlarmList.vue:98 -#: src/components/admin/domains/DomainList.vue:206 +#: src/components/admin/domains/DomainList.vue:213 #: src/components/admin/domains/DomainList.vue:24 #: src/components/admin/identities/IdentityList.vue:122 #: src/components/admin/identities/IdentityList.vue:23 #: src/components/admin/imap_migration/MigrationsList.vue:23 -#: src/components/admin/imap_migration/MigrationsList.vue:80 +#: src/components/admin/imap_migration/MigrationsList.vue:83 #: src/components/admin/imap_migration/ProvidersList.vue:102 #: src/components/admin/imap_migration/ProvidersList.vue:25 msgid "Actions" msgstr "" +#: src/components/account/AutoReplyForm.vue:35 +msgid "Activate your auto reply from this date" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:46 +msgid "Activate your auto reply until this date" +msgstr "" + #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Add" msgstr "" @@ -93,11 +107,11 @@ msgstr "" msgid "Add a new domain alias" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:65 +#: src/components/admin/domains/DomainAdminList.vue:66 msgid "Add administrator" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:53 +#: src/components/admin/identities/AccountSenderAddresses.vue:52 msgid "Add sender address" msgstr "" @@ -118,24 +132,28 @@ msgstr "" msgid "Address (hostname or IP)" msgstr "" +#: src/layouts/dashboard/NavBar.vue:283 +msgid "Admin" +msgstr "" + #: src/components/admin/identities/DomainAdminDomains.vue:4 msgid "Administered domains" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:147 +#: src/components/admin/domains/DomainAdminList.vue:149 msgid "Administrator added" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:247 +#: src/components/admin/domains/DomainCreationForm.vue:250 msgid "Administrator name" msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:155 +#: src/components/admin/domains/DomainAdminList.vue:158 msgid "Administrator removed" msgstr "" #: src/components/admin/domains/DomainAdminList.vue:9 -#: src/components/admin/domains/DomainList.vue:284 +#: src/components/admin/domains/DomainList.vue:291 msgid "Administrators" msgstr "" @@ -155,8 +173,8 @@ msgstr "" msgid "Alarm re-opened" msgstr "" -#: src/components/admin/domains/DomainList.vue:302 -#: src/layouts/dashboard/NavBar.vue:201 +#: src/components/admin/domains/DomainList.vue:309 +#: src/layouts/dashboard/NavBar.vue:202 msgid "Alarms" msgstr "" @@ -164,11 +182,11 @@ msgstr "" msgid "Alarms deleted" msgstr "" -#: src/stores/identities.store.js:97 +#: src/stores/identities.store.js:106 msgid "alias" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:115 +#: src/components/admin/identities/AccountEditForm.vue:116 #: src/views/admin/domains/DomainsView.vue:36 #: src/views/admin/identities/AliasView.vue:5 #: src/views/admin/identities/IdentitiesView.vue:36 @@ -183,15 +201,15 @@ msgstr "" msgid "Alias already exists, redirecting to edit page" msgstr "" -#: src/stores/aliases.store.js:48 +#: src/stores/aliases.store.js:52 msgid "Alias successfully created" msgstr "" -#: src/stores/aliases.store.js:61 +#: src/stores/aliases.store.js:65 msgid "Alias successfully deleted" msgstr "" -#: src/stores/aliases.store.js:74 +#: src/stores/aliases.store.js:78 msgid "Alias updated" msgstr "" @@ -202,16 +220,16 @@ msgid "" "name (@domain.tld)." msgstr "" -#: src/components/admin/domains/DomainList.vue:201 +#: src/components/admin/domains/DomainList.vue:204 #: src/components/admin/domains/DomainSummary.vue:40 #: src/components/admin/identities/AccountAliases.vue:4 -#: src/components/admin/identities/AccountCreationForm.vue:139 -#: src/components/admin/identities/AccountCreationForm.vue:142 -#: src/components/admin/identities/AccountCreationForm.vue:172 +#: src/components/admin/identities/AccountCreationForm.vue:145 +#: src/components/admin/identities/AccountCreationForm.vue:148 +#: src/components/admin/identities/AccountCreationForm.vue:178 msgid "Aliases" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:124 +#: src/components/admin/identities/AccountEditForm.vue:125 msgid "Aliases:" msgstr "" @@ -219,22 +237,21 @@ msgstr "" msgid "Alignment" msgstr "" -#: src/layouts/dashboard/NavBar.vue:260 -msgid "API" -msgstr "" - -#: src/views/account/APISetupView.vue:4 +#: src/views/account/APISetupView.vue:4 src/views/account/SettingsView.vue:24 msgid "API access" msgstr "" +#: src/components/account/APISetupForm.vue:73 #: src/views/account/APISetupView.vue:80 msgid "API token copied to your clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:85 #: src/views/account/APISetupView.vue:92 msgid "API token created" msgstr "" +#: src/components/account/APISetupForm.vue:107 #: src/views/account/APISetupView.vue:114 msgid "API token deleted" msgstr "" @@ -257,12 +274,12 @@ msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 -#: src/components/admin/imap_migration/ProviderForm.vue:29 +#: src/components/admin/imap_migration/ProviderForm.vue:30 #: src/components/admin/imap_migration/ProvidersList.vue:100 msgid "Associated domains" msgstr "" -#: src/layouts/dashboard/NavBar.vue:216 +#: src/layouts/dashboard/NavBar.vue:217 #: src/views/admin/monitoring/AuditTrailView.vue:3 msgid "Audit trail" msgstr "" @@ -276,6 +293,14 @@ msgstr "" msgid "Auto configuration" msgstr "" +#: src/views/account/SettingsView.vue:21 +msgid "Auto-reply message" +msgstr "" + +#: src/components/account/AutoReplyForm.vue:82 +msgid "Auto-reply message updated" +msgstr "" + #: src/components/admin/domains/DNSDetail.vue:56 msgid "autoconfig record (Mozilla) not found" msgstr "" @@ -300,16 +325,17 @@ msgstr "" msgid "Bind/named format. Click to copy" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:155 -#: src/components/admin/identities/AccountEditForm.vue:185 -#: src/components/admin/identities/AliasEditForm.vue:66 -#: src/components/admin/imap_migration/ProviderForm.vue:57 +#: src/components/account/APISetupForm.vue:98 +#: src/components/admin/domains/DomainEditForm.vue:160 +#: src/components/admin/identities/AccountEditForm.vue:186 +#: src/components/admin/identities/AliasEditForm.vue:69 +#: src/components/admin/imap_migration/ProviderForm.vue:58 #: src/components/tools/ConfirmDialog.vue:47 #: src/views/account/APISetupView.vue:105 msgid "Cancel" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:15 +#: src/components/login/PasswordRecoveryChangeForm.vue:17 msgid "Change password" msgstr "" @@ -317,7 +343,7 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/views/admin/InformationView.vue:21 +#: src/views/admin/InformationView.vue:23 msgid "Check out the following list to find related components" msgstr "" @@ -338,7 +364,7 @@ msgid "Click here to copy the key" msgstr "" #: src/components/account/RecoveryCodesResetDialog.vue:23 -#: src/components/admin/domains/DomainAdminList.vue:70 +#: src/components/admin/domains/DomainAdminList.vue:71 #: src/components/admin/domains/DomainAliasForm.vue:31 #: src/components/admin/domains/DomainDKIMKey.vue:37 #: src/components/admin/domains/DomainDNSConfig.vue:80 @@ -355,11 +381,11 @@ msgstr "" msgid "Closed" msgstr "" -#: src/components/tools/CreationForm.vue:89 +#: src/components/tools/CreationForm.vue:91 msgid "Confirm and create" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:63 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:64 msgid "Confirmation" msgstr "" @@ -368,10 +394,14 @@ msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" -#: src/components/login/LoginForm.vue:87 +#: src/components/login/LoginForm.vue:91 msgid "Connect" msgstr "" +#: src/components/account/AutoReplyForm.vue:20 +msgid "Content" +msgstr "" + #: src/components/tools/ImportForm.vue:40 msgid "Continue on error" msgstr "" @@ -386,19 +416,20 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:54 #: src/components/admin/identities/AccountCreationForm.vue:43 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:42 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:43 msgid "Copy to clipboard" msgstr "" +#: src/components/account/APISetupForm.vue:28 #: src/views/account/APISetupView.vue:33 msgid "Copy token to clipboard" msgstr "" -#: src/views/admin/ParametersView.vue:158 +#: src/views/admin/ParametersView.vue:160 msgid "Could not save parameters" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:238 +#: src/components/admin/domains/DomainCreationForm.vue:241 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:5 msgid "Create a domain administrator" msgstr "" @@ -407,7 +438,7 @@ msgstr "" msgid "Create a mailbox for the administrator." msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:262 +#: src/components/admin/domains/DomainCreationForm.vue:265 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33 msgid "Create aliases" msgstr "" @@ -443,7 +474,7 @@ msgstr "" msgid "Daily sending limit" msgstr "" -#: src/layouts/dashboard/NavBar.vue:183 +#: src/layouts/dashboard/NavBar.vue:184 msgid "Dashboard" msgstr "" @@ -452,7 +483,7 @@ msgstr "" msgid "Date" msgstr "" -#: src/components/tools/TimeSerieChart.vue:108 +#: src/components/tools/TimeSerieChart.vue:110 msgid "Day" msgstr "" @@ -471,15 +502,16 @@ msgstr "" #: src/components/admin/alarms/AlarmList.vue:109 #: src/components/admin/alarms/AlarmList.vue:126 #: src/components/admin/domains/DomainAliasForm.vue:38 -#: src/components/admin/domains/DomainList.vue:294 +#: src/components/admin/domains/DomainList.vue:301 #: src/components/admin/identities/IdentityList.vue:164 #: src/components/admin/identities/IdentityList.vue:176 #: src/components/admin/identities/IdentityList.vue:189 -#: src/components/admin/imap_migration/MigrationsList.vue:120 +#: src/components/admin/imap_migration/MigrationsList.vue:123 #: src/components/admin/imap_migration/ProvidersList.vue:124 msgid "Delete" msgstr "" +#: src/components/account/APISetupForm.vue:38 #: src/views/account/APISetupView.vue:43 msgid "Delete token" msgstr "" @@ -487,7 +519,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:72 #: src/components/admin/identities/AliasSummary.vue:20 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:57 -#: src/views/admin/InformationView.vue:60 +#: src/views/admin/InformationView.vue:62 msgid "Description" msgstr "" @@ -495,11 +527,11 @@ msgstr "" msgid "Detail" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:90 +#: src/components/account/TwoFactorAuthForm.vue:91 msgid "Disable 2FA" msgstr "" -#: src/components/admin/domains/DomainList.vue:80 +#: src/components/admin/domains/DomainList.vue:83 msgid "disabled" msgstr "" @@ -547,7 +579,7 @@ msgstr "" msgid "DKIM record not found" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:50 +#: src/components/admin/domains/DomainEditForm.vue:52 msgid "DKIM signing" msgstr "" @@ -570,11 +602,11 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:143 #: src/components/admin/domains/DomainCreationForm.vue:149 #: src/components/admin/domains/DomainCreationForm.vue:173 -#: src/components/admin/domains/DomainEditForm.vue:34 +#: src/components/admin/domains/DomainEditForm.vue:36 msgid "DNS" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:41 +#: src/components/admin/domains/DomainEditForm.vue:43 msgid "DNS checks" msgstr "" @@ -586,7 +618,7 @@ msgstr "" msgid "DNS configuration help" msgstr "" -#: src/components/admin/domains/DomainList.vue:202 +#: src/components/admin/domains/DomainList.vue:206 msgid "DNS status" msgstr "" @@ -594,11 +626,11 @@ msgstr "" msgid "Do not delete account folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:158 +#: src/components/admin/domains/DomainList.vue:161 msgid "Do not delete domain folder" msgstr "" -#: src/components/admin/domains/DomainList.vue:236 +#: src/components/admin/domains/DomainList.vue:243 msgid "Do you really want to delete the domain %{ domain }?" msgstr "" @@ -617,27 +649,27 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: src/stores/domains.store.js:84 +#: src/stores/domains.store.js:90 msgid "Domain alias created" msgstr "" -#: src/stores/domains.store.js:106 +#: src/stores/domains.store.js:112 msgid "Domain alias deleted" msgstr "" -#: src/stores/domains.store.js:121 +#: src/stores/domains.store.js:127 msgid "Domain alias updated" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:313 +#: src/components/admin/domains/DomainCreationForm.vue:316 msgid "Domain created" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:124 +#: src/components/admin/identities/AccountCreationForm.vue:130 msgid "Domain default value" msgstr "" -#: src/components/admin/domains/DomainList.vue:250 +#: src/components/admin/domains/DomainList.vue:257 msgid "Domain deleted" msgstr "" @@ -645,15 +677,15 @@ msgstr "" msgid "Domain name (ex: domain.tld)" msgstr "" -#: src/stores/domains.store.js:56 +#: src/stores/domains.store.js:62 msgid "Domain updated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:82 msgid "domain's default value" msgstr "" -#: src/layouts/dashboard/NavBar.vue:189 +#: src/layouts/dashboard/NavBar.vue:190 #: src/views/admin/domains/DomainsView.vue:4 msgid "Domains" msgstr "" @@ -662,7 +694,7 @@ msgstr "" msgid "Don't treat duplicated objects as errors" msgstr "" -#: src/components/admin/domains/DomainList.vue:289 +#: src/components/admin/domains/DomainList.vue:296 #: src/components/admin/identities/IdentityList.vue:159 #: src/components/admin/identities/IdentityList.vue:171 #: src/components/admin/imap_migration/ProvidersList.vue:130 @@ -689,7 +721,7 @@ msgstr "" msgid "Edit provider" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:120 +#: src/components/admin/identities/AccountCreationForm.vue:124 msgid "Email" msgstr "" @@ -697,7 +729,7 @@ msgstr "" msgid "Email address" msgstr "" -#: src/layouts/dashboard/NavBar.vue:233 +#: src/layouts/dashboard/NavBar.vue:234 msgid "Email providers" msgstr "" @@ -710,7 +742,7 @@ msgstr "" msgid "Empty" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:107 +#: src/components/account/TwoFactorAuthForm.vue:108 msgid "Enable 2FA" msgstr "" @@ -724,11 +756,12 @@ msgstr "" msgid "Enable DNS checks" msgstr "" +#: src/components/account/AutoReplyForm.vue:7 #: src/components/admin/domains/DomainCreationForm.vue:166 #: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20 -#: src/components/admin/identities/AccountCreationForm.vue:108 -#: src/components/admin/identities/AccountEditForm.vue:44 -#: src/components/admin/identities/AliasEditForm.vue:19 +#: src/components/admin/identities/AccountCreationForm.vue:111 +#: src/components/admin/identities/AccountEditForm.vue:45 +#: src/components/admin/identities/AliasEditForm.vue:21 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:42 #: src/components/admin/identities/form_steps/AliasGeneralForm.vue:52 msgid "Enabled" @@ -789,12 +822,12 @@ msgid "Field is required" msgstr "" #: src/components/account/ProfileForm.vue:9 -#: src/components/admin/identities/AccountCreationForm.vue:99 +#: src/components/admin/identities/AccountCreationForm.vue:100 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 msgid "First name" msgstr "" -#: src/components/login/LoginForm.vue:96 +#: src/components/login/LoginForm.vue:100 msgid "Forgot password" msgstr "" @@ -804,7 +837,7 @@ msgstr "" msgid "Forgot password?" msgstr "" -#: src/layouts/dashboard/NavBar.vue:284 src/views/account/ForwardView.vue:3 +#: src/views/account/ForwardView.vue:3 src/views/account/SettingsView.vue:18 msgid "Forward" msgstr "" @@ -825,6 +858,7 @@ msgstr "" msgid "Forwarders with ARC" msgstr "" +#: src/components/account/AutoReplyForm.vue:32 #: src/components/admin/logs/MessageList.vue:46 #: src/components/tools/TimeSerieChart.vue:19 msgid "From" @@ -867,6 +901,7 @@ msgstr "" msgid "General settings" msgstr "" +#: src/components/account/APISetupForm.vue:13 #: src/views/account/APISetupView.vue:18 msgid "Generate" msgstr "" @@ -883,6 +918,7 @@ msgstr "" msgid "help" msgstr "" +#: src/components/account/APISetupForm.vue:46 #: src/components/account/ProfileForm.vue:28 #: src/views/account/APISetupView.vue:51 msgid "here" @@ -894,19 +930,19 @@ msgid "" "between [ ] by the appropriate ones." msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:161 +#: src/components/admin/identities/AccountCreationForm.vue:167 #: src/components/admin/identities/AccountCreationForm.vue:96 #: src/components/admin/identities/AccountEditForm.vue:31 -#: src/components/login/LoginForm.vue:56 +#: src/components/login/LoginForm.vue:60 msgid "Identification" msgstr "" -#: src/layouts/dashboard/NavBar.vue:195 +#: src/layouts/dashboard/NavBar.vue:196 #: src/views/admin/identities/IdentitiesView.vue:4 msgid "Identities" msgstr "" -#: src/components/tools/CreationForm.vue:127 +#: src/components/tools/CreationForm.vue:129 msgid "" "If you close this form now, your modifications won't be saved. Do you " "confirm?" @@ -918,7 +954,7 @@ msgid "" "received and processed." msgstr "" -#: src/layouts/dashboard/NavBar.vue:229 +#: src/layouts/dashboard/NavBar.vue:230 msgid "IMAP Migration" msgstr "" @@ -954,7 +990,7 @@ msgstr "" msgid "Info" msgstr "" -#: src/layouts/dashboard/NavBar.vue:252 src/views/admin/InformationView.vue:4 +#: src/layouts/dashboard/NavBar.vue:253 src/views/admin/InformationView.vue:4 msgid "Information" msgstr "" @@ -968,11 +1004,11 @@ msgstr "" msgid "Installed components" msgstr "" -#: src/views/admin/InformationView.vue:58 +#: src/views/admin/InformationView.vue:60 msgid "Installed version" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:126 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:127 msgid "Invalid password" msgstr "" @@ -980,11 +1016,11 @@ msgstr "" msgid "Invalid port number" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:115 +#: src/components/login/PasswordRecoveryChangeForm.vue:117 msgid "Invalid reset token." msgstr "" -#: src/components/login/LoginForm.vue:41 +#: src/components/login/LoginForm.vue:45 msgid "Invalid username and/or password" msgstr "" @@ -1015,12 +1051,12 @@ msgid "Last modification date" msgstr "" #: src/components/account/ProfileForm.vue:15 -#: src/components/admin/identities/AccountCreationForm.vue:100 +#: src/components/admin/identities/AccountCreationForm.vue:103 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 msgid "Last name" msgstr "" -#: src/views/admin/InformationView.vue:59 +#: src/views/admin/InformationView.vue:61 msgid "Latest version" msgstr "" @@ -1035,7 +1071,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:144 #: src/components/admin/domains/DomainCreationForm.vue:150 #: src/components/admin/domains/DomainCreationForm.vue:188 -#: src/components/admin/domains/DomainEditForm.vue:71 +#: src/components/admin/domains/DomainEditForm.vue:73 msgid "Limitations" msgstr "" @@ -1047,22 +1083,22 @@ msgstr "" msgid "Logger" msgstr "" -#: src/layouts/dashboard/NavBar.vue:300 +#: src/layouts/dashboard/NavBar.vue:275 msgid "Logout" msgstr "" #: src/components/admin/alarms/AlarmList.vue:95 -#: src/components/admin/identities/AccountCreationForm.vue:118 -#: src/components/admin/identities/AccountCreationForm.vue:168 -#: src/components/admin/identities/AccountEditForm.vue:68 +#: src/components/admin/identities/AccountCreationForm.vue:121 +#: src/components/admin/identities/AccountCreationForm.vue:174 +#: src/components/admin/identities/AccountEditForm.vue:69 msgid "Mailbox" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:164 +#: src/components/admin/identities/AccountEditForm.vue:165 msgid "Mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:157 +#: src/components/admin/identities/AccountEditForm.vue:158 msgid "Mailbox:" msgstr "" @@ -1086,7 +1122,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:196 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32 -#: src/components/admin/identities/AccountCreationForm.vue:128 +#: src/components/admin/identities/AccountCreationForm.vue:134 msgid "Message sending limit" msgstr "" @@ -1094,15 +1130,15 @@ msgstr "" msgid "messages" msgstr "" -#: src/layouts/dashboard/NavBar.vue:221 +#: src/layouts/dashboard/NavBar.vue:222 msgid "Messages" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:95 +#: src/components/admin/imap_migration/MigrationsList.vue:98 msgid "Migration deleted" msgstr "" -#: src/layouts/dashboard/NavBar.vue:238 +#: src/layouts/dashboard/NavBar.vue:239 #: src/views/admin/imap_migration/MigrationsView.vue:4 msgid "Migrations" msgstr "" @@ -1119,11 +1155,11 @@ msgstr "" msgid "Modify" msgstr "" -#: src/layouts/dashboard/NavBar.vue:207 +#: src/layouts/dashboard/NavBar.vue:208 msgid "Monitoring" msgstr "" -#: src/components/tools/TimeSerieChart.vue:110 +#: src/components/tools/TimeSerieChart.vue:112 msgid "Month" msgstr "" @@ -1136,15 +1172,15 @@ msgid "MX records" msgstr "" #: src/components/admin/domains/DNSDetail.vue:170 -#: src/components/admin/domains/DomainAdminList.vue:106 +#: src/components/admin/domains/DomainAdminList.vue:107 #: src/components/admin/domains/DomainAliasForm.vue:8 #: src/components/admin/domains/DomainCreationForm.vue:163 -#: src/components/admin/domains/DomainList.vue:200 +#: src/components/admin/domains/DomainList.vue:203 #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:118 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 #: src/components/admin/imap_migration/ProvidersList.vue:96 -#: src/views/admin/InformationView.vue:57 +#: src/views/admin/InformationView.vue:59 msgid "Name" msgstr "" @@ -1175,7 +1211,7 @@ msgid "New" msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:78 +#: src/components/admin/imap_migration/MigrationsList.vue:81 msgid "New account" msgstr "" @@ -1205,14 +1241,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:223 #: src/components/admin/domains/DNSDetail.vue:243 -#: src/components/admin/domains/DomainList.vue:241 +#: src/components/admin/domains/DomainList.vue:248 #: src/components/admin/identities/IdentityList.vue:209 #: src/components/admin/identities/IdentityList.vue:235 -#: src/components/tools/CreationForm.vue:133 +#: src/components/tools/CreationForm.vue:135 msgid "No" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:40 +#: src/components/admin/imap_migration/ProviderForm.vue:41 msgid "No associated domains" msgstr "" @@ -1224,11 +1260,11 @@ msgstr "" msgid "No domain managed" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:11 +#: src/components/admin/identities/AccountSenderAddresses.vue:10 msgid "No sender address defined for this account" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:89 +#: src/components/admin/domains/DomainEditForm.vue:93 msgid "No sending limit" msgstr "" @@ -1240,19 +1276,19 @@ msgstr "" msgid "Not generated" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:165 +#: src/components/admin/identities/AccountEditForm.vue:166 msgid "Number of allowed mailbox aliases:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:158 +#: src/components/admin/identities/AccountEditForm.vue:159 msgid "Number of allowed mailboxes:" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:125 +#: src/components/admin/identities/AccountEditForm.vue:126 msgid "Number of associated alias:" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:36 +#: src/components/admin/imap_migration/ProviderForm.vue:37 msgid "Number of associated domains:" msgstr "" @@ -1275,11 +1311,11 @@ msgstr "" msgid "OK" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:77 +#: src/components/admin/imap_migration/MigrationsList.vue:80 msgid "Old account" msgstr "" -#: src/views/admin/InformationView.vue:18 +#: src/views/admin/InformationView.vue:19 msgid "One or more updates are available" msgstr "" @@ -1292,7 +1328,7 @@ msgid "Opened alarms" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:145 -#: src/components/admin/domains/DomainCreationForm.vue:235 +#: src/components/admin/domains/DomainCreationForm.vue:238 msgid "Options" msgstr "" @@ -1300,7 +1336,7 @@ msgstr "" msgid "or suggest a new language" msgstr "" -#: src/views/admin/ParametersView.vue:150 +#: src/views/admin/ParametersView.vue:151 msgid "Parameters updated" msgstr "" @@ -1315,18 +1351,18 @@ msgstr "" #: src/components/account/ProfileForm.vue:69 #: src/components/account/TwoFactorAuthForm.vue:75 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:52 -#: src/components/login/LoginForm.vue:70 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:53 +#: src/components/login/LoginForm.vue:74 msgid "Password" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:280 -#: src/components/admin/identities/AccountCreationForm.vue:205 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:105 +#: src/components/admin/domains/DomainCreationForm.vue:283 +#: src/components/admin/identities/AccountCreationForm.vue:211 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:106 msgid "Password copied to clipboard" msgstr "" -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:100 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:101 msgid "Password mismatch" msgstr "" @@ -1380,12 +1416,12 @@ msgstr "" msgid "Problem" msgstr "" +#: src/components/account/APISetupForm.vue:99 #: src/views/account/APISetupView.vue:106 msgid "Proceed" msgstr "" -#: src/layouts/dashboard/NavBar.vue:267 src/layouts/dashboard/NavBar.vue:294 -#: src/views/account/ProfileView.vue:4 +#: src/views/account/ProfileView.vue:4 src/views/account/SettingsView.vue:12 msgid "Profile" msgstr "" @@ -1397,7 +1433,7 @@ msgstr "" msgid "Provide a CSV file where lines respect one of the following formats:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:76 +#: src/components/admin/imap_migration/MigrationsList.vue:79 msgid "Provider" msgstr "" @@ -1405,7 +1441,7 @@ msgstr "" msgid "Provider created" msgstr "" -#: src/stores/providers.store.js:45 +#: src/stores/providers.store.js:51 msgid "Provider deleted" msgstr "" @@ -1413,7 +1449,7 @@ msgstr "" msgid "Provider name" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:133 +#: src/components/admin/imap_migration/ProviderForm.vue:135 msgid "Provider updated" msgstr "" @@ -1426,10 +1462,10 @@ msgid "Queue ID" msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:190 -#: src/components/admin/domains/DomainList.vue:204 +#: src/components/admin/domains/DomainList.vue:211 #: src/components/admin/domains/DomainSummary.vue:16 #: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:5 -#: src/components/admin/identities/AccountCreationForm.vue:122 +#: src/components/admin/identities/AccountCreationForm.vue:128 #: src/components/admin/identities/AccountSummary.vue:36 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:3 msgid "Quota" @@ -1448,9 +1484,9 @@ msgid "" "A value of 0 means no quota." msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:79 -#: src/components/admin/identities/AccountEditForm.vue:80 -#: src/components/admin/identities/AccountEditForm.vue:86 +#: src/components/admin/domains/DomainEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:81 +#: src/components/admin/identities/AccountEditForm.vue:87 msgid "Quota: " msgstr "" @@ -1459,9 +1495,9 @@ msgstr "" msgid "Random address" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:252 -#: src/components/admin/identities/AccountCreationForm.vue:103 -#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:19 +#: src/components/admin/domains/DomainCreationForm.vue:255 +#: src/components/admin/identities/AccountCreationForm.vue:106 +#: src/components/admin/identities/form_steps/AccountPasswordSubForm.vue:20 msgid "Random password" msgstr "" @@ -1476,7 +1512,7 @@ msgstr "" #: src/components/admin/identities/AliasCreationForm.vue:77 #: src/components/admin/identities/AliasCreationForm.vue:80 #: src/components/admin/identities/AliasCreationForm.vue:97 -#: src/components/admin/identities/AliasEditForm.vue:38 +#: src/components/admin/identities/AliasEditForm.vue:41 #: src/components/admin/identities/AliasRecipientsSummary.vue:4 msgid "Recipients" msgstr "" @@ -1489,7 +1525,7 @@ msgstr "" msgid "Relative time ranges" msgstr "" -#: src/components/admin/domains/DomainList.vue:77 +#: src/components/admin/domains/DomainList.vue:80 msgid "Relay" msgstr "" @@ -1501,11 +1537,11 @@ msgstr "" msgid "Reload" msgstr "" -#: src/components/login/LoginForm.vue:77 +#: src/components/login/LoginForm.vue:81 msgid "Remember me" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:37 +#: src/components/admin/identities/AccountSenderAddresses.vue:36 msgid "Remove this address" msgstr "" @@ -1525,12 +1561,12 @@ msgstr "" msgid "Resend SMS." msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:93 +#: src/components/account/TwoFactorAuthForm.vue:94 msgid "Reset recovery codes" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:144 -#: src/components/admin/identities/AccountEditForm.vue:143 +#: src/components/admin/domains/DomainEditForm.vue:149 +#: src/components/admin/identities/AccountEditForm.vue:144 msgid "Resources" msgstr "" @@ -1542,7 +1578,7 @@ msgstr "" msgid "Retry reset" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:45 +#: src/components/login/PasswordRecoveryChangeForm.vue:47 #: src/components/login/PasswordRecoveryForm.vue:38 #: src/components/login/PasswordRecoveryForm.vue:77 #: src/components/login/PasswordRecoverySmsTotpForm.vue:44 @@ -1552,7 +1588,7 @@ msgstr "" msgid "Return to login" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:157 +#: src/components/admin/identities/AccountCreationForm.vue:163 #: src/components/admin/identities/AccountCreationForm.vue:92 #: src/components/admin/identities/AccountCreationForm.vue:93 #: src/components/admin/identities/AccountEditForm.vue:9 @@ -1560,10 +1596,10 @@ msgstr "" msgid "Role" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:163 -#: src/components/admin/identities/AccountEditForm.vue:193 -#: src/components/admin/identities/AliasEditForm.vue:74 -#: src/components/admin/imap_migration/ProviderForm.vue:60 +#: src/components/admin/domains/DomainEditForm.vue:168 +#: src/components/admin/identities/AccountEditForm.vue:194 +#: src/components/admin/identities/AliasEditForm.vue:77 +#: src/components/admin/imap_migration/ProviderForm.vue:61 msgid "Save" msgstr "" @@ -1586,7 +1622,7 @@ msgstr "" msgid "Secured" msgstr "" -#: src/layouts/dashboard/NavBar.vue:273 src/views/account/SecurityView.vue:4 +#: src/views/account/SecurityView.vue:4 src/views/account/SettingsView.vue:15 msgid "Security" msgstr "" @@ -1598,24 +1634,32 @@ msgstr "" msgid "Select file" msgstr "" -#: src/components/admin/identities/AccountEditForm.vue:92 +#: src/components/admin/identities/AccountEditForm.vue:93 msgid "Send only" msgstr "" -#: src/components/admin/identities/AccountCreationForm.vue:132 +#: src/components/admin/identities/AccountCreationForm.vue:138 #: src/components/admin/identities/form_steps/AccountMailboxForm.vue:40 msgid "Send only account" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:5 +#: src/components/admin/identities/AccountSenderAddresses.vue:97 +msgid "Sender address added" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:104 +msgid "Sender address deleted" +msgstr "" + +#: src/components/admin/identities/AccountSenderAddresses.vue:4 msgid "Sender addresses" msgstr "" -#: src/components/admin/domains/DomainList.vue:203 +#: src/components/admin/domains/DomainList.vue:210 msgid "Sending limit" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:84 +#: src/components/admin/domains/DomainEditForm.vue:87 msgid "Sending limit: " msgstr "" @@ -1623,16 +1667,16 @@ msgstr "" msgid "Separator" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:216 +#: src/components/admin/domains/DomainCreationForm.vue:217 #: src/components/admin/domains/form_steps/DomainTransportForm.vue:3 msgid "Service" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:116 +#: src/components/admin/domains/DomainEditForm.vue:121 msgid "Service: " msgstr "" -#: src/layouts/dashboard/NavBar.vue:246 +#: src/layouts/dashboard/NavBar.vue:247 src/layouts/dashboard/NavBar.vue:261 msgid "Settings" msgstr "" @@ -1644,7 +1688,7 @@ msgstr "" msgid "Simple user" msgstr "" -#: src/components/admin/identities/AccountSenderAddresses.vue:18 +#: src/components/admin/identities/AccountSenderAddresses.vue:17 msgid "Specify an email address" msgstr "" @@ -1661,7 +1705,7 @@ msgstr "" msgid "Start typing a name here..." msgstr "" -#: src/layouts/dashboard/NavBar.vue:211 +#: src/layouts/dashboard/NavBar.vue:212 #: src/views/admin/domains/DomainView.vue:24 #: src/views/admin/monitoring/StatisticsView.vue:3 msgid "Statistics" @@ -1672,7 +1716,11 @@ msgstr "" msgid "Status" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:40 +#: src/components/account/AutoReplyForm.vue:12 +msgid "Subject" +msgstr "" + +#: src/components/login/PasswordRecoveryChangeForm.vue:42 #: src/components/login/PasswordRecoveryForm.vue:33 #: src/components/login/PasswordRecoverySmsTotpForm.vue:34 #: src/views/login/PasswordRecoveryForm.vue:38 @@ -1680,7 +1728,7 @@ msgid "Submit" msgstr "" #: src/components/tools/CreationForm.vue:20 -#: src/components/tools/CreationForm.vue:73 +#: src/components/tools/CreationForm.vue:74 msgid "Summary" msgstr "" @@ -1696,6 +1744,13 @@ msgstr "" msgid "Tags" msgstr "" +#: src/components/account/AutoReplyForm.vue:23 +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 "" + #: src/components/tools/ImportForm.vue:16 msgid "" "The first element of each line is mandatory and must be equal to one of the " @@ -1724,8 +1779,8 @@ msgstr "" msgid "To" msgstr "" -#: src/components/login/LoginForm.vue:44 -#: src/components/login/PasswordRecoveryChangeForm.vue:126 +#: src/components/login/LoginForm.vue:48 +#: src/components/login/PasswordRecoveryChangeForm.vue:128 #: src/components/login/PasswordRecoveryForm.vue:125 #: src/components/login/PasswordRecoverySmsTotpForm.vue:103 #: src/views/login/PasswordRecoveryForm.vue:124 @@ -1733,7 +1788,7 @@ msgid "Too many unsuccessful attempts, please try later." msgstr "" #: src/components/admin/dmarc/DmarcAligmentChart.vue:140 -#: src/components/admin/dmarc/DmarcSourceTable.vue:11 +#: src/components/admin/dmarc/DmarcSourceTable.vue:12 msgid "Total" msgstr "" @@ -1743,7 +1798,7 @@ msgstr "" #: src/components/admin/domains/DomainCreationForm.vue:151 #: src/components/admin/domains/DomainCreationForm.vue:214 -#: src/components/admin/domains/DomainEditForm.vue:108 +#: src/components/admin/domains/DomainEditForm.vue:113 msgid "Transport" msgstr "" @@ -1763,7 +1818,7 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/components/account/TwoFactorAuthForm.vue:101 +#: src/components/account/TwoFactorAuthForm.vue:102 msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." @@ -1778,7 +1833,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/components/admin/domains/DomainEditForm.vue:19 +#: src/components/admin/domains/DomainEditForm.vue:20 msgid "Type: " msgstr "" @@ -1800,11 +1855,19 @@ msgstr "" msgid "Unlimited" msgstr "" +#: src/components/account/AutoReplyForm.vue:43 +msgid "Until" +msgstr "" + #: src/components/account/ForwardForm.vue:25 #: src/components/admin/domains/DomainAliasForm.vue:68 msgid "Update" msgstr "" +#: src/components/account/AutoReplyForm.vue:54 +msgid "Update auto-reply" +msgstr "" + #: src/components/account/ProfileForm.vue:75 msgid "Update Password" msgstr "" @@ -1825,14 +1888,14 @@ msgstr "" msgid "User seems wrong, return to login or restart reset the process?" msgstr "" -#: src/components/login/PasswordRecoveryChangeForm.vue:117 +#: src/components/login/PasswordRecoveryChangeForm.vue:119 msgid "User unknown." msgstr "" -#: src/components/admin/domains/DomainAdminList.vue:105 +#: src/components/admin/domains/DomainAdminList.vue:106 #: src/components/admin/identities/AccountCreationForm.vue:98 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:3 -#: src/components/login/LoginForm.vue:62 +#: src/components/login/LoginForm.vue:66 msgid "Username" msgstr "" @@ -1852,16 +1915,17 @@ msgstr "" msgid "warning" msgstr "" +#: src/components/account/APISetupForm.vue:94 #: src/components/admin/domains/DNSDetail.vue:237 -#: src/components/admin/domains/DomainList.vue:235 +#: src/components/admin/domains/DomainList.vue:242 #: src/components/admin/identities/IdentityList.vue:204 #: src/components/admin/identities/IdentityList.vue:230 -#: src/components/tools/CreationForm.vue:126 +#: src/components/tools/CreationForm.vue:128 #: src/views/account/APISetupView.vue:101 msgid "Warning" msgstr "" -#: src/components/tools/TimeSerieChart.vue:109 +#: src/components/tools/TimeSerieChart.vue:111 msgid "Week" msgstr "" @@ -1873,11 +1937,11 @@ msgstr "" msgid "With a mailbox" msgstr "" -#: src/components/admin/domains/DomainCreationForm.vue:257 +#: src/components/admin/domains/DomainCreationForm.vue:260 msgid "With mailbox" msgstr "" -#: src/components/tools/TimeSerieChart.vue:111 +#: src/components/tools/TimeSerieChart.vue:113 msgid "Year" msgstr "" @@ -1887,13 +1951,14 @@ msgstr "" #: src/components/admin/domains/DNSDetail.vue:224 #: src/components/admin/domains/DNSDetail.vue:244 -#: src/components/admin/domains/DomainList.vue:242 +#: src/components/admin/domains/DomainList.vue:249 #: src/components/admin/identities/IdentityList.vue:208 #: src/components/admin/identities/IdentityList.vue:234 -#: src/components/tools/CreationForm.vue:132 +#: src/components/tools/CreationForm.vue:134 msgid "Yes" msgstr "" +#: src/components/account/APISetupForm.vue:95 #: src/views/account/APISetupView.vue:102 msgid "You are about to delete your API access token" msgstr "" @@ -1906,10 +1971,12 @@ msgstr "" msgid "You need to bind at least one domain to the provider." msgstr "" +#: src/components/account/APISetupForm.vue:4 #: src/views/account/APISetupView.vue:9 msgid "Your API token has not been generated yet." msgstr "" +#: src/components/account/APISetupForm.vue:20 #: src/views/account/APISetupView.vue:25 msgid "Your API token is:" msgstr "" From 9b9a46b67f44e1a21ff58cdbd4b2522dcdb9a9b0 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 20 Mar 2024 10:18:44 +0100 Subject: [PATCH 06/10] Updated documentation --- doc/configuration.rst | 28 ++++++++++++++++++++++++++++ doc/index.rst | 3 --- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/doc/configuration.rst b/doc/configuration.rst index ee4368555..808f3193b 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -644,3 +644,31 @@ Hash the file using the following command:: Finally, reload postfix:: $ service postfix reload + +************************ +Auto-reply using Postfix +************************ + +The user that executes the autoreply script needs to access +:file:`settings.py`. You must apply proper permissions on this file. For +example, if :file:`settings.py` belongs to ``www-data:www-data``, you can add +the ``vmail`` user to the ``www-data`` group and set the read permission +for the group. + +To make Postfix use this feature, you need to update your +configuration file as follows: + +``/etc/postfix/master.cf``:: + + autoreply unix - n n - - pipe + flags= user=vmail: argv=python /manage.py autoreply $sender $mailbox + +Replace ```` by the name of the database you +use. ```` is the path of your Modoboa instance. + +.. note:: + + Auto-reply messages are just sent once per sender for a + pre-defined time period. By default, this period is equal to 1 day + (86400s), you can adjust this value by modifying the **Automatic + reply timeout** parameter available in the online panel. diff --git a/doc/index.rst b/doc/index.rst index 6d00c2965..1496f5da4 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -32,9 +32,6 @@ And it is extensible by nature and comes with a lot of additional extensions: |`modoboa-pfxadmin-migrate |A tool to migrate from |https://github.com/modoboa/modoboa-pfxadmin-migrate | |`_ |Postfixadmin | | +---------------------------------------------------------+-------------------------+------------------------------------------------------+ -|`modoboa-postfix-autoreply |Away message editor |https://modoboa-postfix-autoreply.readthedocs.io | -|`_ |(postfix compatible) | | -+---------------------------------------------------------+-------------------------+------------------------------------------------------+ |`modoboa-radicale |A frontend for `Radicale |https://modoboa-radicale.readthedocs.io | |`_ |`_ | | +---------------------------------------------------------+-------------------------+------------------------------------------------------+ From d8f9724d0801be13da7e0b198a69373a838dadda Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 20 Mar 2024 10:29:23 +0100 Subject: [PATCH 07/10] Updated doc logo --- doc/_static/modoboa_logo.png | Bin 13830 -> 7319 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/_static/modoboa_logo.png b/doc/_static/modoboa_logo.png index fe42c28ca534451388b3f4b412e54c7922bdccd3..a00cf98b6c76ac83cfa824e3daeb0effc3ea9a28 100644 GIT binary patch literal 7319 zcmdUU_g7Qf6L08E1VM^YrKofPr3pbmq)8De0YWo`Tm+h|YdjG?F`-d}g_L)61`<$7xW>nBtd0N_>Dd#Yg; zFtanioiW=y8R00hea`Z-r&!{HY0n4;=(C_NO{T5J_y`?~rqj6QvDoZrUyYurzsd z9Rdd$-H7^vTrRCCE>Z#j&}I{u@UmF>m#cCOO(rs=PV(AR7KHetJ-3V@goSny4FF)O zkb#bU!UO<_)GRzL_+wgx8NI{vhXR1E+`3hG$V_dq3n`fs;G!T~Koo4|{P8Xts=w1< z1po-mbkwaqFRsyi=ENWhjkYu$vDwCh~8rY%mqb26D#RCccMmP zi*AzR9Rchk?$4eERA2F}u#nvb6}WL=-n&cEQ33!S-iO%tnBXw$V53KX&h}%v6N^~G zJ@n$GPoInWm+;JQTOI>a`1{k9V;6R^5V&4((v@8$%cAdsdqyF2{CW7~PVf3eLsfXd zB{@evVW@>`YyvNsSnR<_5r<4$?qmzIVu6nL_jjs5L*H`Z%{y0?De5w2FjMM}-w*lD4JaiRU6kQ- zuwp8N75b>ZPd~yS!o2c9%~|ZNf1v!)DFzyl!6gwEaGx_{T29J_cz;uS4fLxCCepT0 zu`Ev{4(z9ZdGwjaDyM$&Ek4+40%p?11Rj>9LX^cGL$k9fEc(wlm%Sdw=^m3*deNn( z`xc<&R@0FWmi+266VR{8WJP_iG!LCB-dyo~0#Ysrc{@xGo zt^m;*#+2ABC;Ev zNEq)z85{lp&mzPoWuN}B&PM6T89bU_Mc*OOnHDbCT8;nPrX9$#%j)KA<`ah-P1Bm! zz0*qIaQfcKqUGUjT)gbF`JXDQl>;-XSyFm4?=^<{a_c@;jT?1oX%>@)OT&G~-b*9z zKk2rHIYoNxWW@43)m8U!w1U~<^UJR5!>Uzf4j#4A79$O?s}Y3Cag1x+AiCKkt1t`R zY6=VS-OGXW`J2jMTg0W)4L*nOwNp!dZjq+27~|)Y9)I`l(rV#Li_e7>(mi{dOHzSq z3!avV$k zBT`6FF!e_$>;;P(&p`szWIjaf+fi6;HC|eHKVvnt(3ZYelLpkB--;1t&|hu-E@Tz~ z&4fAz77p^_wP*dhz3+3)T7o$eS3PEt2;qskd@Y`6>S>E3F=?K&%l8@h8ukia2X`TG zw|lbOK^=8l?YRhFpZ@o}U3i;-Hx|mbEq0={J*WAdF9g@jK#bh=?!P{MRL9GM@#&iz zcmZmbQbUN}Y_PWD8Yu~xoM;~*x)Rwq= z)8Jj&4e#zWJY9Q6?|b>xRkRolDD~IcD1^W7+`37`J)45fVW{9!?HU(KBop#T7DnAOFc>GLyW9hh^zmKp1 zl1{A;Vw+1ssV;)}gwgHA=(`zDJdDk=!Ci;HHck(I?zb~(%zxCsI2Y}4*sqE?OJ~#* zv{x#}`>ZsEcwOU!6%45QEs^4KA5bD3^$!V+3pSU7u6%OkB{KJMiJpcwG26p5;Y7IR zst`j6gf0%r7x?9DG|iS<605qJhF9?4HYwz1dycXD>0HZDy9YwxL^7#l8w-w3A#b-+ zsjsUmQ-faS+77WBVvgQ#b(g+rc}zs%(qJ4OdP4_8U%LwQtpw;6c&I_b3WIez#XOJB zIT#=`p2!lh=U*j%2fxPuo~ZyUl2lSW{>?OyEmrkocw7GzpH-rjpG(tU$lW7EF{yj` z{GffS>~R(s#Lo1KZzh$k&b#cy^?yTYjyrmA=g_IwC z5Z*sMD#0Qyfks6LhT1osDTeQyaGpr2DzPs92*7spz-vSiirxhKBU{XC_Zx{e4iakK zCByCQ9^Dtzm{7eQc`EO$Hfxi~LB&Ri(DVOmi+SI68NU5*LVaSa%duEW`UE#$TdCvK z*c~bDPcAqWY7hh-Cg10G=X-siXX_D4tsJN8exxM?Wu`=|j3*d0xPd;0J2x{D_!-iz zWJfO?g6C7)kDcE(>H>+lVld%`3L1HDBM+ra3u0lIY%oXy>plYQkOr%35i>nP8k`iF z=4EQt}_C1JF+-DV4y-QJ??gK;t+Mu*99-u zTODBiKJS#$RX#%zip<@iYXp8mk&?5p&3zm(Ffq~PU*!lf^Q(BQAG%9KxmzZuRv6#D zhq@QFK7fU|m5RX6Ty;#m4@_bpbf`sIYE+08*W%}_*~>p4f_T|#*fRu~UtV?^Vqxw` z-;b#TDWQz9XP#0Ri3YaR#+4Mx)aWJafyiA@#>hoO2jMvG?MyNlWZWKAnz7`em@+EI z1;)4t!QBwe?3tO=s=ty%DJDgz5Hr@(r|uXY5%*uTQnt7$Cg0-BZYMhG03*+yL`-h`63mi$F}?RybyKckb5Opo zG5z|gYsaeNGV4DanLQu2xoF)ixvpOi%-ke2R%4r^X=i23c6p=H=89z+nEzxza9oNb z77+BtJHZWFYb^;9|@mNn+28a4GB-vwW}ttx4uZjWT< z^AeGxtEsm1nv54dS!z`k6b)0ZeOQ~#_H=*hiL&K3+pIYGzRt%Rq+$uFcPRd;u5a%k z)<%ggb=8mOaPOAuaq?NCLO`ByCy;?2K5ZJpOAEX+flql*K2FLhiNxI~N&qt??C| zMOGBMy?nxud{6z2?d+PO{TakY(-AaQ;=VrwNuO>y{Z#oq(y+4l=-hYL@xE}m%!+P{ z$s26*>w=sN(Mf59 z#K^HJ)y}__>Ud>S)bPQ&-BwY{naUA+rLf^`XTHcWi}hVEAvo&6K!tk^2KqRq@gejj z_{8dE_fg7LXVMcT{Qa!*Fhfyt=ar4i6r0c7<+yvNEM~4O>|0Qr3INa=nR6`)@c`dQ zZhrkGGb-@qyx^hAyX3}QFm8#A$gnzz2HyN10+9TDnVSp*L`|OrB zq9Myfa`tcl0Aq(#Ru0fGVA#~v$EbDUzWx<)f$~rLM_^&ny|~3IKcM(;*hA8xcO2H` z@=e**>1D`{%=z&1LXy?h@GqZB$wSzIt-lu#xPc9qQ1U1y%38|Q*v)J&r)jIm+1~Xy zXp;*~Jj4G730Mw{tStm|CSSQ;1Ri3WEeDJ@RonbLs)GmGB!+T^ySso_mbOM(dk|u~ zC|uvvxMt$kY`aa%XS_<7MflN`Z<_#J0p{RyiL_W;qrzd=$dupBN&mc{wW?0%cDHug zIh}c0J6HC>=FMtoe!RJKcI(;uF9N&CglK*I=|$Aq%QGL1uTGaJGtw{qw!e7&iL0{c zfs_0JpM}AAACI80sks;s{q19viWLK~0x!jsjAPyvPH-HD%7sK)(+r z(t4*Xb*X78qgRzlV8sv?h9S3!lGrKEl3^Q&0$L!**`9O2ouNsMZJWd^uhe~jhpZ&X zY+C@Dr%DLVude3$O9~I@J0wnQn)Vv13%UXx083807ULH$CcRLDt>s7mkTB?T*JngL z9W8M8iBnaLzjNuGvD2OQt>hNU_D_(tQoZHJeT^&CS7ByH^0m%Z(CT5-_|=8AQgHol zj+j@S*`j)7VAb}bv5GzH*(@O@75k=7vS#_6w^%$DxxG?TFq^9C*|v0j@F1aSJSAYq zpMQZkXs&f8w|%a8Iz3FAeJbtZDc++iwQ?=f>A+1s+MLnZinEshIvxyL`GJ>|f@w1v z2l}{h7Wsbcd5tab8yc28z~|GZ2Sa5IMlNk#_*Cy7>wE=ER1Nl1{XFzYzld*iC7JrB zUlgyeHy;k_1Rgd?>>kzrom05rXa%Pdh4+*FgVh=i?UL%lCQF7b&$@?%sq-$_j{khk zxGH2;U4&Gzx2|`F?qqYEP2c|B%^v?j9Uk8vK6X4#dP{KFRH~GP8E*$SyBcG3^4Ba2 zsCIjocg!6JO;m3+2$$Ukx}G73OYm*t4{lw~YO8Dmd087<3-#l{@pvn{FUyxfuMIgP z0IqC_KbYGN1D10Z#9KBuZ2Uia4P?xcxYw%_OXXC)`){F8b;|ODPn*;os?CIva^a5g z-{olV4{PQ0i@bseIp22m1L{!Z`q{X+hdotNXjN!l5@^lvqR_Chv;ADpUn7DhO2Wlt zc0wt1Qaz4O9P$}&(0n`}S*ntH=>+y^ z5Wpxrc?45?h2zoK=`=P| zht6Jy$xF9XMsH8H*>2S}B1E8#w@fO^BE6;-W}<@vL*i=wOY0f;B;{=DmQi2&k^g=4 z?4Bt9L*0Ef+{orHZao>9K|8hUAG=J?&W)e_wMgAH+6p;0w+-7fmVd1DaD?7#sJn?$ zSU~htsDn0h;Rn{B~vYOI23y&sO_ zQ*EXKVldYTK<>V|)`}UpieDS=M1mkXH_Y=e(~VWpXlROLP(tOoshj%)w{t#N7RSQ= zGq3t=or&AF&*JZ~^QG>y%Ylvfj`3B3zJP~}uM_bbAz+qq+?EpUcX?5cJ+17O6bO4r zIQSZ&5p(KqZ+-l2u+@(o0CR-nj;$l?>uI*>7gIxLsx^m2MHe(Iv$v+WSD|)SN4@)Y zi~hyk_uw z_x7iHRh@WI%?U=t;P$qJmXC7d&GL@F$^Jvi`tXZ7#?Yxkn+0|{7HAVE*m9%q;Q>uV zM}cc&H4HU?(dm#|;Z-fCNUOD6HvDY_=d9|AKhyh}MGtmPue0ecb9#Cu44&= zsU>vC0c9R}*qr`aC-xt%etu-*xe09haa7>hmNXOj6Ks;CnRhtHZqF_y!|I^H3f3!p z6^}`HxhPD7q%k=3J#T_GmHfJO(?7Xpjqt6$gsR$_Z@EH3_$oRGry3@O*59}CXb!e4 zh$pq~HTF&094&Z_{0h4qt&%u?dwMRO)dk84!hLY3wSl$6mv zV9r*0b6^jOof?Jg;i{-Nf%LP0sar@>9Dcdo@4|UL+bS$<@$`&ePks$kAn$0~ebnou zr$)53+x7bncTgyGpAoY=il?3@Ve;H3#x@Qgb{&)z7y5o}!*hqKZx$NB3>UU=RaidZ z5yi6*+o|JU*CbjS54X`EqiZ&Vr;gcmZetiV<3etV<{P17-n6K{+!e9E? z>xGY>hTL3uY-qJ^Nm%>I-K2iFqC-qwlZo>6fEOK>Lw>BWKoyBI=J<5&$D`wEGJKmh zTXHEMYksyMgcoyHkp?|uiiZUH53t`C=X2~I)cofPQ=3n^F5}x$?h@DSgOTQ@*pMts zpJ6&^xAv#dL{#%;TZwzn_^#I4-uPm<{gQ>}#)`H&@|8}PrH3k`|T{;$MZl0|?x6uGRNCjB|B4*_=f0k{(NmFw8(k6tj@&>}=?)PFIFXc+RJwb>C~0XBq??V=Ak8Kq zB@KV@`+J`M`#js;`#I;Hd(XM&?%s1FOiSYhIVn9U001CYRZ-Ld0PxY*?;|8c*WW$A z(s!?aZogGAa03AN*={~~Uiq>f*C3s{lD<2{#oFD|?41=r-qOX~ibd7Q%*IN`%FOb; zYp<0Q004|tRg{N%P5(|Gbb0h5Wi9Yi`Et(b6FDJ$odrYkm|!Vkz9WD3lIp){ihL<4 z^%Wvp3C_G@+rjRe+OB7hEf8Bv^G}WFR&gEWf34 zIo(hIN%pbI@Dz2C<|vvK8&C7VK@J9O$Ny3I*ch4FxgP78efysjs|a^-crxYB&nmcY zoon!0*G+Q$v_ZSA8|a%y1cR_ygrz)VS!_a+PCfs!Bw?56Hia1MK7-ks*`!}OmZiqv z-((R${}dRn*+^0vHS$l`EM@}|{)Y;Tvq;C$>x2)$2>z3eptq*a6UDfN8vnDvzhubR zbNin98z%sOYnZL!;NP;|p~Uy*K20=cbl9`r;C@9O7_ITsF_=FP@zGTNx9mu0q~#3( z0NDyn<`2I({8}+o{f1?M{st33N6}(aR&d8wcX_d3V}DArbxb2JHx5K$H_hEcNsn#YFeB~-{8lcg`B|+51OmZ z3h&^pb}y`ZzrTS2&)&-D46b2$J|kmB5Q5_>#Q!V>u4zeDZXjmiV$6F$hkKZJ!|7Kn zmVDV>{6WO5(0@{s_=E>ZsjKpzUG3j1n3yR#$a^x4N~0aV+)>Xp}&_y1XnY6#k)ML_%S{gdL_Ci6A< zaU7{mS4a5294TP7n;b%}op7>$jmn||8N_K_=a~Vw>E9Uj29RVox1fp1uW*+8r;26J zVH&na>s3zTSq%M3+gR25jBd}3IKYg4By``Nj5mgErSs_m`#*Dh`&^>}T(1WGye#zs z?5(U^bF2TyZ8RAHEpO8zc%dK0@!sk`tQ-upG_@b?r&_rcrS(8X;l?BVlp+dz7uyvV z1-#zgzbR%r)qW_~IsBrB1;GCfB=o=LZ{tFY%j%gH`Y(&bydl5gvr&gxLe~iQ3jNPU z^2+h(ZZOjaY@5tYOoy*xD7`v=TvrCz0|>yOUMLsJW@wxjQ6KKBynk0!(r2t^abDoz zUZS{Ka|Z_CDl2ln{WO#Ke0i=%zmA1~q$dxUlQ_k6*^RA!onv1q#QI`UNCmdqTB1qtG&bJ0p4bzSwI~b+O8Cn?9fbfDavl;bh8$ zgq?Krx2bL{!6FG^ly}f!Tf%#eAFFtSSlS@PuiWpB`L`v7Vm+vZ{&7)47_}+A#O{Am zO^2l3Ab{V=_E9>+&q4RNL<~AjXm6lNAlh73ja;s0fYtDy=^YUC+V)!a?v>tnjGr`w z?_NI9PrOn48|EZYbf`{XfWPg(E;^8E@6QF~ViLF+KL9anrDiU2ai{807sp9nXIpg( z$7dbH6s~i>v~pm@*Vb{CyBTu;c_8$C^y543OBa+&7aL-`<3~TEqZuiEcmKX2yBO#Q z@qNJX#^rZ1nwWwqlqQ{K=*>~)n{xy2=87+8FiB-T2~*^aa|*`vXb8Rc#H ziNo)e)jY%D37Zy~)h$5JBy_)aP&E8;SADBAr;qC|w%uF{*~)j9TU$;Q=jHuN;m>?* zL`cDyi{5gXhanWqf3XeHWY%#@XZ?0m<?G69l^dC7cR1zEg-$zalJf}z;Wq!dz5e=h#)!9 z!?id>L;5kRyu5f1l`AaFsK2gr);FDEuYus#b?^Luxvk8I7D;VUGhYOENH8Q>qdZHf zzAbY~Tc~%NjE>tt24iC_rGeQvdR)U&%KKhq$)qADjE`;%76fymDcMS$sG_X92*A=2 zKS2Z~mxSsMQ*Ud!jaC&DMUeq7dS(Pr+q6(MNV2%-@*Iq~Q^yin%mmYOn>Cm+t}p0d z)bBXlFjbQ-S}wQFT7NCQjOU@WOW!Pv9tC!%WK^8%8X0Ti_-ScUt>OiI+N;L)L(=kZ4wUMB5^hd_+MePJ8Qes@ls_rlckmk2z5(nBE1J1 zEk19iTVIvZ^9$Ge9hGyLcYg#R2cJ-s@%&xuy&vo`{ZAA||NAdg7Y zHD5}^d~fdDYGqWJdFD1VtS~I5fB$QSYZm7-Y255~X)4Z#f`_Q?QxZjR3d=s2Lt-uV zjnD6<>}}W_p3ah_m_|zLM%K`gwMMYvH~9utOuIG8K{$QHP3nbok^K8|8%M+xxOPfw zEuUBE=gtevm?ayw`6T?Vkm-?9i@(6>wo9&q-8a@l15Hvg@6_Ck{I-L<+rM9l$_;&QqGGPU#=b2HBc{5l27}Db`oBW~+9Wr^&d7FF3vF z0X*(=QJV(l(y1+X%hE#Tm;49gE37^b!aDx4IA~+UCk`VN5~)+$Q(PMM@}6l5&uI=n ze3R-DyCH$w?BjW->LzWoRp(jY`>7U7%qM#!dxg1DX*MJ(^^iC69Dg|f#R0V70XZwe$Kl);x-R+ zWvqu*@2s@9uF1E)s1xLEW@>U1yabvQ5m+AnVnNl}7e{E8J||%$akDydlZDk%!l;1qx?Vc~KRLisBPC-~d^;uTV?^J_ zUvKDtJ;gvU;|Xh0MgYe9d2Any6a4>mR zv@-kD`#F!*Y)O!hs5E-qV7xnUTsL~==o4`l{D*=`f$?bkAeTB~*vnXR`SxNG0bD1! zR;o0y{6GY_`+*ke@E>~VLhkPHH z@4Oycx-+B~hMebKHr9QJl`LeZt3s*jK>hXt+=MX+``WRRKJ47#a-!pEwDG}8xs?;^ zJ0N$y3bUezrh&ONc$A{!ltW%Wbb5KIBgjq1$1EE@Bo044oaIZ(05SQb31zQ4h@-z4 zc+sh8?zUd-_;Sg*C;l|-2POQ?6``J)3BtWT(!AXJYDzRJ^x@~CzPWm@Rd1D#qkJTgocOgdAz3vaN#svpwOW* zqi@4d6$Odyx-7A?aAGNFD6-?3XvE^m^2&Avt-dk$&FUKo_&MB`HtIN73A1@eBM;fK zNJ|&JI_1zNqot9;BAGxo~_fsWC^=-EdboGrJZ8g;gwU{Ej!4|Rjc~V z&qFZc2JQiKOJwOfkX{63*myurYgrr|VTYiYrGd4KMNsakVB8a<5tbvpB56ryKJu0o~IJ+KTd{F(|En(mU5qV98 z$rFR&?{n)28=->fVxSdq3bs|U;J^pY;`nu0pVs&`&HEnl;3pCva|B2rXJ;5cq`t@ct~( z*hUfcAJr7B8i{iVQxwGHZd8QbM1SibgFuIY2H{tXI&W^zb8fL}(wC+G(<( z>rS8@31m6ncrxlrZ+YrmV2OIvCl`NA^QI57ucy&96q$7ejap7`nq!5 z_|%jfuPSKeQh?2Mli-<&s`fRwOi)IZMCvvnO%Y-c49)6sU}A{Z%GkBxW_p@eO$zrD zh{jzmb7L0J#vh&B;2rEeAjAdav_{OVoFWyIT6-Wq?KtmUT zO+BEZA9~%6WDWoB$X*VM8fFge@YB#f7{1S1+z(o=kKYmNiS|yknbwp zB}zEjDNYT0XS4*Rpm9UT?0l{v7F3tFKv9!4d^cRB)B(_VEVy{$8z52j!<} zbsA8AE?ck93C6<4$Aa<745aO{M_-AMA3j(|tl9&_?bTc5IT=^J+AGSvi;>MOTCaW< zEK$&|+O3u8Y1R)1xx_wy#@Jb;E@~XW$v~a$**F*Mj}|=M4J;xjKFD+MdZjS@RY_Vm zEKpkgI_>k4vpJY!0XQYvjc9oAJQqQN?3+e;ULIR*V@lk}-_TFavg2?v=R;=qX+dN8 z?vEEquY;4v^WO4AsRj|(c8JcN&C?DNycuMoy`OY2&gJc!Eo7n}GC z<9tfVF)k<8R}AldnwWq2+>8fwHMaMJ)+Z}0)OK2z z{lq{1S(N8cmfFGjyb;9A5kxpg{0Q{JiYFQa{ZhK%#_R1dG8<1JHJzhmrXEY{aoHf# z5*z8sJ}FI;8FOC)VclgNVOJVCx93}FH>61LrPt$9iC5HN~ zj{?qNR5YzxewGLoweci4s4O+%fLAEwE)z)n8#1LHhG9c`e?(Hu4&*cHpX?(8+a5ed zDZujmO@Qgv?Me!B9s29$`uLy;3FU8jqt0jQg}UQ1X(A}@$i?s3>@OWY!@I;$jdyWV zRA)sjJmB69x>Rh~J^H;03)!ze<$aZJYu}$j=b@?k3)58TG<*H`GLARTSfdz~-|^OG zBNcTee`Lm$BDIXDJ3HHu5`|?9^aBbnU`usag%w$|5?$g+Qe>wVTj6w>jye*^iQ4C9 z!1A+wH?1G^z!^Nm78gLJM`Jn8ke-l`iBj#?C%JF01FByGHI5$|B9A(JeOXAOisW@` zmiO0KC0aDlB;mE~=tt0EFD`BSx4OOBTYomv*4bh?yQopq;GVY;r*n^RWH z%7_l~DxO=t|6V<6kFL}ocz63b!N?9o^(uuHl#Eb;(W%S6$+&DSxYw=;Ub*`63mT^L ztp3lFnqV_+gYMcmbCx8%M^GB?P^6e2wsW{KjFjPFJf6oye)>a31P^LVu2RUK@z**d z5~-v<=8Z{Ep`#nl9^A3t5GIC@`!Rx7pvCTnEqC!Nxckjbbw@*p@K(C|H1#YE_MaNY zclm*H?P*2%mnC>#y(QFUm(w1$kA2z!9|IQ8>L!o8|CT_&z=QWWCED{`OeOy-(L3uA zOL_#oU)mz{Ry=Vlwgtg$OI89wYRmbw_U*F*^FFFiq~xk&qN9rU>wsvgk=vb|6jK5S5p z1dsHRyqJH3t|za&R4lpdKp3rZ1(0Jdm6WEpW)G$2flBgE)%a0k$X+Y)*TnmKv1ctb zo2#-V*-L)p#TFSva`465{fU(kLQ~qV1H_!VUg4i@fr#|t@p8kkA#e%Hy%(|kQ^XHn z_7o>f#0L;ma_mgWs^Wr(FpvInHefrtg5l#>S)9fU!t=cT!} zk(zqb;y#|ja;oal_j!i3e?K(7QCus}!0o;k7;?Rk`kww_mNMM~GGHyDo8+K?n}g+A zH@`&*(Dhm^5MV$6AqV_P2R)H<=T>}6L*z+%gSI`gQV~d!auZ?1ABD#`gtA;X9e3Wb zAiO4JEg~eIRcRgcyy+f$&+Cr`TK!53${<{$`AmJR5-IiJkTuKsamrMO0usB#y`wQZnYNv(@jbQT}jZcnAOnh(N!7f zw>fC(-Ejb)N7@17M+kLi%cdp>pLCug_fidm=PCE{3|B?B=;4|h7u?sC$}odF7-SBR z!a5O{&4hU{NA)AcpQocxsf&jLpA8_T-}T<*FE*rr{FTZJ5S-ks6T>J3{EiSHM%*dr zC>V6F(7m&g(fdoJ+E1Nk$a`PzHlubBES}M`K+#JD$0LlVZCp^VV=68AHMOPH+wH8eYm2xf_rB+adNoq&z$*q0-kxr>TMU$dYB}-i31TwpaVMynK>6hNw(kO<6hX zQb;-9H9>yumFVs=@)#5Kw_;upxnBKJzm5_n;C~cc?`4qYFE1^)b_JYptvpd0&2ty= zcmpXaK>N9;>k05W(7zddYW}fC49}6eBEyhWi>g)@XoZ}K!SgfLqKibmPl7u+6=kM!Q1#bwl!rZV6W43LZ>+##?HpyXl%(%$ktOtx}4yyTQsxGnumI8 zD)-k}?ZxhP;pe}U`i46&NTib--Uyr1jP~aDu8+}Wds)azMN@@cUMNu{_rfdPU#F)1 zc^f|bp9+y`k~rHH2yO#=VX3q$soO9Qe?S)n?gfPUtwUmkF^XdQZgXqTCXyRfX*i;5vhp`tk8#Yyz$b z6N`=DK=B;9JsidEr~@Bg_h(Zikcfg_zd3^B4@;I%AxNZE4Q87D7do7>l!Yv|kvf5d z;lJJ!t83s`aVf&3v|dN(OHaOS@0$2E{PajW2XlslzPQaWL(;x`h%K@_O_VnQ2qGKd zc!0JZ6DG8O)>^9BFL}9|4m9H*Xlu7*Zq9x6tx)&-y6Jm=hQ7UB(P2-7n^*wjMGn#Z zjetiaTB>J;I;s~cU>%PjxLUd={2e209khE4j41FXKcxkt&p(r!0<<^}O_-QSpkyk& z3LRtj>_=PK=b*PPXTSEf@tlW$E8)T#UBg ziP-YeA~E?*T4VuoJ?Y-9p>pLsdVn-oHe3txNZ*2OBd@}mEq}Tqg`Ut|J-Ui0rvC&H zoPi(~MW5=KcPt^xEDLR@WoxY;tEDHEY$z6U8iN8-DC5})#IX(Xq&AVJKeUQ9w6Jyr zRADSXkxSjy^>?Wzpvz`TfOjHjsc%?X`Sl3kx;H4u5c+eHC5Bd?Mugmy9iX5-ko;Mv z;E`#%$V5soT=Ug9=E0_#(;JvD_cgysIHHWPqXA3E-9sW#P=Lsu7m`v<8b?*V?ScK9QOj~{QSzj{|99&%b6oc-Fy;!B-&Hm+r-Pcf)pw_A%L65*kZrZr7Z z{+1`;)0q=yi%++I$csWm{lBkXLtA?^$ku(*&-)pg@BR8{;s4{uoG zM+rDTVsh0jCZj<_&K$H5Fm*#c#EKV{b38zd%aGA0c;Qd>Ni_6XU-GKwn!7C}qT8w_JnUhP;o?mREUca$7z|>R0=ZE0t=_DGn6R2@)XEY~HLO#HU`Q6H_VP=L1S_KbJ?rt%q7U*es3Uf3u0j_R(^Zb!|Gam}Xrc!AssLnc3 zmGJ}673hCx^y9X)i~Zfg&Vb0mH_Rr*DZxtLDlR?~OU*Rs9rU-+`T#P{pV&$9uTKrSR+pZeCS=)4`hZT!l7h6Sp;tAyx({oW7c=V z_4qJ@LIqwQdFPvWf$UEa$E-T!ein!n$?|$CWq~PI+EzaB7dw#eQIL;FyuO9SS_59h z;d#Pg8mPnu9h31Au|LL6Zkn>nZexH6?(G4l#!Z43z=E4>YfhTyr?fOCZ2C*L6;s&) ztpXborcB3xJ{jhFiBpO}t!(P4>R5xSESvPf12h#}$D}9;K4SFzI(9$IYvk$T`MN!V1F zs|?Rbv7pE|-;eucyfjePg44>)8U2`BJ1zcHMy(#GvpTabNi^VI;vh|IV#FN@b9~Le zn-`RWag(5=IVJP;2pUwQ-=}etSq@VZ&c6>%ae%;U^@m>)9SrPgs5M!CG?eZ(7-rNk zLSmDQL1VBCxdj^g;g_@&&zsO4Pr)PrIa#jEhV)-Yx@0x|4?ICtv-h1`-JfKz#E9o; zBol>AJ{fE6e|Y){7KQw6ZSeNsqvHg4LwqRk7yE=;`k^Ci(_oXQzY;I^D0r9hVZwWe zpxtuKUEpEU|&N-u!J4q zN!^0T+lIUh#)QKFsHidk2xNUil=Nsz^aJzFjZCkLJNx{3q+|Ha;;+8#u3I2_g zaJ=7UggBzZr>l83X|eO}a>J=anyL922+pPQRVaj11(MeqNi5f6Iq(1FzU6ZDO1+0A zfOB66r7A7{{8wW}I6o~m50A=P$8m41=}vG%NSP6ngIddyWyXybN~b7#nuC%RyTZl; zDO^!T*BMfq2222Gxu-7mYVXt;q_r-+)wISa?6<3EHLt)YSw`2&Z?XwG$_Z)sYWERy zYZ=q6A6r(;gjMUZ8oNa>si4Ws=@-`k84?OHd_GLA$%*Rf-XDG1Lg**g^HJ`lqJj5j z)5KIE%A`rGrOY!(R=aI7OT@TE1#~W>RIX=$N$5x!`(%~E8PKxP(BoM!eHS~mc6%}4 z53!+8)z_oB7Cg%M&o3zLu`eT|U&<$AX`a0%+`-mn${bcXO2}JMi;sc|_tnUV`0q5f z5g^AM7CCeD_$kVuL;Gd)aWV}$AGq(-ErPz<&ow5I|1O})x2;|2z*!U1I-v-m*U_Hns$;F)x5_s?Lb6OX>_HrpRAt+&v5y#xz&#s{g@U zXk|N^BIAh&=#5SK$q|>!p*RA$=yt!dqtHO>pgzwrv~BCBvT>=NhCGK5PVLnaP`_Xa zuaW_;xh$h&zo5x-@0)Qp>1DYfhfNr?c3oUzZck;{+C47lgMVgrtnE+u481+lM1+DT zc>h<2EcwTUo6XPj?XI1)`fW+yCbrtTy8N=Uqt-WFuyso+Cnt4h)3>FSbOSTSvB@&M zjCwQO&oz>$X~2sQG&PVd*ePI77l(kRiJg|oimKXR;>H2Mgu(Ik9thK`sy1gM{qu4z zJ}B)lV$gl+5L(U(pLhWGcvO@rbm^hKmo}KC4s<=lygCBUvRtylhauf#T$e4U``H+2 zPrKJm8%=Gn^}unboPOhH)?zH39IGU$n+OuWPq!mDc@4-(jAl=W%@AivZC+zvSD(bV zr?1Py__a)Wo6@MK=IvhF?2A79@g%5bc6C8#$n3#)`heu^e9lzd{^J>uRM_QErTImP zYE!{H&YNwN`9sUuNP7n~t4ikKlH^Vko6HHi+k9C3yl-Ry1trz{RcVO%_UvchWUbtDm4EH!PoT>yUJde{sB4MQ3Tpt4~D@_**On>iMiUS_8zLtevSI;Da9S7u;eqB%yqYdCsgeMz>vE<7NUJe6U z#%cN=%cBKBFZyJvglq?nhHdkuG=E0=M02GsxSj=UpWjev8AbtDanGAu@ zQP!(gyfC@;qJIZI0C_^_>&Zb~&?9~cZQH)xiwU;h4;t+dF?2qybyhQ=am zq@xDlPb3eM#*K78N<@mfDzy&&u>PtfU)z0UW#!j)fjw49 z0n=>Lv3QXsQ51UWKn90Ae?aDj>0^?cf?}Jj{uo>8Opj^@l(f0V{Qbr9>`lufe^Rbj z0Kjx?c|?lD{nR)+71BpG_wASgg~CEY@8XSLGAuCqt{4U!J>0x9%&6%a z=`M|drzJ*NrPoB9q`8|EJmO2FyL3{nS#f)#5%g^y@cBFt@s?WX|M!7Ze{6k-J z6nFLE4iwl|HDqayq@>{gp&$6P@U2Gc(c6%7uG96yjqf9etrVdbz`#s*(Z8MR2_L*Q z{;U_qen)socT-}<%L9|M_uXEI&fBv45%O5JwTIUt#w zE17Ozn%T)`-RY)FZbus*O)@3Zk7uo>{EKl-odu)2ulHuXFL_6IlNJ;Reg*;h7O5OO zoaN|@^#t)|1s7I#CZEhT41N3plgi3r!vuQyeOOMRv~uSaR2e^^aL?q0?^wTT4!e>W zgPo7C&Bey%GR(n}YNl4;EfF5hE$RC;J#p=~7%c|Z-1TRsS88FH;0n;xU4>!`Y4Cp5 zj##&EbopSPmpO81BvqI(`!1uD6kW4OZZ6>t@l)3f=C6kjqK4QRe*Y{?pO5+7w6HvN z>AFoN!}zEE&iU(h#;HCy(L=C4(~z0ZU`B~Hr|{_?%^Md5>L!iPr=}f43~D$XU?syfbD=Vx+U7z{ z9T$s;qTP1O^xmgBj2(5Wy!fddfDcgoQ$EpP80qZP&-BS$F?zw0j@A9HbtbqGAN-2i z=W4_sv~5fo_$vrM-hY6vufL>!Sw2`I`>dF2EM~t;Vj-3eT=>Wi@a5^SmOC@tnTcyS zJKe}`UBW8sL31-pOEl=NgOO#%QlmVEETJHLYb04>B5+VXIHh$t?N~;~5iTXDXCowv z7MNfmcs?C<4jDY^_2J(piSA$7*Y4(=+1<~gU8t4R^%II2`4jsBq#5Sb2$8EOOnhf#!`{dnpqy=|t zM|BZM&qjHl$As3w^vl@wzPf_IL^Sc-5;n>`^ukvAyuO<>^Mm8)ao4(xp`XzAM6N*j zK((}&4ZWFP#E%epu3?hL>GgUXv>SG4bM^SXj zjx3Ad;{13CMPT*p?YxWWk&D9M?W2*Q$l85^g#N|v2!!Yp4lAA;(Pb9VR&G-#9}xsV zW!!-6JbR?BydV4XP-wBoKx#_nOogrYN745UfqmLx8pcPn-H?`o!UksD(pag`ovd_* zGxBb}#CGjLRRix!NHDIPcWY!-!aBFK*tB{mqCso=wna1PGZHevA>Kj2B7NVQhFKdt z-Yp5e_VCsiOU&?w4&Nn#@wzLv#k*pW~K(y^I;r!6@BolR(BYa{d8^E&|_ zIdb68C@h3QhnB%MmO&KoA`BC`s!q2gzZ~Z!eYJz$vmQN*aCXEW8N!=3yH5u@{PCC# z74e#j^C5*mfCyLtpO=7730ihASq9JR2GuUY+}Zeu;b|5dSsH;N%mw?Cml*kfwQ-ND zSUAz7Xk5c<{rS0GSyCi;vyt(--3t5rv_A<-^yoj!VZuwo&W6=x=g-9Lu;zTtECN-e z3pue5GzJ#^R-p~pM!v6lF*@W{e)fVd(bbvi8zaK$O)a?Q%eCDDm%dbFgufmlb)+Id zB}=&f`9o`|^1|HTd+9NiYS6YCK?B7!IU7j*#rwJ!8}l|ofgao5bdGRiYbCo7yP3pI zpAp-1xlcn5X&3@wg6N)%O` zI|5ZlCs898RMYjN9xWF2WK1+ov)(ISt?bXwz~9_Ohx_t|B2M-3zf_dHc(y~TSnB_X zS|x^|_A!4gvsa~Rn&f+^$Dm;gAA#mo{~}Ty{wkiLT~O7Jj2=WW2`=uJ)2y5uCfK}Y? z(Cn_$;VT9O6`!X*3)1uYIhkwKa6hcm!1oAH$n4(2fN7;A#FPHhvj1_V;)S$*#pT1w z^cj8vA3xC{^_G%93>wL^CnN79$-eY|-f1+m_ZBd*QU3Vsc9db_ty;08Fusb`oPNFF zh1-zyp_tjvHv6Q?Z>MrLKbFw`dK;-}pegjMzk_I_bEipY@nhoqk@|j$G*xo4u)TAr z`JeZ*Rse6*$DLDRrF<{b$bKv0tyx=13^xI_^S7eM3N2CtPh5@adH*I>y>u#Zs_T%; zZuG!}*j5i%HL#f>b-RfzVAdj^##9_#eRNDs91^o7N%yr4MuVTa9nfDKz5k+4PXUI( z`8kL>8k>n&un}Io^PJ{awWWLtU%}bmw~Zw5U*rt^Wb|!{bWKdi+s{>WUt5YX%7}h% zD%M8O!Nwn++f3xcl(*d#Na_M*6+Z5SwKe9qPKsOyhZ30dWohvJO`kO19gAu=x2?4P z#o*_3F_%YFL#?s4M($3#4}THEtIHdg4uSP9v?I^LJ!l_fR=#%qn7Rr2W~@<;f9Js$ z@BEvQi;ld=(zb*4H6|ruIsw2h|7BBX!9XR!AaL9(O0oOvx5PdLZkAZCU{vsmTF!E| z!D;`>{fjNhsPB(f{r}|TJ4}I%?AYaJuxmMtukgcQzY zO}Iw~tY|%-50Gnt&BtiV{P?mthi9eC+X(&X!xLSqs!jd#3%o6>@CQYG2bP8}OJnD; zi|sdy6T_j~9TeMEP9?c)6Z@~DLutq#%bMo0xyiu&)*tWe!ITbK;~y~;Fc&&+w<8Wd z{}JO0@a@=?IUQNhpg}EKP7H;_weyvo?QE{m#HudU!n6;fjq_OaiuBUNs?ju1_Ymm`1SOg z``BZL8}xosi3(6%+!7J|`fZwv3FX;+Eyc1b!EvhOGK3(?*h4+)HM1bpWBH4ANYTHG z0AQG*8zUoCz4B0vfrKMGGHH{^3bW1AC_({R@>c@*k?s;$OWs^6fm|R|9p2IdN*@N~ zA0HUl#2Q(T&kPm*<}vr(XHF+(DCPnI{DO=M{&yl4U|(Jp0!{NH!U;I`M%z+a-Ci+KE{)gd2KbJ%qZ^9~spJbnlJsCgpNFZiy~ z!7zlBsKBfG5qIO9;#4~IJ5Qz+9{`56P~No+AwB@@ghUqAFC`0!>ioIB7P% zzif@;P0;LqtGXYlfYHFnZ~_kH>pfB`svwhX+mFAzx?35v?g9j=7vxSu9yPg=Bv+`p zgKwP*+wI8}F;-){)L2&asLzU6DNTsH32W&6e$ZiYj&a2E@7CsaHvWn<&o2Sv@c?Vn z<}uedG0<>jr-(ryV=PmuqtNK!anF)`M;fP+W!W;Yd^lL>`f`8@`O=3O Date: Wed, 20 Mar 2024 10:36:27 +0100 Subject: [PATCH 08/10] Updated german translation file --- modoboa/locale/de/LC_MESSAGES/django.po | 1942 +++++++++++------------ 1 file changed, 898 insertions(+), 1044 deletions(-) diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po index 05d04c83c..4112af726 100644 --- a/modoboa/locale/de/LC_MESSAGES/django.po +++ b/modoboa/locale/de/LC_MESSAGES/django.po @@ -3,40 +3,19 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Alexander Dube , 2017 -# A L , 2016 -# Andreas Morgenstern , 2016 -# Arledrian , 2017 -# Arvedui , 2014-2015 -# ChaotischerTV , 2021 -# Christian Meyer , 2020 -# Christian Wiegand, 2017 -# controlcde, 2014-2015 -# CURETIX , 2017 -# Dennis Staufer, 2020 -# Der Archivar , 2018 -# Jan-Philipp Sprung, 2021 -# Manfred Mueller, 2022 -# Michael Cramer , 2020 -# Nicolas John, 2021 -# Olaf Probst , 2017 -# Patrick Koetter , 2010 -# Patrick Koetter , 2010 -# Robin Kopp , 2019 -# seoni, 2020 -# Thomas K , 2021 -# Tizian Reiter , 2017 -# Tobias Strobel, 2016 -# Tristan , 2016 +# bdaniel93, 2023 +# Justus Kagerer , 2020 +# NichtLeon Martin, 2022 msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-15 11:23+0100\n" -"PO-Revision-Date: 2022-02-17 15:08+0000\n" -"Last-Translator: Manfred Mueller\n" -"Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n" -"Language: de\n" +"POT-Creation-Date: 2024-03-20 10:36+0100\n" +"PO-Revision-Date: 2011-07-01 08:15+0000\n" +"Last-Translator: bdaniel93, 2023\n" +"Language-Team: German (Germany) (http://www.transifex.com/tonio/modoboa/" +"language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -47,28 +26,25 @@ msgid "" "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " "A value of 0 means no quota." msgstr "" -"Von Postfächern gemeinsam genutzte Quota/Speicherplatz. Kann in KB, MB " -"(Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu " -"verwenden." #: admin/api/v1/serializers.py:49 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." msgstr "" -"Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet" -" unlimitiertes Kontingent." #: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 msgid "No authorized MX record found for this domain" -msgstr "Kein autorisierter MX-Eintrag für diese Domain gefunden." +msgstr "" #: admin/api/v1/serializers.py:115 admin/forms/domain.py:160 msgid "Cannot be greater than domain quota" -msgstr "Kann nicht größer als Domain Kontingent sein" +msgstr "" #: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:384 #: admin/api/v2/serializers.py:482 admin/models/alias.py:38 +#, fuzzy +#| msgid "Permission denied" msgid "Permission denied." -msgstr "Zugriff verweigert." +msgstr "Zugriff verweigert" #: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77 #: admin/api/v2/serializers.py:414 admin/forms/alias.py:113 @@ -80,78 +56,81 @@ msgid "This field is required" msgstr "Dieses Feld ist erforderlich" #: admin/api/v1/serializers.py:235 +#, fuzzy +#| msgid "Hide features widget for resellers and domain administrators" msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "" -"Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." +msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" #: admin/api/v1/serializers.py:357 admin/api/v2/serializers.py:464 msgid "Not allowed for this role." -msgstr "Nicht erlaubt für diese Rolle." +msgstr "" #: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" -msgstr "Muss mit mailbox full_address übereinstimmen" +msgstr "" #: 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 +#, fuzzy +#| msgid "This field is required" msgid "This field is required." msgstr "Dieses Feld ist erforderlich" #: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 msgid "Local domain {} does not exist" -msgstr "Lokale Domain {} existiert nicht." +msgstr "" #: admin/api/v1/serializers.py:513 msgid "A list of recipient" -msgstr "Eine Liste der Empfänger" +msgstr "" #: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271 #, fuzzy -#| msgid "User '%s' already exists" +#| msgid "Enter a valid email address." msgid "This alias already exists" -msgstr "Benutzer %s existiert bereits" +msgstr "Geben Sie eine gültige E-Mail-Adresse ein." #: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." -msgstr "Sie haben keinen Zugriff auf diese Domain." +msgstr "" #: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." -msgstr "Sie haben keinen Zugriff auf diese Mailbox." +msgstr "" #: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" -msgstr "Hier ist Ihr neues Modoboa Passwort: {}" +msgstr "" #: admin/api/v2/serializers.py:103 admin/forms/domain.py:320 #, python-format msgid "User '%s' already exists" -msgstr "Benutzer %s existiert bereits" +msgstr "" #: 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 "Muss eine positive Ganzzahl sein" +msgstr "" #: admin/api/v2/serializers.py:232 admin/app_settings.py:244 #: pdfcredentials/api/v2/serializers.py:59 msgid "Directory not found." -msgstr "Verzeichnis nicht gefunden." +msgstr "" #: admin/api/v2/serializers.py:234 #, fuzzy -#| msgid "Directory not found." +#| msgid "Directory to store RRD files" msgid "Directory non-writable" -msgstr "Verzeichnis nicht gefunden." +msgstr "Ablageverzeichnis für RRD-Dateien" #: admin/api/v2/serializers.py:238 admin/app_settings.py:248 msgid "openssl not found, please make sure it is installed." -msgstr "openssl nicht gefunden, bitte sicherstellen, dass es installiert ist" +msgstr "" #: admin/api/v2/serializers.py:252 admin/app_settings.py:263 msgid "This field only allows valid IP addresses (or networks)" @@ -163,28 +142,28 @@ msgstr "" #: admin/api/v2/serializers.py:278 admin/app_settings.py:277 msgid "Define at least one authorized network / address" -msgstr "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein" +msgstr "" #: admin/api/v2/serializers.py:511 -#, fuzzy -#| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." -msgstr "Ein Postfach ist erforderlich" +msgstr "" #: admin/api/v2/serializers.py:674 #, fuzzy -#| msgid "Unknown" +#| msgid "Unknown tag {}" msgid "Unknown status" -msgstr "Unbekannt" +msgstr "Unbekanntes Tag {}" #: 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 "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" +msgstr "" #: admin/api/v2/viewsets.py:87 admin/views/domain.py:248 +#, fuzzy +#| msgid "You can't delete your own account" msgid "You can't delete your own domain" -msgstr "Sie können Ihre eigene Domain nicht löschen" +msgstr "Sie können Ihr eigenes Konto nicht löschen" #: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" @@ -199,101 +178,111 @@ msgstr "" #: admin/templates/admin/domains.html:5 limits/app_settings.py:36 #: limits/app_settings.py:172 limits/constants.py:13 msgid "Domains" -msgstr "Domains" +msgstr "" #: admin/app_settings.py:26 admin/app_settings.py:295 +#, fuzzy +#| msgid "Enable API access" msgid "Enable MX checks" -msgstr "Aktiviere MX Prüfungen" +msgstr "API-Zugriff aktivieren" #: admin/app_settings.py:28 admin/app_settings.py:297 msgid "Check that every domain has a valid MX record" -msgstr "Überprüfe jede Domain auf einen gültigen MX Eintrag" +msgstr "" #: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" -msgstr "Gültige MX-Einträge" +msgstr "" #: 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." +"A list of IP or network address every MX record should match. A warning will " +"be sent if a record does not respect it." msgstr "" -"Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht " -"wird, andere Einträge zu verwenden." #: admin/app_settings.py:43 admin/app_settings.py:317 msgid "New domains must use authorized MX(s)" -msgstr "gültige MX-Einträge für neue Domains erforderlich" +msgstr "" #: 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 "Verwendung gültiger MX-Einträge wird für neue Domains erzwungen." +msgstr "" #: admin/app_settings.py:52 admin/app_settings.py:329 #, fuzzy -#| msgid "Enable SPF checks" +#| msgid "Enable API access" msgid "Enable IPV6 checks" -msgstr "Aktiviere SPF-Prüfungen" +msgstr "API-Zugriff aktivieren" #: 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 API access" msgid "Enable SPF checks" -msgstr "Aktiviere SPF-Prüfungen" +msgstr "API-Zugriff aktivieren" #: admin/app_settings.py:60 admin/app_settings.py:341 msgid "Check if every domain has a valid SPF record" -msgstr "Überprüfe jede Domain auf einen gültigen SPF Eintrag" +msgstr "" #: admin/app_settings.py:64 admin/app_settings.py:348 +#, fuzzy +#| msgid "Enable API access" msgid "Enable DKIM checks" -msgstr "Aktiviere DKIM-Prüfungen" +msgstr "API-Zugriff aktivieren" #: 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 "" -"Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS" -" Eintrag" #: admin/app_settings.py:72 admin/app_settings.py:358 +#, fuzzy +#| msgid "Enable API access" msgid "Enable DMARC checks" -msgstr "Aktiviere DMARC-Prüfungen" +msgstr "API-Zugriff aktivieren" #: admin/app_settings.py:74 admin/app_settings.py:360 +#, fuzzy +#| msgid "Not a valid DMARC record" msgid "Check if every domain has a valid DMARC record" -msgstr "Überprüfe jede Domain auf einen gültigen DMARC Eintrag" +msgstr "Kein gültiger DMARC-Eintrag" #: admin/app_settings.py:78 admin/app_settings.py:367 msgid "Enable autoconfig checks" -msgstr "Aktiviere autoconfig-Prüfungen" +msgstr "" #: admin/app_settings.py:81 admin/app_settings.py:369 msgid "Check if every domain has a valid records for autoconfiguration" -msgstr "Überprüfe jede Domain auf einen gültigen autoconfiguration Eintrag" +msgstr "" #: admin/app_settings.py:86 admin/app_settings.py:377 +#, fuzzy +#| msgid "Enable API access" msgid "Enable DNSBL checks" -msgstr "Aktiviere DNSBL-Prüfungen" +msgstr "API-Zugriff aktivieren" #: admin/app_settings.py:88 admin/app_settings.py:379 msgid "Check every domain against major DNSBL providers" -msgstr "Prüfe jede Domain gegen die wichtigsten DNSBL-Anbieter" +msgstr "" #: admin/app_settings.py:92 admin/app_settings.py:386 +#, fuzzy +#| msgid "Custom RSS feed" msgid "Custom DNS server" -msgstr "Benutzerdefinierter DNS Server" +msgstr "Benutzerdefinierter RSS-Feed" #: admin/app_settings.py:96 admin/app_settings.py:388 msgid "Use a custom DNS server instead of local server configuration" -msgstr "eigener DNS-Server umgeht die lokale Namensauflösung" +msgstr "" #: admin/app_settings.py:101 admin/app_settings.py:396 msgid "DKIM keys storage directory" -msgstr "Verzeichnis für DKIM-Keys" +msgstr "" #: admin/app_settings.py:104 admin/app_settings.py:398 msgid "" @@ -301,34 +290,28 @@ msgid "" "sure this directory belongs to root user and is not readable by the outside " "world." msgstr "" -"Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das " -"Verzeichnis sollte nur dem root-User zugänglich sein." #: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" -msgstr "voreingestellte DKIM Schlüssellänge" +msgstr "" #: admin/app_settings.py:115 admin/app_settings.py:409 msgid "Default length in bits for newly generated DKIM keys." -msgstr "Voreingestellte Länge in Bits neu zu generierender DKIM-Keys." +msgstr "" #: admin/app_settings.py:119 admin/app_settings.py:416 msgid "Default domain quota" -msgstr "Standard-Domainquota" +msgstr "" #: 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 "" -"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " -"Der Wert 0 bedeutet „Keine Quota“" #: admin/app_settings.py:128 admin/app_settings.py:426 -#, fuzzy -#| msgid "Default domain quota" msgid "Default domain sending limit" -msgstr "Standard-Domainquota" +msgstr "" #: admin/app_settings.py:131 admin/app_settings.py:428 msgid "" @@ -341,39 +324,32 @@ msgstr "" #: 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 "Postfächer" +msgstr "" #: admin/app_settings.py:139 admin/app_settings.py:446 msgid "Handle mailboxes on filesystem" -msgstr "Postfächer im Dateisystem verwalten" +msgstr "" #: 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 "" -"Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa" -" umbenannt oder entfernt werden" -#: 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 +#: 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 "Standard Postfach Kontingent" +msgstr "" #: admin/app_settings.py:151 msgid "" "Default mailbox quota (in MB) applied to freshly created mailboxes with no " "value specified. A value of 0 means no quota." msgstr "" -"Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe." -" Der Wert 0 bedeutet „Keine Quota“" #: admin/app_settings.py:157 admin/app_settings.py:467 -#, fuzzy -#| msgid "Default mailbox quota" msgid "Default mailbox sending limit" -msgstr "Standard Postfach Kontingent" +msgstr "" #: admin/app_settings.py:160 admin/app_settings.py:469 msgid "" @@ -382,58 +358,54 @@ msgid "" msgstr "" #: admin/app_settings.py:166 admin/app_settings.py:477 +#, fuzzy +#| msgid "Inactive account threshold" msgid "Automatic account removal" -msgstr "Automatische Konto-Entfernung" +msgstr "Schwellwert für inaktive Konten" #: admin/app_settings.py:169 admin/app_settings.py:479 msgid "When a mailbox is removed, also remove the associated account" -msgstr "Beim Löschen des Postfachs auch das Konto entfernen." +msgstr "" #: admin/app_settings.py:174 admin/app_settings.py:488 msgid "Automatic domain/mailbox creation" -msgstr "Automatische Domain- /Postfach-Erstellung" +msgstr "" #: admin/app_settings.py:177 admin/app_settings.py:491 -msgid "" -"Create a domain and a mailbox when an account is automatically created." +msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -"Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt " -"wurde." #: admin/app_settings.py:182 admin/app_settings.py:500 msgid "Create an alias when a mailbox is renamed" -msgstr "Erzeuge Alias, wenn Mailbox umbenannt wird." +msgstr "" #: admin/app_settings.py:185 admin/app_settings.py:503 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -"Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." #: admin/app_settings.py:458 -#, fuzzy -#| msgid "" -#| "Default mailbox quota (in MB) applied to freshly created mailboxes 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 "" -"Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe." -" Der Wert 0 bedeutet „Keine Quota“" #: admin/app_settings.py:522 admin/app_settings.py:527 +#, fuzzy +#| msgid "Administrator groups" msgid "Administration" -msgstr "Verwaltung" +msgstr "Administratorgruppen" #: 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 "Domain" +msgstr "" #: admin/constants.py:24 +#, fuzzy +#| msgid "Search a domain" msgid "Relay domain" -msgstr "Relay-Domain" +msgstr "Suche eine Domäne" #: admin/constants.py:39 msgid "Opened" @@ -455,8 +427,6 @@ msgid "" "The user's name. Must be a valid e-mail address for simple users or " "administrators with a mailbox." msgstr "" -"Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' " -"oder Administratoren mit einer Mailbox sein." #: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29 #: core/templates/core/information.html:37 @@ -465,23 +435,23 @@ msgstr "Rolle" #: admin/forms/account.py:37 msgid "Choose" -msgstr "Auswählen" +msgstr "" #: admin/forms/account.py:38 msgid "What level of permission this user will have" -msgstr "Rechte, die der Benutzer haben wird" +msgstr "" #: admin/forms/account.py:41 admin/forms/domain.py:262 +#, fuzzy +#| msgid "Random password length" msgid "Random password" -msgstr "Zufälliges Passwort" +msgstr "Zufällige Passwortlänge" #: 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 "" -"Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und " -"diese Checkbox aktivierst, wird ein neues Passwort generiert" #: admin/forms/account.py:49 core/forms.py:25 pdfcredentials/documents.py:99 msgid "Password" @@ -489,53 +459,53 @@ msgstr "Passwort" #: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" -msgstr "Bestätigung" +msgstr "Neues Passwort wiederholen" #: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." -msgstr "Passwort bestätigen" +msgstr "" #: admin/forms/account.py:71 +#, fuzzy +#| msgid "Enable 2FA" msgid "Enabled" -msgstr "Aktiviert" +msgstr "2FA aktivieren" #: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" -msgstr "Nur Super-Administratoren dürfen diesen Modus benutzen." +msgstr "" #: admin/forms/account.py:193 msgid "The two password fields didn't match." -msgstr "Die angegebenen Passwörter stimmen nicht überein" +msgstr "" #: admin/forms/account.py:206 +#, fuzzy +#| msgid "You can't delete your own account" msgid "You can't disable your own account" -msgstr "Sie können Ihr eigenes Konto nicht deaktivieren" +msgstr "Sie können Ihr eigenes Konto nicht löschen" #: admin/forms/account.py:234 msgid "E-mail" -msgstr "E-Mail" +msgstr "" #: admin/forms/account.py:236 msgid "Create an alias using the old address" -msgstr "Erzeuge Alias mit der bisherigen Adresse" +msgstr "" #: 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:73 #: limits/app_settings.py:218 limits/constants.py:59 msgid "Quota" -msgstr "Quota" +msgstr "" #: 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)." +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a " +"custom value or use domain's default one. Leave empty to define an unlimited " +"value (not allowed for domain administrators)." msgstr "" -"Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben " -"werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden " -"lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-" -"Administratoren)." #: admin/forms/account.py:254 admin/models/domain.py:39 #: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50 @@ -554,7 +524,7 @@ msgstr "" #: admin/forms/account.py:266 admin/forms/domain.py:35 #: admin/templates/admin/domain_headers.html:4 msgid "Alias(es)" -msgstr "Alias(e)" +msgstr "" #: admin/forms/account.py:269 msgid "" @@ -562,13 +532,12 @@ msgid "" "to add a new input. To create a catchall alias, just enter the domain name " "(@domain.tld)." msgstr "" -"Alias(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für " -"eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu " -"erstellen. " #: admin/forms/account.py:275 +#, fuzzy +#| msgid "Sender address" msgid "Sender addresses" -msgstr "Ab­sen­der­ad­res­sen " +msgstr "Absenderadresse" #: admin/forms/account.py:278 msgid "" @@ -576,33 +545,32 @@ msgid "" "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 "" -"Zusätzliche Absenderadresse(n) für dieses Postfach. Der Benutzer darf diese " -"Adresse(n) verwenden, selbst wenn diese nicht lokal vorhanden sind. Jeweils " -"eine Adresse eingeben, ENTER drücken für weitere." #: admin/forms/account.py:339 admin/forms/alias.py:95 #: admin/models/mailbox.py:308 msgid "Domain does not exist" -msgstr "Domain existiert nicht" +msgstr "" #: admin/forms/account.py:376 msgid "Local domain does not exist" -msgstr "Lokale Domain existiert nicht" +msgstr "" #: admin/forms/account.py:503 msgid "Domain(s)" -msgstr "Domain(s)" +msgstr "" #: admin/forms/account.py:505 +#, fuzzy +#| msgid "Domain administrator" msgid "Domain(s) that user administrates" -msgstr "Domain(s), die dieser Benutzer administriert" +msgstr "Domain-Administrator" #: 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 +#: postfix_autoreply/forms.py:107 msgid "General" msgstr "Allgemein" @@ -613,41 +581,53 @@ msgstr "Profil" #: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" -msgstr "E-Mail" +msgstr "" #: admin/forms/account.py:573 +#, fuzzy +#| msgid "Permission denied" msgid "Permissions" -msgstr "Berechtigungen" +msgstr "Zugriff verweigert" #: admin/forms/account.py:642 +#, fuzzy +#| msgid "Access updated" msgid "Account updated" -msgstr "Konto aktualisiert" +msgstr "Zugang aktualisiert" #: admin/forms/account.py:668 +#, fuzzy +#| msgid "New accounts" msgid "New account" -msgstr "Neues Konto" +msgstr "Neue Konten" #: admin/forms/account.py:679 +#, fuzzy +#| msgid "Account DN template" msgid "Account created" -msgstr "Konto erstellt" +msgstr "Konto-DN-Vorlage" #: admin/forms/alias.py:20 +#, fuzzy +#| msgid "From address" msgid "Random address" -msgstr "Zufällige Adresse" +msgstr "Absender-Adresse" #: admin/forms/alias.py:23 +#, fuzzy +#| msgid "From address" msgid "Email address" -msgstr "E-Mail Adresse" +msgstr "Absender-Adresse" #: admin/forms/alias.py:25 msgid "" "The alias address. To create a catchall alias, just enter the domain name " "(@domain.tld)." msgstr "" -"Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen" -" Catchall-Alias anzulegen." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 +#, fuzzy +#| msgid "Recipient" msgid "Recipients" msgstr "Empfänger" @@ -656,68 +636,65 @@ msgid "" "Addresses this alias will point to. Indicate only one address per input, " "press ENTER to add a new input." msgstr "" -"Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein" -" und bestätigen Sie mit ENTER." #: admin/forms/alias.py:119 msgid "No recipient defined" -msgstr "Keine Empfänger angegeben" +msgstr "" #: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" -msgstr "Typ" +msgstr "" #: 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(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro " -"Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu " -"erhalten." #: admin/forms/domain.py:43 msgid "Key selector" -msgstr "DKIM Selector" +msgstr "" #: 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 "" -"Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB " -"angegeben werden. 0 eingeben, um keine Quota zu verwenden." #: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" -msgstr "Domain-Alias" +msgstr "" #: 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 "Ein %s mit diesem Namen existiert bereits" +msgstr "" #: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" -msgstr "Verzeichnis für DKIM-Keys nicht konfiguriert." +msgstr "" #: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." -msgstr "Ein unlimitiertes Kontingent ist nicht möglich." +msgstr "" #: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107 +#, fuzzy +#| msgid "Unknown domain" msgid "domain" -msgstr "Domain" +msgstr "Unbekannte Domäne" #: admin/forms/domain.py:246 +#, fuzzy +#| msgid "Domain administrator" msgid "Create a domain administrator" -msgstr "Domain-Administrator erstellen" +msgstr "Domain-Administrator" #: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" -msgstr "Automatisch Administrator für diese Domain anlegen" +msgstr "" #: admin/forms/domain.py:252 admin/templates/admin/domain_detail.html:159 #: admin/templates/admin/domain_headers.html:3 @@ -733,147 +710,159 @@ msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." msgstr "" -"Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird " -"automatisch angehängt." #: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." -msgstr "Zufällig generiertes Passwort für den Administrator verwenden." +msgstr "" #: admin/forms/domain.py:269 msgid "With a mailbox" -msgstr "Mit einem Postfach" +msgstr "" #: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." -msgstr "Erzeuge Postfach für den Administrator." +msgstr "" #: admin/forms/domain.py:276 msgid "Create aliases" -msgstr "Aliase erstellen" +msgstr "" #: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" -msgstr "Automatisch Standard-Aliase für Domain anlegen" +msgstr "" #: admin/forms/domain.py:294 +#, fuzzy +#| msgid "Invalid code" msgid "Invalid format" -msgstr "Ungültiges Format" +msgstr "Ungültiger Code" #: admin/forms/domain.py:433 +#, fuzzy +#| msgid "modified" msgid "Domain modified" -msgstr "Domain verändert" +msgstr "geändert" #: admin/forms/domain.py:458 +#, fuzzy +#| msgid "Applications" msgid "Options" -msgstr "Optionen" +msgstr "Applikationen" #: admin/forms/domain.py:467 +#, fuzzy +#| msgid "Unknown domain" msgid "New domain" -msgstr "Neue Domain" +msgstr "Unbekannte Domäne" #: admin/forms/domain.py:481 msgid "Domain created" -msgstr "Domain erstellt." +msgstr "" #: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" -msgstr "Separator" +msgstr "" #: admin/forms/forward.py:12 +#, fuzzy +#| msgid "Recipient" msgid "Recipient(s)" msgstr "Empfänger" #: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" -msgstr "Geben sie einen oder mehrere, durch ',' separierte Empfänger an" +msgstr "" #: admin/forms/forward.py:18 msgid "Keep local copies" -msgstr "Lokale Kopien behalten" +msgstr "" #: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen" +msgstr "" #: admin/forms/import_.py:10 +#, fuzzy +#| msgid "Search filter" msgid "Select a file" -msgstr "Wählen Sie eine Datei" +msgstr "Suchfilter" #: admin/forms/import_.py:18 msgid "Continue on error" -msgstr "Bei Fehler fortfahren" +msgstr "" #: admin/forms/import_.py:20 msgid "Don't treat duplicated objects as error" -msgstr "Doppelte Objekte nicht als Fehler behandeln" +msgstr "" #: admin/forms/import_.py:37 +#, fuzzy +#| msgid "Forgot password?" msgid "Crypt passwords" -msgstr "Passwörter verschlüsseln" +msgstr "Passwort vergessen?" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Auswählen, wenn Kennwörter in Datei nicht verschlüsselt sind" +msgstr "" #: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" -msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" +msgstr "" #: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" -msgstr "Postfach {} existiert bereits" +msgstr "" #: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" -msgstr "Konto Import fehlgeschlagen (%s): ungültiger Quota-Wert" +msgstr "" #: 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 "Identitäten" +msgstr "" #: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" -msgstr "Weiterleiten" +msgstr "" #: admin/lib.py:47 +#, fuzzy +#| msgid "This field is required" msgid "A mailbox is required" -msgstr "Ein Postfach ist erforderlich" +msgstr "Dieses Feld ist erforderlich" #: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "" -"Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren." #: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "" -"Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." #: admin/lib.py: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 "Kein DNS Eintrag für %s gefunden" +msgstr "" #: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" -msgstr "Kein %(type)s Eintrag für %(name)s" +msgstr "" #: admin/lib.py:208 admin/tests/test_mx.py:157 msgid "No working name servers found" -msgstr "Keine funktionierenden Namensserver gefunden" +msgstr "" #: admin/lib.py:211 admin/tests/test_mx.py:161 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" -msgstr "DNS Error bei der Auflösung, konnte %s nicht auflösen" +msgstr "" #: admin/lib.py:215 #, python-format @@ -883,31 +872,32 @@ msgstr "" #: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" -msgstr "Fehlerhaftes IP-Adressformat für {domain}; {addr}" +msgstr "" #: admin/lib.py:319 #, python-format msgid "Object already exists: %s" -msgstr "Objekt existiert bereits: %s" +msgstr "" #: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" -msgstr "%d Objekte erfolgreich importiert" +msgstr "" #: admin/management/commands/subcommands/_import.py:99 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" -msgstr "CSV Datei nicht in UTF-8 enkodiert, versuche das Encoding zu erraten" +msgstr "" #: admin/management/commands/subcommands/_import.py:114 #, python-format msgid "Reading CSV file using %(encoding)s encoding" -msgstr "Lese CSV Datei mit %(encoding)s Enkodierung" +msgstr "" #: admin/management/commands/subcommands/_import.py:125 -#, python-format +#, fuzzy, python-format +#| msgid "unable to determine encoding of string" msgid "Unable to decode CSV file using %(encoding)s encoding" -msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren" +msgstr "Codierung der Zeichenkette konnte nicht bestimmt werden" #: admin/management/commands/subcommands/_manage_dkim_keys.py:28 msgid "DKIM path non-writable" @@ -919,53 +909,57 @@ msgstr "" #: admin/management/commands/subcommands/_mx.py:174 #, fuzzy -#| msgid "Domain {} has no MX record" +#| msgid "Not an SPF record" msgid "Domain has no MX record" -msgstr "Domain {} hat keinen MX-Eintrag" +msgstr "Kein SPF-Eintrag" #: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" -msgstr "Domain {} hat keinen MX-Eintrag" +msgstr "" #: admin/management/commands/subcommands/_mx.py:195 #, fuzzy -#| msgid "MX records of {}" +#| msgid "Invalid code" msgid "Invalid MX record: {}" -msgstr "MX Einträge für {}" +msgstr "Ungültiger Code" #: admin/management/commands/subcommands/_mx.py:202 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" -msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" +msgstr "" #: admin/management/commands/subcommands/_mx.py:213 msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX Problem(e) für Domain {}" +msgstr "" #: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL Problem(e) für Domain {}" +msgstr "" #: admin/models/alias.py:36 msgid "Domain not found." -msgstr "Domain nicht gefunden." +msgstr "" #: admin/models/alias.py:91 admin/models/mailbox.py:85 +#, fuzzy +#| msgid "From address" msgid "address" -msgstr "Adresse" +msgstr "Absender-Adresse" #: admin/models/alias.py:93 +#, fuzzy +#| msgid "Enter a valid email address." msgid "The alias address." -msgstr "Die Alias-Adresse" +msgstr "Geben Sie eine gültige E-Mail-Adresse ein." #: admin/models/alias.py:97 admin/models/domain.py:45 #: admin/models/domain_alias.py:45 postfix_autoreply/models.py:23 msgid "enabled" -msgstr "aktiviert" +msgstr "" #: admin/models/alias.py:98 admin/models/domain_alias.py:46 msgid "Check to activate this alias" -msgstr "Auswählen, um den Alias zu aktivieren" +msgstr "" #: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32 #: core/templates/core/information.html:17 @@ -974,33 +968,39 @@ msgstr "Beschreibung" #: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29 msgid "Expire at" -msgstr "Läuft ab am" +msgstr "" #: admin/models/alias.py:144 msgid "alias" -msgstr "Alias" +msgstr "" #: admin/models/alias.py:177 +#, fuzzy +#| msgid "Invalid code" msgid "Invalid address" -msgstr "Ungültige Adresse" +msgstr "Ungültiger Code" #: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" -msgstr "Lokaler Empfänger {}@{} nicht gefunden" +msgstr "" #: admin/models/alias.py:245 #, fuzzy -#| msgid "Invalid line: %s" +#| msgid "Invalid line" msgid "Invalid line: {}" -msgstr "Ungültige Zeile: %s" +msgstr "Ungültige Zeile" #: admin/models/domain.py:27 admin/models/domain_alias.py:33 +#, fuzzy +#| msgid "Username" msgid "name" -msgstr "Name" +msgstr "Benutzername" #: admin/models/domain.py:30 +#, fuzzy +#| msgid "Enter a valid domain name" msgid "The domain name" -msgstr "Name der Domain" +msgstr "Geben Sie einen gültigen Domänennamen ein" #: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" @@ -1008,31 +1008,30 @@ msgstr "" #: admin/models/domain.py:46 msgid "Check to activate this domain" -msgstr "Auswählen, um diese Domain zu aktivieren" +msgstr "" #: admin/models/domain.py:51 +#, fuzzy +#| msgid "Enable API access" msgid "Enable DNS checks" -msgstr "Aktiviere DNS Prüfungen" +msgstr "API-Zugriff aktivieren" #: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "" -"Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain" #: admin/models/domain.py:61 msgid "Enable DKIM signing" -msgstr "Aktiviere DKIM Signierung" +msgstr "" #: admin/models/domain.py:63 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." msgstr "" -"Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese " -"Domain aktiviert." #: admin/models/domain.py:70 msgid "Key length" -msgstr "Schlüssel-Länge" +msgstr "" #: admin/models/domain.py:368 admin/models/domain_alias.py:70 #: core/models.py:329 relaydomains/lib.py:13 @@ -1040,119 +1039,113 @@ msgid "Invalid line" msgstr "Ungültige Zeile" #: admin/models/domain.py:378 -#, fuzzy -#| msgid "No authorized MX record found for domain {}" msgid "{}: no authorized MX record found for domain" -msgstr "Kein autorisierter MX Eintrag für die Domain {} gefunden" +msgstr "" #: admin/models/domain.py:383 -#, fuzzy -#| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" -msgstr "Fehlerhafter Kontingentwert für die Domain '{}'" +msgstr "" #: admin/models/domain.py:388 -#, fuzzy -#| msgid "Invalid default mailbox quota value for domain '{}'" msgid "{}: invalid default mailbox quota value for domain" -msgstr "Fehlerhafter Standardwert für das Mailboxkontingent der Domain '{}'" +msgstr "" #: 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 "" -"Der Standardkontingentwert einer Mailbox kann nicht größer als der " -"Standardkontingentwert der domain sein" #: admin/models/domain_alias.py:36 msgid "The alias name" -msgstr "Der Alias-Name" +msgstr "" #: admin/models/domain_alias.py:40 msgid "target" -msgstr "Ziel" +msgstr "" #: admin/models/domain_alias.py:41 msgid "The domain this alias points to" -msgstr "Domain, auf die dieser Alias verweist" +msgstr "" #: admin/models/domain_alias.py:79 -#, python-format +#, fuzzy, python-format +#| msgid "Unknown domain" msgid "Unknown domain %s" -msgstr "Unbekannte Domain %s" +msgstr "Unbekannte Domäne" #: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" -msgstr "Postfach-Adresse (ohne den '@domain.tld' Teil)" +msgstr "" #: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" -msgstr "Der Speicherort des Postfachs (%s) konnte nicht bestimmt werden" +msgstr "" #: admin/models/mailbox.py:249 +#, fuzzy +#| msgid "This field is required" msgid "A quota is required" -msgstr "Ein Quota ist erforderlich" +msgstr "Dieses Feld ist erforderlich" #: admin/models/mailbox.py:256 -#, fuzzy -#| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" -msgstr "Domain Kontingent überschritten" +msgstr "" #: admin/templates/admin/_domain_dkim_key.html:6 #: 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 "Schließen" #: admin/templates/admin/_domain_dkim_key.html:7 #, python-format msgid "DKIM public key for %(domain)s" -msgstr "Öffentlicher DKIM Schlüssel für %(domain)s" +msgstr "" #: admin/templates/admin/_domain_dkim_key.html:11 msgid "Raw format. Click to copy" msgstr "" #: admin/templates/admin/_domain_dkim_key.html:15 -#, fuzzy -#| msgid "Bind/named format" msgid "Bind/named format. Click to copy" -msgstr "Gebundenes Format" +msgstr "" #: admin/templates/admin/_domain_dnschecks_status.html:4 +#, fuzzy +#| msgid "Disable 2FA" msgctxt "checks" msgid "Disabled" -msgstr "Deaktiviert" +msgstr "2FA deaktivieren" #: admin/templates/admin/_domain_dnschecks_status.html:6 msgid "Awaiting checks" -msgstr "Erwarte Prüfungen" +msgstr "" #: admin/templates/admin/_domain_dnschecks_status.html:16 #: admin/templates/admin/_domain_dnschecks_status.html:26 #: admin/templates/admin/_domain_dnschecks_status.html:34 #: admin/templates/admin/_domain_dnschecks_status.html:42 +#, fuzzy +#| msgid "No mechanism found" msgid "No record found" -msgstr "Kein Eintrag gefunden" +msgstr "Kein Mechanismus gefunden" #: admin/templates/admin/_domain_dnschecks_status.html:24 msgid "Waiting for key to be generated" -msgstr "Warten auf Schlüsselerzeugung" +msgstr "" #: admin/templates/admin/_global_statistics_widget.html:4 +#, fuzzy +#| msgid "Graphical statistics" msgid "Global statistics" -msgstr "Globale Statistiken" +msgstr "Grafische Statistiken" #: admin/templates/admin/_global_statistics_widget.html:8 msgid "Quantity" -msgstr "Anzahl" +msgstr "" #: admin/templates/admin/_global_statistics_widget.html:14 #: admin/templates/admin/domain_detail.html:37 @@ -1160,33 +1153,35 @@ msgstr "Anzahl" #: 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 "Domain-Aliase" +msgstr "" #: admin/templates/admin/_per_domain_statistics_widget.html:4 +#, fuzzy +#| msgid "Send statistics" msgid "Per-domain statistics" -msgstr "Pro-Domain Statistiken" +msgstr "Sende Statistiken" #: admin/templates/admin/account_detail.html:16 #: admin/templates/admin/alias_detail.html:16 #: admin/templates/admin/domain_detail.html:19 #: admin/templates/admin/identities_table.html:7 msgid "(disabled)" -msgstr "(deaktiviert)" +msgstr "" #: admin/templates/admin/account_detail.html:22 #: admin/templates/admin/alias_detail.html:22 #: admin/templates/admin/domain_detail.html:25 msgid "Summary" -msgstr "Zusammenfassung" +msgstr "" #: admin/templates/admin/account_detail.html:26 msgid "Full name" -msgstr "Vollständiger Name" +msgstr "" #: admin/templates/admin/account_detail.html:32 #: admin/templates/admin/alias_detail.html:26 msgid "Created" -msgstr "Erstellt" +msgstr "" #: admin/templates/admin/account_detail.html:35 #: core/templates/core/information.html:38 @@ -1200,78 +1195,92 @@ msgstr "Sekundäre E-Mail-Adresse" #: admin/templates/admin/account_detail.html:38 #: admin/templates/admin/account_detail.html:41 msgid "Not defined" -msgstr "Nicht definiert" +msgstr "" #: admin/templates/admin/account_detail.html:41 core/models.py:68 msgid "Phone number" msgstr "Telefonnummer" #: admin/templates/admin/account_detail.html:61 +#, fuzzy +#| msgid "Administrator groups" msgid "Administered domains" -msgstr "Administrierte Domains" +msgstr "Administratorgruppen" #: admin/templates/admin/account_detail.html:67 msgid "No domain defined." -msgstr "Keine Domain angegeben." +msgstr "" #: admin/templates/admin/account_detail.html:81 msgid "Aliases" -msgstr "Aliase" +msgstr "" #: admin/templates/admin/account_detail.html:87 msgid "No alias defined" -msgstr "Kein Alias definiert" +msgstr "" #: admin/templates/admin/account_detail.html:93 +#, fuzzy +#| msgid "Sender address" msgid "Additional sender addresses" -msgstr "Zusätzliche Absenderadressen" +msgstr "Absenderadresse" #: admin/templates/admin/account_detail.html:99 +#, fuzzy +#| msgid "Sender address" msgid "No sender address defined" -msgstr "Keine Absenderadresse definiert" +msgstr "Absenderadresse" #: admin/templates/admin/account_general_form.html:12 #: admin/templates/admin/aliasform.html:13 msgid "Domain is disabled" -msgstr "Domain ist deaktiviert" +msgstr "" #: admin/templates/admin/alias_detail.html:16 #: admin/templates/admin/identities.html:33 msgid "Alias" -msgstr "Alias" +msgstr "" #: admin/templates/admin/alias_detail.html:27 +#, fuzzy +#| msgid "modified" msgid "Modified" -msgstr "Verändert" +msgstr "geändert" #: admin/templates/admin/dnsbl_domain_detail.html:10 +#, fuzzy +#| msgid "SMS provider" msgid "Provider" -msgstr "Anbieter" +msgstr "SMS-Anbieter" #: admin/templates/admin/dnsbl_domain_detail.html:11 #: admin/templates/admin/identities_quota_headers.html:2 #: admin/templates/admin/mx_domain_detail.html:10 +#, fuzzy +#| msgid "From address" msgid "Address" -msgstr "Adresse" +msgstr "Absender-Adresse" #: admin/templates/admin/dnsbl_domain_detail.html:12 #: admin/templates/admin/domain_detail.html:114 #: admin/templates/admin/domains_log_headers.html:6 #: admin/templates/admin/messages_log_headers.html:6 +#, fuzzy +#| msgid "Statistics" msgid "Status" -msgstr "Status" +msgstr "Statistiken" #: admin/templates/admin/dnsbl_domain_detail.html:21 msgid "listed" -msgstr "aufgelistet" +msgstr "" #: admin/templates/admin/dnsbl_domain_detail.html:29 msgid "Everything is fine, this domain is not listed." -msgstr "Alles in Ordnung, diese Domain ist nicht gelistet." +msgstr "" #: admin/templates/admin/dnsbl_domain_detail.html:32 msgid "No information available for this domain." -msgstr "Keine Informationen verfügbar für diese Domain." +msgstr "" #: admin/templates/admin/domain_alarms.html:19 msgid "Opened alarms for" @@ -1289,28 +1298,30 @@ msgid "Message" msgstr "Nachricht" #: admin/templates/admin/domain_alarms.html:27 -#, fuzzy -#| msgid "Mailboxes" msgid "Mailbox" -msgstr "Postfächer" +msgstr "" #: admin/templates/admin/domain_alarms.html:40 msgid "No opened alarm" msgstr "" #: admin/templates/admin/domain_detail.html:29 +#, fuzzy +#| msgid "Verification code" msgid "Creation date" -msgstr "Erstellungsdatum" +msgstr "Bestätigungscode" #: admin/templates/admin/domain_detail.html:33 +#, fuzzy +#| msgid "Verification code" msgid "Last modification date" -msgstr "Datum der letzten Änderung" +msgstr "Bestätigungscode" #: 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 "Postfach-Aliase" +msgstr "" #: admin/templates/admin/domain_detail.html:50 #: admin/templates/admin/domain_detail.html:57 @@ -1320,55 +1331,53 @@ msgstr "Postfach-Aliase" #: admin/templates/admin/domains_quotas.html:12 #: admin/templates/admin/newdomainform.html:3 msgid "MB" -msgstr "MB" +msgstr "" #: admin/templates/admin/domain_detail.html:54 #: admin/templates/admin/domain_detail.html:73 +#, fuzzy +#| msgid "Message" msgid "Usage" -msgstr "Verwendung" +msgstr "Nachricht" #: admin/templates/admin/domain_detail.html:57 #: admin/templates/admin/domains_quotas.html:11 msgctxt "quota" msgid "used" -msgstr "benutzt" +msgstr "" #: admin/templates/admin/domain_detail.html:58 #: admin/templates/admin/domains_quotas.html:12 msgid "allocated" -msgstr "allokiert" +msgstr "" #: admin/templates/admin/domain_detail.html:70 msgid "per day" msgstr "" #: admin/templates/admin/domain_detail.html:76 -#, fuzzy -#| msgctxt "quota" -#| msgid "used" msgctxt "message count" msgid "used" -msgstr "benutzt" +msgstr "" #: admin/templates/admin/domain_detail.html:106 msgid "DNS" -msgstr "DNS" +msgstr "" #: admin/templates/admin/domain_detail.html:121 msgid "DKIM key" -msgstr "DKIM Schlüssel" +msgstr "" #: admin/templates/admin/domain_detail.html:125 msgid "Show key" -msgstr "Zeige Schlüssel" +msgstr "" #: admin/templates/admin/domain_detail.html:133 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 @@ -1378,7 +1387,7 @@ msgstr "Nein" #: admin/templates/admin/domain_detail.html:143 msgid "Generate new key" -msgstr "Neuen Schlüssel generieren" +msgstr "" #: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400 msgid "Yes" @@ -1386,43 +1395,51 @@ msgstr "Ja" #: admin/templates/admin/domain_detail.html:149 msgid "Not generated" -msgstr "Nicht generiert" +msgstr "" #: admin/templates/admin/domain_detail.html:156 +#, fuzzy +#| msgid "Administrator groups" msgid "Administrators" -msgstr "Administratoren" +msgstr "Administratorgruppen" #: admin/templates/admin/domain_detail.html:168 #: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" -msgstr "Diese Berechtigung entfernen" +msgstr "" #: admin/templates/admin/domain_detail.html:173 +#, fuzzy +#| msgid "Domain administrator" msgid "No domain administrator defined yet." -msgstr "Es wurde noch kein Domain Administrator definiert." +msgstr "Domain-Administrator" #: admin/templates/admin/domain_headers.html:5 #: admin/templates/admin/identity_headers.html:4 msgid "Tags" -msgstr "Tags" +msgstr "" #: admin/templates/admin/domain_headers.html:7 msgid "DNS status" -msgstr "DNS Status" +msgstr "" #: admin/templates/admin/domain_headers.html:9 #: admin/templates/admin/identity_headers.html:5 +#, fuzzy +#| msgid "Applications" msgid "Actions" -msgstr "Aktionen" +msgstr "Applikationen" #: admin/templates/admin/domain_options_form.html:10 +#, fuzzy +#| msgid "Domain administrator" msgid "You can't create a new domain administrator" -msgstr "Sie können keinen neuen Domain-Administrator erstellen" +msgstr "Domain-Administrator" #: admin/templates/admin/domains.html:28 #: admin/templates/admin/identities.html:29 msgid "Add" -msgstr "Hinzufügen" +msgstr "" #: admin/templates/admin/domains_log_headers.html:2 msgid "Queue ID" @@ -1443,29 +1460,31 @@ msgstr "An" #: admin/templates/admin/domains_quota_headers.html:3 #: admin/templates/admin/identities_quota_headers.html:4 msgid "Limit" -msgstr "Limit" +msgstr "" #: admin/templates/admin/domains_quota_headers.html:4 msgid "Used" -msgstr "Benutzt" +msgstr "" #: admin/templates/admin/domains_quota_headers.html:5 msgid "Allocated" -msgstr "Allokiert" +msgstr "" #: admin/templates/admin/domains_quota_headers.html:6 #: admin/templates/admin/identities_quota_headers.html:5 #, python-format msgid "Usage (%%)" -msgstr "Verwendung (%%)" +msgstr "" #: admin/templates/admin/domains_table.html:5 +#, fuzzy +#| msgid "Disable 2FA" msgid "disabled" -msgstr "deaktiviert" +msgstr "2FA deaktivieren" #: admin/templates/admin/forward.html:2 msgid "Automatically forward emails to another address" -msgstr "Nachrichten automatisch an andere Adresse weiterleiten" +msgstr "" #: admin/templates/admin/forward.html:9 admin/views/alias.py:84 #: core/templates/core/api_access.html:35 @@ -1475,16 +1494,20 @@ msgid "Update" msgstr "Aktualisieren" #: admin/templates/admin/identities.html:32 +#, fuzzy +#| msgid "Accounts" msgid "Account" -msgstr "Konto" +msgstr "Konten" #: admin/templates/admin/identities_quota_headers.html:3 msgid "Value" -msgstr "Wert" +msgstr "" #: admin/templates/admin/identity_headers.html:3 +#, fuzzy +#| msgid "Recipient" msgid "Fullname/Recipient" -msgstr "Name/Empfänger" +msgstr "Empfänger" #: admin/templates/admin/import_domains_form.html:6 msgid "" @@ -1500,46 +1523,50 @@ msgstr "" #: admin/templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:
          " -"
        • account; loginname; password; first name; last name; enabled; group;" -" address; quota; [, domain, ...]
        • alias; address; enabled; " +"
        • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
        • alias; address; enabled; " "recipient; recipient; ...

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

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

        " +"is mandatory and must be equal to one of the previous values.

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

        " msgstr "" #: admin/templates/admin/importform.html:6 +#, fuzzy +#| msgid "Help:" msgid "Help" -msgstr "Hilfe" +msgstr "Hilfe:" #: admin/templates/admin/importform.html:13 msgid "Importing..." -msgstr "Importiere…" +msgstr "" #: admin/templates/admin/mailboxes_raw.html:3 +#, fuzzy +#| msgid "Choose a provider" msgid "Choose a value" -msgstr "Wert auswählen" +msgstr "Wähle einen Anbieter" #: admin/templates/admin/mailform.html:7 msgid "Use domain default value" -msgstr "Standardwert der Domain verwenden" +msgstr "" #: admin/templates/admin/messages_log_headers.html:2 msgid "ID" -msgstr "ID" +msgstr "" #: admin/templates/admin/mx_domain_detail.html:11 +#, fuzzy +#| msgid "Update" msgid "Updated" msgstr "Aktualisieren" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" msgstr "" -"Die IP-Adressen passen zu keinem der in den Parametern definierten MX-" -"Einträge" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." -msgstr "Kein MX Eintrag für diese Domain gefunden." +msgstr "" #: admin/templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format @@ -1547,8 +1574,6 @@ msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" msgstr "" -"Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden " -"DNSBL-Anbieter aufgelistet ist:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 msgid "" @@ -1556,139 +1581,144 @@ msgid "" "coming from it are considered as spam. You should contact those providers " "and ask them to unlist detected IP address(es)." msgstr "" -"Die Reputation der Domain wird betroffen sein. Es kann sein, dass von ihr " -"kommende E-Mails als Spam betrachtet werden. Sie sollten diese Anbieter " -"kontaktieren und darum bitten, ihre erfasste(n) IP-Adresse(n) zu entfernen." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -"Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag " -"vorliegt:" #: admin/templates/admin/searchform.html:6 +#, fuzzy +#| msgid "Search..." msgid "Search" -msgstr "Suchen" +msgstr "Suchen ..." #: admin/templatetags/admin_tags.py:18 msgid "enabled_m" -msgstr "aktiviert_m" +msgstr "" #: admin/templatetags/admin_tags.py:18 msgid "enabled_f" -msgstr "aktiviert_f" +msgstr "" #: admin/templatetags/admin_tags.py:46 msgid "List domains" -msgstr "Domain-Liste" +msgstr "" #: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:123 msgid "List quotas" -msgstr "Quota-Liste" +msgstr "" #: admin/templatetags/admin_tags.py:60 +#, fuzzy +#| msgid "Message" msgid "Message logs" -msgstr "" +msgstr "Nachricht" #: 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 "Import" +msgstr "" #: 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 "Export" +msgstr "" #: admin/templatetags/admin_tags.py:116 msgid "List identities" -msgstr "Identitäten-Liste" +msgstr "" #: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" -msgstr "Domain-Identitäten anzeigen" +msgstr "" #: admin/templatetags/admin_tags.py:166 -#, fuzzy -#| msgid "domain alias" msgid "View domain's alarms" -msgstr "Domain-Alias" +msgstr "" #: admin/templatetags/admin_tags.py:174 admin/templatetags/admin_tags.py:218 #: admin/templatetags/admin_tags.py:235 msgid "Edit {}" -msgstr "{} bearbeiten" +msgstr "" #: admin/templatetags/admin_tags.py:186 admin/templatetags/admin_tags.py:224 #: admin/templatetags/admin_tags.py:241 #, python-format msgid "Delete %s?" -msgstr "%s löschen?" +msgstr "" #: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" -msgstr "Kein MX Eintrag für %s" +msgstr "" #: 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 "Ferhlerhaftes IP-Adressformat für %(domain)s; %(addr)s" +msgstr "" #: admin/tests/test_mx.py:200 #, fuzzy, python-format -#| msgid "No MX record for %s" +#| msgid "No mechanism found" msgid "No AAAA record for %s" -msgstr "Kein MX Eintrag für %s" +msgstr "Kein Mechanismus gefunden" #: admin/views/alias.py:30 msgid "Alias with this name already exists" -msgstr "Ein Alias mit diesem Namen existiert bereits" +msgstr "" #: admin/views/alias.py:52 msgid "Create" -msgstr "Erstellen" +msgstr "" #: admin/views/alias.py:64 msgid "New alias" -msgstr "Neuer Alias" +msgstr "" #: admin/views/alias.py:64 msgid "Alias created" -msgstr "Alias erstellt" +msgstr "" #: admin/views/alias.py:76 +#, fuzzy +#| msgid "modified" msgid "Alias modified" -msgstr "Alias verändert" +msgstr "geändert" #: admin/views/alias.py:101 +#, fuzzy +#| msgid "deleted" msgid "Alias deleted" msgid_plural "Aliases deleted" -msgstr[0] "Alias gelöscht" -msgstr[1] "Aliase gelöscht" +msgstr[0] "gelöscht" +msgstr[1] "gelöscht" #: admin/views/dns.py:28 +#, fuzzy +#| msgid "{} record of {}" msgid "MX records of {}" -msgstr "MX Einträge für {}" +msgstr "{} Eintrag von {}" #: admin/views/dns.py:50 msgid "DNSBL summary for {}" -msgstr "DNSBL Zusammenfassung für {}" +msgstr "" #: admin/views/domain.py:251 +#, fuzzy +#| msgid "deleted" msgid "Domain deleted" msgid_plural "Domains deleted" -msgstr[0] "Domain gelöscht" -msgstr[1] "Domains gelöscht" +msgstr[0] "gelöscht" +msgstr[1] "gelöscht" #: admin/views/export.py:40 msgid "Export identities" -msgstr "Identitäten exportieren" +msgstr "" #: admin/views/export.py:69 msgid "Export domains" -msgstr "Domains exportieren" +msgstr "" #: 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 @@ -1696,26 +1726,30 @@ msgid "Invalid request" msgstr "Ungültige Anfrage" #: admin/views/identity.py:187 +#, fuzzy +#| msgid "Account DN template" msgid "Account deleted" msgid_plural "Accounts deleted" -msgstr[0] "Konto gelöscht" -msgstr[1] "Konten gelöscht" +msgstr[0] "Konto-DN-Vorlage" +msgstr[1] "Konto-DN-Vorlage" #: admin/views/import_.py:56 msgid "Import domains" -msgstr "Domains importieren" +msgstr "" #: admin/views/import_.py:77 msgid "Import identities" -msgstr "Identitäten importieren" +msgstr "" #: admin/views/user.py:51 +#, fuzzy +#| msgid "Profile updated" msgid "Forward updated" -msgstr "Weiterleitung aktualisiert" +msgstr "Profil aktualisiert" #: core/api/v1/serializers.py:21 msgid "Invalid PIN code" -msgstr "Ungültiger Pincode" +msgstr "Ungültiger PIN-Code" #: core/api/v1/serializers.py:27 msgid "2FA is already enabled" @@ -1734,7 +1768,7 @@ msgstr "Altes Passwort" #: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 msgid "2FA is not enabled" -msgstr "2-Faktor-Authentifizierung ist nicht aktiviert" +msgstr "2FA ist nicht aktiviert" #: core/api/v2/serializers.py:68 core/app_settings.py:48 msgid "Local" @@ -1742,29 +1776,28 @@ msgstr "Lokal" #: core/api/v2/serializers.py:164 core/app_settings.py:24 msgid "User profile" -msgstr "Benutzername" +msgstr "Benutzerprofil" #: 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 +#: postfix_autoreply/forms.py:155 msgid "Invalid syntax" msgstr "Ungültige Syntax" #: core/api/v2/serializers.py:202 core/app_settings.py:557 msgid "Invalid rounds number" -msgstr "Ungültige Zahl für Runden" +msgstr "Ungültige Anzahl Runden" #: core/api/v2/serializers.py:262 core/forms.py:194 msgid "This code is invalid" -msgstr "Dieser Code ist Falsch" +msgstr "Dieser Code ist ungültig" -#: core/api/v2/serializers.py:333 core/views/auth.py:184 -#: core/views/auth.py:237 +#: 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 "" -"Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen:" -" {}" +"Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort " +"wiederherzustellen: {}" #: core/api/v2/views.py:57 #, python-format @@ -1774,17 +1807,18 @@ msgstr "" #: core/api/v2/views.py:69 core/views/auth.py:89 #, python-format msgid "User '%s' successfully logged in" -msgstr "Benutzer '%s' hat sich erfolgreich angemeldet" +msgstr "Benutzer '%s' erfolgreich angemeldet" #: core/api/v2/views.py:86 core/views/auth.py:67 #, python-format msgid "Password scheme mismatch. Updating %s password" -msgstr "Fehlanpassung des Passwortschemas. Passwort von %s wird aktualisiert" +msgstr "Kennwortschema stimmt nicht überein. Aktualisiere %s Passwort" #: core/api/v2/views.py:93 core/views/auth.py:75 #, python-format msgid "Password hash parameter missmatch. Updating %s password" -msgstr "Passwort-Hash Parameter Unterschied. Aktualisiere %s Passwort" +msgstr "" +"Passwort-Hash-Parameter stimmen nicht überein. Aktualisiere %s Passwort" #: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" @@ -1796,15 +1830,15 @@ msgstr "Authentifizierungstyp" #: core/app_settings.py:50 core/app_settings.py:724 msgid "The backend used for authentication" -msgstr "Backend für die Authentifizierung" +msgstr "Das Backend für Authentifizierung" #: core/app_settings.py:55 core/app_settings.py:731 msgid "Default password scheme" -msgstr "Standard-Passwortschema" +msgstr "Voreingestelltes Passwort-Schema" #: core/app_settings.py:58 core/app_settings.py:733 msgid "Scheme used to crypt mailbox passwords" -msgstr "Verschlüsselungsschema der Postfach-Passwörter" +msgstr "Schema zur Verschlüsselung von Postfach-Passwörtern" #: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" @@ -1815,18 +1849,18 @@ msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl " -"muss zwischen 1000 und 999999999 liegen." +"Anzahl an Runden (nur von sha256crypt und sha512crypt genutzt). Muss " +"zwischen 1000 und 999999999 liegen, inklusive." #: core/app_settings.py:71 core/app_settings.py:752 msgid "Update password scheme at login" -msgstr "Aktualisiere das Passwortschema beim Anmelden" +msgstr "Passwort-Schema beim Login updaten" #: core/app_settings.py:74 core/app_settings.py:755 msgid "Update user password at login to use the default password scheme" msgstr "" -"Aktualisieren Sie das Benutzerkennwort bei der Anmeldung, um das Standard-" -"Passwortschema zu verwenden." +"Aktualisiere das Benutzerkennwort bei der Anmeldung, um das " +"Standardkennwortschema zu verwenden" #: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" @@ -1834,7 +1868,7 @@ msgstr "Standardpasswort" #: core/app_settings.py:81 core/app_settings.py:765 msgid "Default password for automatically created accounts." -msgstr "Standardpasswort für automatisch erstellte Accounts." +msgstr "Standardpasswort für automatisch kreierte Konten" #: core/app_settings.py:85 core/app_settings.py:772 msgid "Random password length" @@ -1842,11 +1876,11 @@ msgstr "Zufällige Passwortlänge" #: core/app_settings.py:88 core/app_settings.py:774 msgid "Length of randomly generated passwords." -msgstr "Länge von zufällig generierten Passwörtern" +msgstr "Länge der zufällig generierten Passwörter." #: core/app_settings.py:92 core/app_settings.py:781 msgid "Update password service URL" -msgstr "Aktualisiere Passwort-Service-URL" +msgstr "URL des Kennwortdienstes aktualisieren" #: core/app_settings.py:96 core/app_settings.py:783 msgid "" @@ -1854,14 +1888,13 @@ msgid "" "password. It applies only to non local users, ie. those automatically " "created after a successful external authentication (LDAP, SMTP)." msgstr "" -"Die URL der externen Webseite wo Benutzer ihr Kennwort aktualisieren können." -" Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer " -"die nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, " -"SMTP)." +"Die URL einer externen Seite, auf der Benutzer ihr Passwort aktualisieren " +"können. Betrifft nur nicht lokale Benutzer, die nach einer erfolgreichen " +"externen Authentifizierung (LDAP, SMTP) automatisch erstellt wurden." #: core/app_settings.py:104 core/app_settings.py:793 msgid "Password recovery announcement" -msgstr "Ankündigung zur Passwort-Wiederherstellung" +msgstr "Ankündigung zur Passwortwiederherstellung" #: core/app_settings.py:109 core/app_settings.py:795 msgid "A temporary message that will be displayed on the reset password page." @@ -1871,21 +1904,23 @@ msgstr "" #: core/app_settings.py:114 core/app_settings.py:804 msgid "Enable password recovery by SMS" -msgstr "Aktiviere die Passwortwiederherstellung per SMS" +msgstr "Passwortwiederherstellung per SMS aktivieren" #: core/app_settings.py:117 core/app_settings.py:807 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -"Aktiviere die Passwortwiederherstellung per SMS für Benutzer mit einer " -"Telefonnummer." +"Aktiviere die Kennwortwiederherstellung per SMS für Benutzer, die eine " +"Telefonnummer angegeben haben." #: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" -msgstr "SMS Anbieter" +msgstr "SMS-Anbieter" #: core/app_settings.py:124 core/app_settings.py:818 msgid "Choose a provider to send password recovery SMS" -msgstr "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS" +msgstr "" +"Wählen Sie einen Anbieter für den Versand von SMS zur " +"Kennwortwiederherstellung" #: core/app_settings.py:129 msgid "LDAP settings" @@ -1893,7 +1928,7 @@ msgstr "LDAP-Einstellungen" #: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" -msgstr "Server-Adresse" +msgstr "Serveradresse" #: core/app_settings.py:134 core/app_settings.py:838 msgid "The IP address or the DNS name of the LDAP server" @@ -1901,7 +1936,7 @@ msgstr "IP-Adresse oder Hostname des LDAP-Servers" #: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" -msgstr "Server-Port" +msgstr "Server Port" #: core/app_settings.py:140 core/app_settings.py:847 msgid "The TCP port number used by the LDAP server" @@ -1909,7 +1944,7 @@ msgstr "Der TCP Port des LDAP-Servers" #: core/app_settings.py:144 core/app_settings.py:855 msgid "Enable secondary server (fallback)" -msgstr "Aktiviere Ausfallsserver (Fallback)" +msgstr "Aktiviere Ausfallserver (Fallback)" #: core/app_settings.py:147 core/app_settings.py:858 msgid "" @@ -1920,23 +1955,23 @@ msgstr "" #: core/app_settings.py:153 core/app_settings.py:866 msgid "Secondary server address" -msgstr "Ausfallsserver-Adresse" +msgstr "Ausfallserver-Adresse" #: core/app_settings.py:156 core/app_settings.py:869 msgid "The IP address or the DNS name of the seondary LDAP server" -msgstr "Die IP-Adresse oder den DNS-Namen des zweiten LDAP-Servers" +msgstr "IP-Adresse oder Hostname des zweiten LDAP-Servers" #: core/app_settings.py:161 core/app_settings.py:876 msgid "Secondary server port" -msgstr "Ausfallsserver-Port" +msgstr "Ausfallserver-Port" #: core/app_settings.py:163 core/app_settings.py:879 msgid "The TCP port number used by the LDAP secondary server" -msgstr "Der TCP Port des sekundären LDAP-Servers" +msgstr "Der TCP Port des zweiten LDAP-Servers" #: core/app_settings.py:167 core/app_settings.py:886 msgid "Use a secured connection" -msgstr "Gesicherte Verbindung verwenden" +msgstr "Verwende eine gesicherte Verbindung" #: core/app_settings.py:171 core/app_settings.py:888 msgid "Use an SSL/STARTTLS connection to access the LDAP server" @@ -1948,19 +1983,19 @@ msgstr "Active Directory" #: core/app_settings.py:178 core/app_settings.py:897 msgid "Tell if the LDAP server is an Active Directory one" -msgstr "Auswählen wenn der LDAP-Server ein Active Directory ist." +msgstr "Auswählen, wenn der LDAP-Server ein Active Directory ist." #: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" -msgstr "Administrator-Gruppen" +msgstr "Administratorgruppen" #: 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." +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." msgstr "" -"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren " -"angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." +"Mitglieder dieser LDAP-POSIX-Gruppen werden als Domänenadministratoren " +"erstellt. Nutze ';' um Gruppen zu trennen." #: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" @@ -1968,28 +2003,29 @@ msgstr "Gruppentyp" #: core/app_settings.py:195 core/app_settings.py:917 msgid "The LDAP group type to use with your directory." -msgstr "" -"Der LDAP Gruppentyp welcher mit diesem Verzeichnis benutzt werden soll." +msgstr "Der LDAP-Gruppentyp, der mit Ihrem Verzeichnis verwendet werden soll." #: core/app_settings.py:199 core/app_settings.py:924 msgid "Groups search base" -msgstr "Gruppen Search Base" +msgstr "Suchbasis für Gruppen" #: core/app_settings.py:202 core/app_settings.py:926 msgid "The distinguished name of the search base used to find groups" -msgstr "Der DN der Search Base mit der Gruppen gefunden werden" +msgstr "" +"Der Distinguished Name der Suchbasis, die zum Suchen von Gruppen verwendet " +"wird" #: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" -msgstr "Passwort-Attribut" +msgstr "Kennwortattribut" #: core/app_settings.py:210 core/app_settings.py:936 msgid "The attribute used to store user passwords" -msgstr "Das Attribut für Benutzerpasswörter" +msgstr "Das Attribut, das zum Speichern von Benutzerpasswörtern verwendet wird" #: core/app_settings.py:214 core/app_settings.py:943 msgid "LDAP authentication settings" -msgstr "LDAP Authentifizierungseinstellungen" +msgstr "LDAP-Authentifizierungseinstellungen" #: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" @@ -2001,7 +2037,7 @@ msgstr "Suchen und Bind anwenden" #: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" -msgstr "Direkter Bind" +msgstr "Direktbindung" #: core/app_settings.py:223 core/app_settings.py:954 msgid "Choose the authentication method to use" @@ -2018,7 +2054,8 @@ msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -"Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." +"Der Distinguished Name, der beim Binden an den LDAP-Server verwendet werden " +"soll. Für eine anonyme Bindung leer lassen" #: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972 #: core/app_settings.py:1034 @@ -2028,17 +2065,21 @@ msgstr "Bind Passwort" #: 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 "Das Passwort wenn mit dem Bind DN angemeldet wird." +msgstr "" +"Das Kennwort, das beim Binden an den LDAP-Server verwendet werden soll (mit " +"'Bind DN')" #: 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 "Benutzer Search Base" +msgstr "Suchbasis für Benutzer" #: 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 "Der DN der Search Base mit der Benutzerkonten gefunden werden" +msgstr "" +"Der Distinguished Name der Suchbasis, die zum Suchen von Benutzern verwendet " +"wird" #: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995 #: core/app_settings.py:1100 @@ -2051,12 +2092,12 @@ msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." msgstr "" -"Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss " +"Ein optionaler Filter (z.B. '(objectClass=person)'). Der Filter muss " "entsprechend der LDAP-Konvention in Klammern gesetzt werden." #: core/app_settings.py:266 core/app_settings.py:1006 msgid "User DN template" -msgstr "Vorlage für User DN" +msgstr "Benutzer-DN-Vorlage" #: core/app_settings.py:269 core/app_settings.py:1008 #, python-format @@ -2064,12 +2105,12 @@ msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" msgstr "" -"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s " -"enthalten." +"Die Vorlage, die verwendet wird, um den DN eines Benutzers zu erstellen. Es " +"sollte einen Platzhalter enthalten (z. B. %(user)s)" #: core/app_settings.py:276 core/app_settings.py:1017 msgid "LDAP synchronization settings" -msgstr "LDAP Synchronisations Einstellungen" +msgstr "LDAP-Synchronisationseinstellungen" #: core/app_settings.py:299 core/app_settings.py:1045 msgid "Enable export to LDAP" @@ -2079,24 +2120,24 @@ msgstr "Export zu LDAP aktivieren" msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -"Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis" -" aktivieren" +"Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-" +"Verzeichnis aktivieren" #: core/app_settings.py:308 core/app_settings.py:1056 msgid "Delete remote LDAP account when local account is deleted" -msgstr "Remote LDAP Benutzer entfernen wenn lokaler Benutzer gelöscht wird" +msgstr "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird" #: 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 "" -"Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten " -"wird der Benutzer deaktiviert." +"Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird, ansonsten wird " +"es deaktiviert." #: core/app_settings.py:317 core/app_settings.py:1068 msgid "Account DN template" -msgstr "Vorlage für User DN" +msgstr "Konto-DN-Vorlage" #: core/app_settings.py:320 core/app_settings.py:1070 #, python-format @@ -2104,8 +2145,8 @@ msgid "" "The template used to construct an account's DN. It should contain one " "placeholder (ie. %(user)s)" msgstr "" -"Die Vorlage die verwendet wird um das User DN zu generieren. Es sollte " -"mindestens einen Platzhalter beinhalten (z.B. %(user)s)" +"Die Vorlage, die verwendet wird, um den DN eines Kontos zu erstellen. Es " +"sollte einen Platzhalter enthalten (z. B. %(user)s)" #: core/app_settings.py:327 core/app_settings.py:1079 msgid "Enable import from LDAP" @@ -2114,12 +2155,11 @@ msgstr "Import von LDAP aktivieren" #: core/app_settings.py:330 core/app_settings.py:1081 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -"Automatische Kontensynchronisation vom LDAP Verzeichnis in die lokale " -"Datenbank aktivieren" +"Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren" #: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" -msgstr "Benutzernamenattribut" +msgstr "Benutzername-Attribut" #: core/app_settings.py:357 core/app_settings.py:1113 msgid "The name of the LDAP attribute where the username can be found." @@ -2142,7 +2182,8 @@ msgstr "Dovecot LDAP-Konfigurationsdatei" #: core/app_settings.py:374 core/app_settings.py:1134 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "Speicherort der Dovecot-Konfigurationsdatei für LDAP-Einstellungen." +msgstr "" +"Speicherort der Konfigurationsdatei, die Dovecot-LDAP-Einstellungen enthält." #: core/app_settings.py:379 core/app_settings.py:1147 #: core/templates/core/dashboard.html:5 @@ -2151,22 +2192,20 @@ msgstr "Dashboard" #: core/app_settings.py:382 core/app_settings.py:1153 msgid "Custom RSS feed" -msgstr "Benutzerdefinierter RSS Feed" +msgstr "Benutzerdefinierter RSS-Feed" #: core/app_settings.py:385 core/app_settings.py:1155 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -"Zeige benutzerdefinierten RSS-Feed für Wiederverkäufer und Domain-" -"Administratoren." +"Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren" #: core/app_settings.py:390 core/app_settings.py:1163 msgid "Hide features widget" -msgstr "Verberge Funktionen Werkzeug" +msgstr "Funktionen-Widget ausblenden" #: core/app_settings.py:393 core/app_settings.py:1165 msgid "Hide features widget for resellers and domain administrators" -msgstr "" -"Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." +msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" #: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" @@ -2178,7 +2217,7 @@ msgstr "Absenderadresse" #: core/app_settings.py:402 core/app_settings.py:1185 msgid "Email address used to send notifications." -msgstr "E-Mail Adresse für das Senden von Benachrichtigungen." +msgstr "E-Mail-Adresse, die zum Senden von Benachrichtigungen verwendet wird." #: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" @@ -2190,26 +2229,24 @@ msgstr "Verbindung aktivieren" #: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" -msgstr "Verbindung mit Modoboa public API aktivieren" +msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa" #: core/app_settings.py:414 core/app_settings.py:1211 msgid "Check new versions" msgstr "Prüfe auf neue Versionen" -#: core/app_settings.py:416 core/app_settings.py:1204 -#: core/app_settings.py:1214 +#: 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 "Prüft automatisch ob eine neuere Version verfügbar ist." +msgstr "Prüft automatisch, ob eine neuere Version verfügbar ist" #: core/app_settings.py:420 core/app_settings.py:1222 msgid "Send an email when new versions are found" -msgstr "Sende eine Email wenn eine neue Version gefunden wurde" +msgstr "Sende eine E-Mail, wenn eine neue Version gefunden wurde" #: core/app_settings.py:422 core/app_settings.py:1226 msgid "Send an email to notify admins about new versions" msgstr "" -"Sende eine Email um die Administratoren über eine neue Version zu " -"benachrichtigen" +"Sendet eine E-Mail, um Administratoren über neue Versionen zu benachrichtigen" #: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" @@ -2217,7 +2254,7 @@ msgstr "Empfänger" #: core/app_settings.py:427 core/app_settings.py:1236 msgid "Recipient of new versions notification emails." -msgstr "Empfänger für die Benachrichtigungsemail für eine neue Version" +msgstr "Empfänger von Benachrichtigungs-E-Mails über neue Version." #: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" @@ -2226,7 +2263,7 @@ msgstr "Sende Statistiken" #: core/app_settings.py:434 core/app_settings.py:1246 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -"Statistiken über die Modoboa public API senden (Zähler und Nutzungs " +"Sendet Statistiken an die öffentliche API von Modoboa (Zähler und verwendete " "Erweiterungen)" #: core/app_settings.py:438 core/app_settings.py:1258 @@ -2241,8 +2278,8 @@ msgstr "Schwellwert für inaktive Konten" #: 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" +"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:451 core/app_settings.py:1277 @@ -2251,15 +2288,15 @@ msgstr "Schwellwert für inaktive Konten" #: 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" +"An account with a last login date greater than this threshold (in days) will " +"be considered as inactive" msgstr "" -"Ein Konto mit einem Datum des letzten Logins, das größer als dieser " -"Schwellenwert ist (in Tagen), wird als inaktiv betrachtet." +"Ein Konto mit einem letzten Login-Datum über diesem Schwellenwert (in Tagen) " +"wird als inaktiv betrachtet" #: core/app_settings.py:460 core/app_settings.py:1289 msgid "Top notifications check interval" -msgstr "Benachrichtigungs-Prüfintervall" +msgstr "Prüfintervall für Benachrichtigungen" #: core/app_settings.py:462 core/app_settings.py:1292 msgid "Interval between two top notification checks (in seconds)" @@ -2267,11 +2304,11 @@ msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" #: core/app_settings.py:466 core/app_settings.py:1299 msgid "Maximum log record age" -msgstr "Maximales Alter für Log-Einträge" +msgstr "Maximales Alter eines Log-Eintrags" #: core/app_settings.py:468 core/app_settings.py:1301 msgid "The maximum age in days of a log record" -msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)" +msgstr "Das maximale Alter eines Protokollsatzes in Tagen" #: core/app_settings.py:472 core/app_settings.py:1308 msgid "Items per page" @@ -2279,7 +2316,7 @@ msgstr "Einträge pro Seite" #: core/app_settings.py:474 core/app_settings.py:1310 msgid "Number of displayed items per page" -msgstr "Anzahl dargestellter Einträge pro Seite" +msgstr "Anzahl der angezeigten Einträge pro Seite" #: core/app_settings.py:478 core/app_settings.py:1317 msgid "Default top redirection" @@ -2287,7 +2324,9 @@ msgstr "Standardumleitung" #: core/app_settings.py:482 core/app_settings.py:1319 msgid "The default redirection used when no application is specified" -msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" +msgstr "" +"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " +"wurde" #: core/app_settings.py:830 msgid "LDAP" @@ -2300,7 +2339,7 @@ msgid "" "clock change)." msgstr "" "Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel " -"zwischen Sommer- und Winterzeit führen (z.B. das Auftauchen derselben " +"zwischen Sommer- und Winterzeit führen (z. B. das Auftauchen derselben " "lokalen Zeit zweimal aufgrund der Zeitumstellung)." #: core/checks/settings_checks.py:11 @@ -2313,7 +2352,7 @@ msgstr "Normaler Benutzer" #: core/constants.py:7 msgid "Domain administrator" -msgstr "Domain Administrator" +msgstr "Domain-Administrator" #: core/constants.py:8 msgid "Reseller" @@ -2325,7 +2364,7 @@ msgstr "Super-Administrator" #: core/constants.py:108 msgid "Choose a provider" -msgstr "Wähle einen Provider" +msgstr "Wähle einen Anbieter" #: core/constants.py:113 msgid "Dummy" @@ -2353,7 +2392,7 @@ msgstr "Passwörter stimmen nicht überein" #: core/forms.py:124 msgid "Enable API access" -msgstr "API Zugriff aktivieren" +msgstr "API-Zugriff aktivieren" #: core/forms.py:170 msgid "Verification code" @@ -2369,12 +2408,12 @@ msgstr "hinzugefügt" #: core/handlers.py:39 msgid "modified" -msgstr "verändert" +msgstr "geändert" #: core/handlers.py:41 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" -msgstr "%(object)s '%(name)s' %(action)s der Identität %(user)s" +msgstr "%(object)s '%(name)s' %(action)s von Benutzer %(user)s" #: core/handlers.py:64 #, python-format @@ -2383,7 +2422,7 @@ msgstr "%(object)s '%(name)s' %(action)s von " #: core/handlers.py:67 msgid "deleted" -msgstr "entfernt" +msgstr "gelöscht" #: core/handlers.py:71 msgid "user {}" @@ -2395,11 +2434,11 @@ msgstr "Administrationsbefehl" #: core/handlers.py:95 msgid "You can't delete your own account" -msgstr "Sie können Ihr eigenes Konto nicht entfernen" +msgstr "Sie können Ihr eigenes Konto nicht löschen" #: core/handlers.py:128 msgid "One or more updates are available" -msgstr "Eine oder mehrere Aktualisierungen sind verfügbar" +msgstr "Ein oder mehrere Updates sind verfügbar" #: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" @@ -2407,11 +2446,11 @@ msgstr "[modoboa] Update(s) verfügbar" #: core/models.py:55 msgid "Allow mailboxes access" -msgstr "Erlaube den Postfach-Zugriff" +msgstr "Postfachzugriff zulassen" #: core/models.py:57 msgid "Allow this administrator to access user mailboxes" -msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen" +msgstr "Gewähren Sie diesem Administrator Zugriff auf Benutzerpostfächer" #: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" @@ -2428,11 +2467,13 @@ msgstr "Bevorzugte Anzeigesprache für Seiten." #: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "" -"Eine alternative E-Mail-Adresse welche Wiederherstellungszwecken dient." +"Eine alternative E-Mail-Adresse kann für die Wiederherstellung verwendet " +"werden." #: core/models.py:131 msgid "Failed to update password: LDAP module not installed" -msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert" +msgstr "" +"Kennwort konnte nicht aktualisiert werden: LDAP-Modul nicht installiert" #: core/models.py:166 policyd/core.py:106 msgid "account" @@ -2508,7 +2549,7 @@ msgstr "So you Start Europa" #: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:66 msgid "So you Start North America" -msgstr "So you Start Amerika" +msgstr "So you Start Nord-Amerika" #: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:67 msgid "Kimsufi Europe" @@ -2520,11 +2561,11 @@ msgstr "Kimsufi Nordamerika" #: core/sms_backends/ovh.py:36 core/sms_backends/ovh.py:109 msgid "Application key" -msgstr "Applikationsschlüssel" +msgstr "Anwendungsschlüssel" #: core/sms_backends/ovh.py:41 msgid "Application secret" -msgstr "Applikationsgeheimnis" +msgstr "Anwendungsgeheimnis" #: core/sms_backends/ovh.py:49 core/sms_backends/ovh.py:124 msgid "Consumer key" @@ -2534,11 +2575,11 @@ msgstr "Verbraucherschlüssel" #, fuzzy #| msgid "Application secret" msgid "Appication secret" -msgstr "Applikationsgeheimnis" +msgstr "Anwendungsgeheimnis" #: core/templates/core/_current_features.html:6 msgid "Features looking for sponsoring" -msgstr "Noch zu unterstützende Features" +msgstr "Funktionen, die nach Sponsoring suchen" #: core/templates/core/_current_features.html:12 msgid "Goal:" @@ -2554,7 +2595,7 @@ msgstr "Noch nichts zu sponsern." #: core/templates/core/_latest_news_widget.html:5 msgid "Latest news" -msgstr "Neuste Nachrichten" +msgstr "Neueste Nachrichten" #: core/templates/core/_latest_news_widget.html:19 msgid "" @@ -2566,7 +2607,7 @@ msgstr "" #: core/templates/core/api_access.html:3 msgid "API access" -msgstr "API Zugriff" +msgstr "API-Zugriff" #: core/templates/core/api_access.html:3 msgid "Control your access to Modoboa API" @@ -2583,7 +2624,7 @@ msgstr "" #: core/templates/core/api_access.html:14 msgid "API access token" -msgstr "API access token" +msgstr "API-Zugriffstoken" #: core/templates/core/dashboard.html:17 #, python-format @@ -2600,7 +2641,7 @@ msgstr "Verschiedene Informationen über Modoboa" #: core/templates/core/information.html:5 msgid "One or more updates are available!" -msgstr "Eine oder mehrere Aktualisierungen sind verfügbar!" +msgstr "Ein oder mehrere Updates sind verfügbar" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." @@ -2630,7 +2671,7 @@ msgstr "Logs" #: core/templates/core/logs.html:2 msgid "Previously on Modoboa..." -msgstr "Vorher auf Modoboa…" +msgstr "Bisher auf Modoboa ..." #: core/templates/core/logs.html:7 msgid "Level" @@ -2649,10 +2690,10 @@ msgid_plural "" " The following updates are available:\n" msgstr[0] "" "\n" -"Die folgende Aktualisierung ist verfügbar:\n" +" Folgendes Update ist verfügbar:\n" msgstr[1] "" "\n" -"Die folgenden Aktualisierungen sind verfügbar:\n" +" Folgende Updates sind verfügbar:\n" #: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70 msgid "Parameters" @@ -2694,7 +2735,7 @@ msgstr "Aktualisieren Sie Ihre persönlichen Daten" #: core/templates/core/user_profile.html:13 msgid "Click here to update your password" -msgstr "Hier klicken um das Passwort zu aktualisieren" +msgstr "Klicken Sie hier, um Ihr Passwort zu aktualisieren" #: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:145 msgid "Security" @@ -2706,15 +2747,15 @@ msgstr "Zwei-Faktor-Authentifizierung" #: 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." +"Install a soft token authenticator like FreeOTP or Google Authenticator from " +"your application repository and use that app to scan this QR code." msgstr "" -"Installiere ein soft-token Authenticator, wie FreeOTP oder Google " -"Authenticator vom Appstore und scannen Sie den QR-Code." +"Installieren Sie einen Soft-Token-Authentifikator wie FreeOTP oder Google " +"Authenticator aus dem App-Store und scannen Sie den QR-Code." #: core/templates/core/user_security.html:25 msgid "Pin code" -msgstr "Pincode" +msgstr "PIN-Code" #: core/templates/core/user_security.html:28 msgid "Register" @@ -2735,14 +2776,14 @@ msgid "" "to save them in a safe place, otherwise you won't be able to access your " "account anymore." msgstr "" -"Die folgenden Wiederherstellungscodes können einmalig benutzt werden, um den" -" Zugriff auf ihr Konto wiederherzustellen, wenn sie zum Beispiel ihr " -"Mobiltelefon verlieren. Achten sie darauf diese sicher aufzubewahren, sonst " -"werden sie keine Möglichkeit mehr haben auf den Account zuzugreifen" +"Die folgenden Wiederherstellungscodes können jeweils einmal verwendet " +"werden, um den Zugriff auf Ihr Konto wiederherzustellen, falls Sie " +"beispielsweise Ihr Telefon verlieren. Achten Sie darauf, diese sicher " +"aufzubewahren, da Sie sonst nicht mehr auf Ihr Konto zugreifen können." #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." -msgstr "Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." +msgstr "Die Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." #: core/templates/core/user_security.html:57 msgid "This will invalidate your registered application." @@ -2750,7 +2791,7 @@ msgstr "" #: core/templates/core/user_security.html:58 msgid "Disable 2FA" -msgstr "Deaktiviere 2-Faktor-Authentifizierung" +msgstr "2FA deaktivieren" #: core/templates/core/user_security.html:60 msgid "This will regenerate your tokens." @@ -2758,19 +2799,20 @@ msgstr "" #: core/templates/core/user_security.html:61 msgid "Reset recovery codes" -msgstr "Setze Wiederherstellungscodes zurück" +msgstr "Wiederherstellungscodes zurücksetzen" #: 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." msgstr "" -"Zwei-Faktor-Authentifizierung (2FA) ist noch nicht für diesen Account aktiviert.\n" -"Aktiviere dieses Feature, um die Account-Sicherheit zu erhöhen." +"Die Zwei-Faktor-Authentifizierung (2FA) ist für diesen Account noch nicht " +"aktiviert. Die Aktivierung dieser Funktion erhöht die Sicherheit des " +"Accounts." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" -msgstr "Aktiviere 2FA" +msgstr "2FA aktivieren" #: core/templates/core/user_security.html:84 msgid "New recovery codes" @@ -2782,9 +2824,9 @@ msgstr "Hier sind Ihre neuen Wiederherstellungscodes." #: core/templates/core/user_security.html:118 #, fuzzy -#| msgid "Crypt passwords" +#| msgid "Forgot password?" msgid "Confirm your password" -msgstr "Passwörter verschlüsseln" +msgstr "Passwort vergessen?" #: core/templatetags/core_tags.py:34 msgid "Modoboa" @@ -2792,7 +2834,7 @@ msgstr "Modoboa" #: core/templatetags/core_tags.py:110 msgid "Logout" -msgstr "Logout" +msgstr "Ausloggen" #: core/templatetags/core_tags.py:154 msgid "API" @@ -2809,8 +2851,7 @@ msgstr "Parameter gespeichert" #: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "" -"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es " -"noch einmal." +"Benutzername und Passwort stimmen nicht überein. Bitte versuche es erneut." #: core/views/auth.py:144 msgid "User '{}' successfully logged out" @@ -2826,11 +2867,13 @@ msgstr "Einstellungen gespeichert" #: core/views/user.py:118 msgid "Access updated" -msgstr "Zugriff aktualisiert" +msgstr "Zugang aktualisiert" #: dmarc/forms.py:36 dmarc/forms.py:50 +#, fuzzy +#| msgid "LDAP settings" msgid "DNS settings" -msgstr "" +msgstr "LDAP-Einstellungen" #: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" @@ -2841,14 +2884,12 @@ msgid "Enable reverse DNS lookups (reports will be longer to display)" msgstr "" #: dmarc/forms.py:74 dmarc/forms.py:78 -#, fuzzy -#| msgid "DMARC tools" msgid "DMARC" -msgstr "DMARC-Tools" +msgstr "" #: dmarc/handlers.py:21 msgid "Show DMARC report for {}" -msgstr "DMARC-Bericht für {} anzeigen" +msgstr "" #: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120 msgid "Not resolved" @@ -2856,103 +2897,105 @@ msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 msgid "None" -msgstr "Nichts" +msgstr "" #: dmarc/models.py:11 msgid "Quarantine" -msgstr "Quarantäne" +msgstr "" #: dmarc/models.py:12 +#, fuzzy +#| msgid "Subject" msgid "Reject" -msgstr "Ablehnung" +msgstr "Betreff" #: dmarc/models.py:17 msgid "Neutral" -msgstr "Neutral" +msgstr "" #: dmarc/models.py:18 +#, fuzzy +#| msgid "Password" msgid "Pass" -msgstr "Genehmigen" +msgstr "Passwort" #: dmarc/models.py:19 msgid "Fail" -msgstr "Abbruch" +msgstr "" #: dmarc/models.py:20 +#, fuzzy +#| msgid "Secondary server port" msgid "Temporary error" -msgstr "Temporärer Fehler" +msgstr "Ausfallserver-Port" #: dmarc/models.py:21 msgid "Permanent error" -msgstr "Permanenter Fehler" +msgstr "" #: dmarc/models.py:24 msgid "Policy" -msgstr "Richtlinie" +msgstr "" #: dmarc/models.py:26 msgid "Soft failure" -msgstr "Schwacher Fehler" +msgstr "" #: dmarc/templates/dmarc/_result_detail.html:6 msgid "Total" -msgstr "Total" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:21 #: dmarc/templates/dmarc/domain_report.html:27 msgid "Fully aligned" -msgstr "Voll zugeordnet" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:22 #: dmarc/templates/dmarc/domain_report.html:28 msgid "Partially aligned" -msgstr "Teilweise zugeordnet" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:23 #: dmarc/templates/dmarc/domain_report.html:29 -#, fuzzy -#| msgid "Forward" msgid "Forwarded" -msgstr "Weiterleiten" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:24 #: dmarc/templates/dmarc/domain_report.html:30 msgid "Failed" -msgstr "Fehlgeschlagen" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:52 msgid "DMARC report for" -msgstr "DMARC-Bericht für" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:76 msgid "processed" -msgstr "durchgeführt" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:85 msgid "fully aligned" -msgstr "voll zugeordnet" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:94 msgid "partially aligned" -msgstr "teilweise zugeordnet" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:103 -#, fuzzy -#| msgid "Forward" msgid "forwarded" -msgstr "Weiterleiten" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:112 msgid "failed" -msgstr "fehlgeschlagen" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:122 msgid "Display details" -msgstr "Anzeigedetails" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:126 msgid "Trusted sources" -msgstr "Vertraute Quellen" +msgstr "" #: dmarc/templates/dmarc/domain_report.html:134 msgid "Partially trusted sources / Forwarders" @@ -2964,192 +3007,190 @@ msgstr "" #: dmarc/templates/dmarc/domain_report.html:150 msgid "Unknown sources / Threats" -msgstr "Unbekannte Quellen / Bedrohungen" +msgstr "" #: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" -msgstr "" +msgstr "Falsche Syntax des IP4-Mechanismus" #: dnstools/lib.py:86 msgid "Wrong IPv4 address format" -msgstr "" +msgstr "Falsches IPv4-Adressformat" #: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" -msgstr "" +msgstr "Falsche Syntax des IP6-Mechanismus" #: dnstools/lib.py:97 msgid "Wrong IPv6 address format" -msgstr "" +msgstr "Falsches IPv6-Adressformat" #: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" -msgstr "" +msgstr "Ungültige Syntax für {}-Mechanismus" #: dnstools/lib.py:113 msgid "Invalid mask found {}" -msgstr "" +msgstr "Ungültige Maske gefunden {}" #: dnstools/lib.py:157 msgid "Not an SPF record" -msgstr "" +msgstr "Kein SPF-Eintrag" #: dnstools/lib.py:179 msgid "Unknown mechanism {}" -msgstr "" +msgstr "Unbekannter Mechanismus {}" #: dnstools/lib.py:181 msgid "Unknown modifier {}" -msgstr "" +msgstr "Unbekannter Modifikator {}" #: dnstools/lib.py:184 msgid "Duplicate modifier {} found" -msgstr "" +msgstr "Doppelter Modifikator {} gefunden" #: dnstools/lib.py:188 msgid "No mechanism found" -msgstr "" +msgstr "Kein Mechanismus gefunden" #: dnstools/lib.py:195 msgid "Not a valid DKIM record" -msgstr "" +msgstr "Kein gültiger DKIM-Eintrag" #: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" -msgstr "" +msgstr "Ungültiger Tag {}" #: dnstools/lib.py:208 msgid "No key found in record" -msgstr "" +msgstr "Kein Schlüssel im Datensatz gefunden" #: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" -msgstr "" +msgstr "Falscher Wert {} für Tag {}" #: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" -msgstr "" +msgstr "Falscher Wert {} für Tag {}:" #: dnstools/lib.py:234 msgid " not an integer" -msgstr "" +msgstr "Keine ganze Zahl" #: dnstools/lib.py:236 msgid " less than {}" -msgstr "" +msgstr "weniger als {}" #: dnstools/lib.py:239 msgid " greater than {}" -msgstr "" +msgstr "größer als {}" #: dnstools/lib.py:248 msgid "Not a valid DMARC record" -msgstr "" +msgstr "Kein gültiger DMARC-Eintrag" #: dnstools/lib.py:259 msgid "Unknown tag {}" -msgstr "" +msgstr "Unbekanntes Tag {}" #: dnstools/lib.py:264 msgid "Missing required p tag" -msgstr "" +msgstr "Erforderliches p-Tag fehlt" #: dnstools/models.py:78 msgid "Public key mismatchs" -msgstr "" +msgstr "Öffentlicher Schlüssel stimmt nicht überein" #: dnstools/templates/dnstools/autoconfig_records_status.html:8 msgid "autoconfig record (Mozilla) found: " -msgstr "" +msgstr "Autoconfig-Eintrag (Mozilla) gefunden:" #: dnstools/templates/dnstools/autoconfig_records_status.html:12 msgid "autoconfig record (Mozilla) not found." -msgstr "" +msgstr "Autoconfig-Eintrag (Mozilla) nicht gefunden." #: dnstools/templates/dnstools/autoconfig_records_status.html:17 msgid "autodiscover record (Microsoft) found: " -msgstr "" +msgstr "Autodiscover-Eintrag (Microsoft) gefunden:" #: dnstools/templates/dnstools/autoconfig_records_status.html:21 msgid "autodiscover record (Microsoft) not found." -msgstr "" +msgstr "Autodiscover-Eintrag (Microsoft) nicht gefunden." #: dnstools/templates/dnstools/dns_record_detail.html:8 msgid "A DNS record has been found and is valid." -msgstr "" +msgstr "Ein DNS-Eintrag wurde gefunden und ist gültig." #: dnstools/templates/dnstools/dns_record_detail.html:12 msgid "A DNS record has been found but its syntax is not valid:" -msgstr "" +msgstr "Ein DNS-Eintrag wurde gefunden, aber seine Syntax ist ungültig:" #: 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." +"Here is an example of DNS configuration (bind format). Replace value between " +"[ ] by the appropriate ones." msgstr "" +"Hier ist ein Beispiel für die DNS-Konfiguration (Bind-Format). Ersetzen Sie " +"den Wert zwischen [ ] durch die entsprechenden Werte." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" -msgstr "" +msgstr "IP-Adresse Ihres Modoboa-Servers" #: dnstools/templates/dnstools/domain_dns_configuration.html:28 msgid "Auto configuration" -msgstr "" +msgstr "Automatische Konfiguration" #: dnstools/templates/dnstools/domain_dns_configuration.html:30 #: dnstools/templates/dnstools/domain_dns_configuration.html:31 msgid "hostname of your automx server" -msgstr "" +msgstr "Hostname Ihres Automx-Servers" #: dnstools/views.py:35 msgid "{} record of {}" -msgstr "" +msgstr "{} Eintrag von {}" #: dnstools/views.py:64 msgid "Auto configuration records for {}" -msgstr "" +msgstr "Automatische Konfigurationseinträge für {}" #: dnstools/views.py:80 msgid "DNS configuration for {}" -msgstr "" +msgstr "DNS-Konfiguration für {}" #: imap_migration/api/v2/serializers.py:117 #, fuzzy #| msgid "Access updated" msgid "Access denied" -msgstr "Zugriff aktualisiert" +msgstr "Zugang aktualisiert" #: imap_migration/app_settings.py:23 imap_migration/app_settings.py:102 #, fuzzy -#| msgid "IMAP migration" +#| msgid "Enable communication" msgid "Enable IMAP Migration" -msgstr "IMAP-Migration" +msgstr "Verbindung aktivieren" #: imap_migration/app_settings.py:24 imap_migration/app_settings.py:104 #, fuzzy -#| msgid "IMAP migration" +#| msgid "Enable communication" msgid "Enable IMAP Migration." -msgstr "IMAP-Migration" +msgstr "Verbindung aktivieren" #: imap_migration/app_settings.py:34 -#, fuzzy -#| msgid "OfflineIMAP settings" msgid "OfflineIMAP" -msgstr "OfflineIMAP-Einstellungen" +msgstr "" #: imap_migration/app_settings.py:40 imap_migration/app_settings.py:110 msgid "Concurrent sync jobs" -msgstr "Gleichzeitige Synchronisierungsaufgaben" +msgstr "" #: imap_migration/app_settings.py:42 imap_migration/app_settings.py:112 msgid "The maximum number of concurrent synchronization jobs" -msgstr "Die maximale Anzahl von gleichzeitigen Synchronisierungsaufgaben" +msgstr "" #: imap_migration/app_settings.py:53 -#, fuzzy -#| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter" -msgstr "OfflineIMAP-Einstellungen" +msgstr "" #: imap_migration/app_settings.py:59 imap_migration/app_settings.py:118 msgid "Create Folders" @@ -3176,30 +3217,30 @@ msgstr "" #: 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 " +"filtered by the Folder Filter Exclusions. Example: debian.user, debian." +"personal " msgstr "" #: imap_migration/app_settings.py:107 +#, fuzzy +#| msgid "LDAP settings" msgid "OfflineIMAP settings" -msgstr "OfflineIMAP-Einstellungen" +msgstr "LDAP-Einstellungen" #: imap_migration/app_settings.py:115 -#, fuzzy -#| msgid "OfflineIMAP settings" msgid "OfflineIMAP Filter settings" -msgstr "OfflineIMAP-Einstellungen" +msgstr "" #: imap_migration/apps.py:18 imap_migration/apps.py:23 #, fuzzy -#| msgid "IMAP migration" +#| msgid "Auto configuration" msgid "IMAP Migration" -msgstr "IMAP-Migration" +msgstr "Automatische Konfiguration" #: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" -msgstr "Verbindung zu IMAP-Server fehlgeschlagen: %s" +msgstr "" #: imap_migration/checks.py:12 msgid "" @@ -3213,40 +3254,42 @@ msgid "" msgstr "" #: imap_migration/templates/imap_migration/index.html:6 +#, fuzzy +#| msgid "Auto configuration" msgid "IMAP migration" -msgstr "IMAP-Migration" +msgstr "Automatische Konfiguration" #: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" -msgstr "LDAP-Account konnte nicht angelegt werden: {}" +msgstr "LDAP-Konto konnte nicht erstellt werden: {}" #: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" -msgstr "LDAP-Account konnte nicht aktualisiert werden: {}" +msgstr "LDAP-Konto konnte nicht aktualisiert werden: {}" #: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" -msgstr "LDAP-Account konnte nicht gelöscht werden: {}" +msgstr "Fehler beim Löschen des LDAP-Kontos: {}" #: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" -msgstr "LDAP-Account konnte nicht deaktiviert werden: {}" +msgstr "Fehler beim Deaktivieren des LDAP-Kontos: {}" #: 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 "Verbindung mit Modoboa public API aktivieren" +msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa" #: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" -msgstr "Verbindung zu Datenbank %s nicht konfiguriert" +msgstr "Verbindung zur Datenbank %s nicht konfiguriert" #: lib/email_utils.py:139 lib/email_utils.py:350 msgid "unable to determine encoding of string" -msgstr "Kodierung der Zeichenkette konnte nicht bestimmt werden" +msgstr "Codierung der Zeichenkette konnte nicht bestimmt werden" #: lib/exceptions.py:83 #, python-format @@ -3259,7 +3302,7 @@ msgstr "Zugriff verweigert" #: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" -msgstr "Geben Sie einen gültigen Domain-Namen an" +msgstr "Geben Sie einen gültigen Domänennamen ein" #: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." @@ -3273,17 +3316,15 @@ msgstr "Abschicken" #: lib/ldap_utils.py:126 msgid "Failed to update password: {}" -msgstr "Ändern des Passworts fehlgeschlagen: {}" +msgstr "Passwort konnte nicht aktualisiert werden: {}" #: lib/templatetags/lib_tags.py:120 templates/common/email_searchbar.html:17 msgid "Subject" msgstr "Betreff" #: limits/app_settings.py:17 limits/app_settings.py:147 -#, fuzzy -#| msgid "Default limits" msgid "Default per-admin limits" -msgstr "Standard-Grenzwerte" +msgstr "" #: limits/app_settings.py:20 limits/app_settings.py:153 msgid "Enable per-admin limits" @@ -3294,55 +3335,42 @@ msgid "Enable or disable per-admin limits" msgstr "" #: 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 +#: limits/app_settings.py:160 limits/app_settings.py:245 limits/constants.py:47 +#: limits/constants.py:101 +#, fuzzy +#| msgid "Domain administrator" msgid "Domain admins" -msgstr "Domain-Administratoren" +msgstr "Domain-Administrator" #: limits/app_settings.py:29 limits/app_settings.py:163 -#, fuzzy -#| msgid "" -#| "Maximum number of allowed domain administrators for a new administrator" msgid "" "Maximum number of allowed domain administrators for a new administrator. (0 " "to deny any creation, -1 to allow unlimited creations)" msgstr "" -"Maximale Anzahl der Domain-Administratoren, die ein neuer Administrator " -"erstellen darf" #: limits/app_settings.py:39 limits/app_settings.py:175 -#, fuzzy -#| msgid "Maximum number of allowed domains for a new administrator" msgid "" "Maximum number of allowed domains for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Domains, die ein neuer Administrator erstellen darf" +msgstr "" #: limits/app_settings.py:48 limits/app_settings.py:186 -#, fuzzy -#| msgid "" -#| "Maximum number of allowed domain aliases for a new administrator" msgid "" -"Maximum number of allowed domain aliases for a new administrator. (0 to deny" -" any creation, -1 to allow unlimited creations)" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny " +"any creation, -1 to allow unlimited creations)" msgstr "" -"Maximale Anzahl Domain-Aliase, die ein neuer Administrator erstellen darf" #: limits/app_settings.py:58 limits/app_settings.py:198 -#, fuzzy -#| msgid "Maximum number of allowed mailboxes for a new administrator" msgid "" "Maximum number of allowed mailboxes for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Mailboxen, die ein neuer Administrator erstellen darf" +msgstr "" #: limits/app_settings.py:67 limits/app_settings.py:210 -#, fuzzy -#| msgid "Maximum number of allowed aliases for a new administrator" msgid "" "Maximum number of allowed aliases for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Aliase, die ein neuer Administrator erstellen darf" +msgstr "" #: limits/app_settings.py:76 limits/app_settings.py:220 msgid "" @@ -3351,10 +3379,8 @@ msgid "" msgstr "" #: limits/app_settings.py:82 limits/app_settings.py:232 -#, fuzzy -#| msgid "Default limits" msgid "Default per-domain limits" -msgstr "Standard-Grenzwerte" +msgstr "" #: limits/app_settings.py:85 limits/app_settings.py:238 msgid "Enable per-domain limits" @@ -3365,125 +3391,104 @@ msgid "Enable or disable per-domain limits" msgstr "" #: limits/app_settings.py:94 limits/app_settings.py:248 -#, fuzzy -#| msgid "" -#| "Maximum number of allowed domain administrators for a new administrator" msgid "" -"Maximum number of allowed domain administrators for a new domain. (0 to deny" -" any creation, -1 to allow unlimited creations)" +"Maximum number of allowed domain administrators for a new domain. (0 to deny " +"any creation, -1 to allow unlimited creations)" msgstr "" -"Maximale Anzahl der Domain-Administratoren, die ein neuer Administrator " -"erstellen darf" #: limits/app_settings.py:104 limits/app_settings.py:260 -#, fuzzy -#| msgid "" -#| "Maximum number of allowed domain aliases for a new administrator" msgid "" "Maximum number of allowed domain aliases for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" msgstr "" -"Maximale Anzahl Domain-Aliase, die ein neuer Administrator erstellen darf" #: limits/app_settings.py:114 limits/app_settings.py:272 -#, fuzzy -#| msgid "Maximum number of allowed mailboxes for a new administrator" msgid "" "Maximum number of allowed mailboxes for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Mailboxen, die ein neuer Administrator erstellen darf" +msgstr "" #: limits/app_settings.py:123 limits/app_settings.py:283 -#, fuzzy -#| msgid "Maximum number of allowed aliases for a new administrator" msgid "" -"Maximum number of allowed aliases for a new domain. (0 to deny any creation," -" -1 to allow unlimited creations)" -msgstr "Maximale Anzahl Aliase, die ein neuer Administrator erstellen darf" +"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:17 msgid "Limits" -msgstr "Grenzwerte" +msgstr "" #: limits/constants.py:14 msgid "Maximum number of domains this user can create" -msgstr "Maximale Anzahl Domains, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "Maximale Anzahl Domain Aliase, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" -msgstr "Maximale Anzahl Mailboxen, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Maximale Anzahl Mailbox-Aliase, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Maximale Anzahl Domains, die ein Administrator erstellen darf" +msgstr "" #: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "" #: limits/constants.py:77 -#, fuzzy -#| msgid "Maximum number of domain aliases this user can create" msgid "Maximum number of domain aliases allowed for this domain." -msgstr "Maximale Anzahl Domain Aliase, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:85 -#, fuzzy -#| msgid "Maximum number of mailboxes this user can create" msgid "Maximum number of mailboxes allowed for this domain." -msgstr "Maximale Anzahl Mailboxen, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:93 -#, fuzzy -#| msgid "Maximum number of mailbox aliases this user can create" msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Maximale Anzahl Mailbox-Aliase, die dieser Benutzer erstellen darf" +msgstr "" #: limits/constants.py:102 -#, fuzzy -#| msgid "Maximum number of domain administrators this user can create" msgid "Maximum number of domain admins allowed for this domain." -msgstr "Maximale Anzahl Domains, die ein Administrator erstellen darf" +msgstr "" #: limits/forms.py:38 limits/forms.py:88 +#, fuzzy +#| msgid "Invalid line" msgid "Invalid limit" -msgstr "Ungültiger Grenzwert" +msgstr "Ungültige Zeile" #: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" -msgstr "Ressourcen" +msgstr "" #: limits/lib.py:19 #, python-format msgid "%s: limit reached" -msgstr "%s: Grenze erreicht" +msgstr "" #: limits/lib.py:29 msgid "Not enough resources" -msgstr "Nicht ausreichend Ressourcen" +msgstr "" #: limits/lib.py:46 limits/models.py:46 msgid "You're not allowed to define unlimited values" msgstr "" -"Sie verfügen nicht über die erforderlichen Rechte, um unbegrenzte Werte " -"anzugeben" #: limits/models.py:56 limits/models.py:119 msgid "unlimited" -msgstr "unbegrenzt" +msgstr "" #: limits/templates/limits/poolusage.html:3 #: limits/templates/limits/resources_widget.html:5 msgid "Resources usage" -msgstr "Ressourcen-Verbrauch" +msgstr "" #: maillog/api/v2/serializers.py:35 msgid "You must provide start and end dates when period is custom" @@ -3491,11 +3496,12 @@ msgstr "" #: maillog/apps.py:20 maillog/forms.py:23 msgid "Path to the log file" -msgstr "Pfad zur Log-Datei" +msgstr "Pfad zur Protokolldatei" #: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" -msgstr "Pfad zur Log-Datei, um Statistiken zu sammeln" +msgstr "" +"Pfad zur Protokolldatei, die zum Sammeln von Statistiken verwendet wird" #: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" @@ -3503,17 +3509,15 @@ msgstr "Ablageverzeichnis für RRD-Dateien" #: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" -msgstr "Pfad zum Verzeichnis in dem die RRD-Dateien abgelegt werden" +msgstr "Pfad zum Verzeichnis, in dem RRD-Dateien gespeichert sind" #: maillog/apps.py:38 maillog/forms.py:37 -#, fuzzy -#| msgid "rejected messages" msgid "Show greylisted messages" -msgstr "Abgewiesene Nachrichten" +msgstr "Zeige Greylisted E-Mails" #: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" -msgstr "" +msgstr "Unterscheide zwischen Hard- und Soft-Rejects (Greylisting)" #: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" @@ -3521,11 +3525,11 @@ msgstr "Statistiken" #: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." -msgstr "" +msgstr "rrdtool-Binärdatei konnte nicht gefunden werden." #: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" -msgstr "Durchschnittlicher Traffic (Nachrichten/min)" +msgstr "Durchschnittlicher Datenverkehr (Nachrichten/Min.)" #: maillog/graphics.py:171 msgid "sent messages" @@ -3537,41 +3541,35 @@ msgstr "Empfangene Nachrichten" #: maillog/graphics.py:173 msgid "bounced messages" -msgstr "Zurückgeworfene Nachrichten" +msgstr "Unzustellbare Nachrichten" #: maillog/graphics.py:174 msgid "rejected messages" msgstr "Abgewiesene Nachrichten" #: maillog/graphics.py:175 -#, fuzzy -#| msgid "sent messages" msgid "virus messages" -msgstr "Gesendete Nachrichten" +msgstr "Virus E-Mails" #: maillog/graphics.py:176 -#, fuzzy -#| msgid "sent messages" msgid "spam messages" -msgstr "Gesendete Nachrichten" +msgstr "Spam E-Mails" #: maillog/graphics.py:183 -#, fuzzy -#| msgid "rejected messages" msgid "greylisted messages" -msgstr "Abgewiesene Nachrichten" +msgstr "Greylisted E-Mails" #: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" -msgstr "Durchschnittliche Traffic-Menge (Bytes/min)" +msgstr "Durchschnittlicher Datenverkehr (Bytes/Min)" #: maillog/graphics.py:203 msgid "received size" -msgstr "Empfangsgröße" +msgstr "Empfangene Daten" #: maillog/graphics.py:204 msgid "sent size" -msgstr "Versendegröße" +msgstr "Gesendete Daten" #: maillog/graphics.py:211 msgid "Mail traffic" @@ -3579,15 +3577,15 @@ msgstr "Mailverkehr" #: maillog/graphics.py:254 msgid "Average account creation (account/hour)" -msgstr "" +msgstr "Durchschnittlich erstelle Konten (Konten/Stunde)" #: maillog/graphics.py:256 msgid "New accounts" -msgstr "" +msgstr "Neue Konten" #: maillog/graphics.py:263 msgid "Accounts" -msgstr "" +msgstr "Konten" #: maillog/templates/maillog/index.html:4 msgid "Graphical statistics" @@ -3595,15 +3593,15 @@ msgstr "Grafische Statistiken" #: maillog/templates/maillog/index.html:44 msgid "Search a domain" -msgstr "Domain suchen" +msgstr "Suche eine Domäne" #: maillog/templates/maillog/index.html:77 msgid "Apply" -msgstr "Antworten" +msgstr "Anwenden" #: maillog/views.py:33 msgid "No statistics available" -msgstr "Keine Statistik-Daten verfügbar" +msgstr "Keine Statistiken verfügbar" #: maillog/views.py:39 msgid "Day" @@ -3627,190 +3625,195 @@ msgstr "Benutzerdefiniert" #: maillog/views.py:66 msgid "Unknown graphic set" -msgstr "Unbekanntes graphisches Set" +msgstr "Unbekannter Grafiksatz" #: maillog/views.py:71 -#, fuzzy -#| msgid "Unknown graphic set" msgid "Unknown domain" -msgstr "Unbekanntes graphisches Set" +msgstr "Unbekannte Domäne" #: maillog/views.py:76 msgid "Bad custom period" -msgstr "Ungültiger individueller Zeitraum" +msgstr "Ungültiger benutzerdefinierter Zeitraum" #: 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 "Persönliche Kontoinformationen" +msgstr "Aktualisieren Sie Ihre persönlichen Daten" #: pdfcredentials/api/v2/serializers.py:61 #, fuzzy -#| msgid "Directory not found." +#| msgid "Directory to store RRD files" msgid "Directory is not writable" -msgstr "Verzeichnis nicht gefunden." +msgstr "Ablageverzeichnis für RRD-Dateien" #: pdfcredentials/api/v2/serializers.py:82 pdfcredentials/views.py:26 msgid "No document available for this user" -msgstr "Kein Dokument für diesen Benutzer verfügbar" +msgstr "" #: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy -#| msgid "PDF credentials" +#| msgid "Enable API access" msgid "Enable PDF credentials" -msgstr "PDF Anmeldeinformationen" +msgstr "API-Zugriff aktivieren" #: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 -#, fuzzy -#| msgid "Generate documents only at account creation" msgid "Enabled PDF credentials document generation on account creation." -msgstr "Erzeuge Dokumente nur wenn ein Konto angelegt wurde" +msgstr "" #: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" -msgstr "Dokumentenablage" +msgstr "" #: pdfcredentials/app_settings.py:48 pdfcredentials/app_settings.py:206 +#, fuzzy +#| msgid "Directory to store RRD files" msgid "Directory to save documents into" -msgstr "Speicherpfad für Dokumente" +msgstr "Ablageverzeichnis für RRD-Dateien" #: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 +#, fuzzy +#| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" -msgstr "Dateipfad in dem die PDF-Dokumente abgelegt werden" +msgstr "Pfad zum Verzeichnis, in dem RRD-Dateien gespeichert sind" #: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 +#, fuzzy +#| msgid "Security" msgid "Security options" -msgstr "Sicherheitseinstellungen" +msgstr "Sicherheit" #: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:214 msgid "Delete documents after the first download" -msgstr "Lösche Dokumente nach dem ersten Download" +msgstr "" #: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 msgid "" "Automatically delete a document just after its first download from this " "interface" msgstr "" -"Löscht automatisch das Dokument, wenn es das erste Mal über dieses " -"Oberfläche heruntergeladen wurde" #: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223 msgid "Generate documents only at account creation" -msgstr "Erzeuge Dokumente nur wenn ein Konto angelegt wurde" +msgstr "" #: 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 "" -"Erzeuge ein neues Dokument nur wenn ein neues Konto erstellt wurde. Wenn die" -" Option auf Nein steht wird jedes Mal ein neues Dokument erstellt, wenn ein " -"Passwort aktualisiert wurde." #: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" -msgstr "Individuell angepasste Optionen" +msgstr "" #: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" -msgstr "Titel" +msgstr "" #: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:237 msgid "The document's title" -msgstr "Titel des Dokuments" +msgstr "" #: pdfcredentials/app_settings.py:107 pdfcredentials/app_settings.py:241 msgid "Web panel url" -msgstr "URL der Webanwendung" +msgstr "" #: pdfcredentials/app_settings.py:108 pdfcredentials/app_settings.py:241 msgid "URL of the Modoboa web panel" -msgstr "URL der Modoboa Webanwendung" +msgstr "" #: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 +#, fuzzy +#| msgid "spam messages" msgid "Custom message" -msgstr "Eigener Nachrichtentext" +msgstr "Spam E-Mails" #: pdfcredentials/app_settings.py:116 pdfcredentials/app_settings.py:246 msgid "A custom message that will appear at the end of documents" -msgstr "Eine eigene Nachricht, die am Ende des Dokuments angezeigt wird" +msgstr "" #: pdfcredentials/app_settings.py:123 pdfcredentials/app_settings.py:251 msgid "Include mail client connection settings" -msgstr "Verbindungseinstellungen für Mailprogramme einschließen" +msgstr "" #: 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 "" -"Erforderliche SMTP und IMAP Einstellungen zur Konfiguration von " -"Mailprogramme, Tablets oder Telefonen" #: pdfcredentials/app_settings.py:133 pdfcredentials/app_settings.py:260 #: pdfcredentials/documents.py:133 +#, fuzzy +#| msgid "Server address" msgid "SMTP server address" -msgstr "SMTP Serveradresse" +msgstr "Serveradresse" #: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261 msgid "Address of the SMTP server (hostname or IP)" -msgstr "Adresse des SMTP-Servers (Hostname oder IP)" +msgstr "" #: pdfcredentials/app_settings.py:143 pdfcredentials/app_settings.py:265 #: pdfcredentials/documents.py:134 +#, fuzzy +#| msgid "Server port" msgid "SMTP server port" -msgstr "SMTP Server-Port" +msgstr "Server Port" #: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267 msgid "Listening port of the SMTP server" -msgstr "Port, auf dem der SMTP-Server erreicht werden kann" +msgstr "" #: pdfcredentials/app_settings.py:151 pdfcredentials/app_settings.py:271 #: pdfcredentials/documents.py:135 msgid "SMTP connection security" -msgstr "SMTP-Verbindungssicherheit" +msgstr "" #: 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 "Mechanismus zur Verbindungssicherung" +msgstr "" #: pdfcredentials/app_settings.py:159 pdfcredentials/app_settings.py:278 #: pdfcredentials/documents.py:136 +#, fuzzy +#| msgid "Server address" msgid "IMAP server address" -msgstr "IMAP Serveradresse" +msgstr "Serveradresse" #: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279 msgid "Address of the IMAP server (hostname or IP)" -msgstr "Adresse des IMAP-Servers (Hostname oder IP)" +msgstr "" #: pdfcredentials/app_settings.py:169 pdfcredentials/app_settings.py:283 #: pdfcredentials/documents.py:137 +#, fuzzy +#| msgid "Server port" msgid "IMAP server port" -msgstr "IMAP Server-Port" +msgstr "Server Port" #: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285 msgid "Listening port of the IMAP server" -msgstr "Port, auf dem der IMAP-Servier erreicht werden kann" +msgstr "" #: pdfcredentials/app_settings.py:177 pdfcredentials/app_settings.py:289 #: pdfcredentials/documents.py:138 msgid "IMAP connection security" -msgstr "IMAP Verbindungssicherheit" +msgstr "" #: pdfcredentials/apps.py:19 msgid "PDF credentials" -msgstr "PDF Anmeldeinformationen" +msgstr "" #: pdfcredentials/apps.py:24 -#, fuzzy -#| msgid "PDF credentials" msgid "PDF Credentials" -msgstr "PDF Anmeldeinformationen" +msgstr "" #: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" -msgstr "Powered by Modoboa - Mail hosting made simple" +msgstr "" #: pdfcredentials/documents.py:84 #, python-format @@ -3820,12 +3823,10 @@ msgid "" "to connect to Modoboa. Learn the content and destroy\n" "the document as soon as possible.\n" msgstr "" -"\n" -"Liebe/r %s, dieses Dokument enthält die Anmeldeinformationen, die Du benötigst um Dich mit Modoboa zu verbinden. Präge Dir bitte die Informationen ein und lösche anschliessend dieses Dokument.\n" #: pdfcredentials/documents.py:95 msgid "Web panel:" -msgstr "Webanwendung:" +msgstr "" #: pdfcredentials/documents.py:116 msgid "" @@ -3833,22 +3834,22 @@ msgid "" "Here you can view your emails anytime online, create filters or manage\n" "your contacts.\n" msgstr "" -"\n" -"Hier können Sie Ihre Emails online ansehen, Filter oder Kontakte erstellen.\n" #: pdfcredentials/documents.py:126 +#, fuzzy +#| msgid "Change password" msgid "Please change your password!" -msgstr "Bitte ändern Sie Ihr Passwort!" +msgstr "Passwort ändern" #: pdfcredentials/documents.py:130 +#, fuzzy +#| msgid "Auto configuration" msgid "PC/Tablet/Smartphone configuration:" -msgstr "PC/Tablet/Smartphone Konfiguration:" +msgstr "Automatische Konfiguration" #: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "" -"Verwenden Sie diese Einstellungen für Ihren Computer, Ihr Tablet oder " -"Telefon" #: pdfcredentials/handlers.py:35 msgid "" @@ -3858,29 +3859,20 @@ msgstr "" #: pdfcredentials/handlers.py:61 msgid "Retrieve user's credentials as a PDF document" -msgstr "Erhalte die Anmeldeinformationen des Benutzer als ein PDF-Dokument" +msgstr "" #: pdfcredentials/handlers.py:82 -#, fuzzy -#| msgid "PDF credentials" msgid "Download PDF credentials" -msgstr "PDF Anmeldeinformationen" +msgstr "" #: pdfcredentials/lib.py:28 -#, fuzzy -#| msgid "" -#| "Failed to create the directory that will contain PDF documents (%s)" msgid "Can't write to selected directory to store PDF documents" msgstr "" -"Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) " -"enthält, aufgetreten. " #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "" -"Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) " -"enthält, aufgetreten. " #: pdfcredentials/lib.py:81 msgid "" @@ -3889,95 +3881,80 @@ msgid "" msgstr "" #: policyd/core.py:88 -#, fuzzy -#| msgid "%s: limit reached" msgid "Daily sending limit reached" -msgstr "%s: Grenze erreicht" +msgstr "" #: policyd/core.py:125 -#, fuzzy -#| msgid "%s: limit reached" msgid "[modoboa] Sending limit reached" -msgstr "%s: Grenze erreicht" +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 +#: postfix_autoreply/api/v2/serializers.py:27 postfix_autoreply/forms.py:88 #, fuzzy #| msgid "This code is invalid" msgid "This date is over" -msgstr "Das Datum liegt in der Vergangenheit" +msgstr "Dieser Code ist ungültig" -#: postfix_autoreply/api/v2/serializers.py:32 postfix_autoreply/forms.py:101 -#, fuzzy -#| msgid "Cannot be greater than domain quota" +#: postfix_autoreply/api/v2/serializers.py:30 postfix_autoreply/forms.py:90 msgid "Must be greater than start date" -msgstr "Muss größer als der Wert des Startdatums sein" +msgstr "" -#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#: postfix_autoreply/apps.py:12 postfix_autoreply/forms.py:163 #, fuzzy -#| msgid "Automatic account removal" +#| msgid "Inactive account threshold" msgid "Automatic replies" -msgstr "Automatische Antworten" +msgstr "Schwellwert für inaktive Konten" #: postfix_autoreply/forms.py:23 msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" -msgstr "Automatische Antwort ab diesem Datum aktivieren. Format: YYYY-MM-DD" +msgstr "" + +#: postfix_autoreply/forms.py:28 +msgid "Until" +msgstr "" #: postfix_autoreply/forms.py:31 -msgid "Until" -msgstr "Bis" - -#: postfix_autoreply/forms.py:34 msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" msgstr "" -"Automatische Antwort bis zu diesem Datum aktivieren. Format: YYYY-MM-DD" -#: postfix_autoreply/forms.py:51 +#: postfix_autoreply/forms.py:39 #, 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 "" -"Der Inhalt Ihrer Antwort: Sie können die folgenden Variablen benutzen, die " -"automatisch mit dem zugehörigen Wert ersetzt werden: %(name)s, %(fromdate)s," -" %(untildate)s" -#: postfix_autoreply/forms.py:121 +#: postfix_autoreply/forms.py:110 msgid "Automatic reply timeout" -msgstr "Zeit zwischen automatische Antworten" +msgstr "" -#: postfix_autoreply/forms.py:124 +#: postfix_autoreply/forms.py:113 msgid "Timeout in seconds between two auto-replies to the same recipient" msgstr "" -"Zeit zwischen zwei automatisierten Antworten an denselben Empfänger (in " -"Sekunden)" -#: postfix_autoreply/forms.py:130 +#: postfix_autoreply/forms.py:119 msgid "Default subject" -msgstr "Standard-Betreff" +msgstr "" -#: postfix_autoreply/forms.py:131 +#: postfix_autoreply/forms.py:120 msgid "I'm off" -msgstr "Ich bin weg" +msgstr "" -#: postfix_autoreply/forms.py:133 +#: postfix_autoreply/forms.py:122 msgid "" "Default subject used when an auto-reply message is created automatically" msgstr "" -"Standard-Betreff wenn eine Antwortnachricht automatisch generiert wird" -#: postfix_autoreply/forms.py:140 -#, fuzzy -#| msgid "Default domain quota" +#: postfix_autoreply/forms.py:129 msgid "Default content" -msgstr "Standard-Inhalt" +msgstr "" -#: postfix_autoreply/forms.py:142 +#: postfix_autoreply/forms.py:131 #, python-format msgid "" "I'm currently off. I'll answer as soon as I come back.\n" @@ -3985,30 +3962,24 @@ msgid "" "Best regards,\n" "%(name)s\n" msgstr "" -"Ich bin im Moment weg und werde antworten sobald ich zurück bin.\n" -"\n" -"Mit freundlichen Grüßen\n" -"%(name)s\n" -#: postfix_autoreply/forms.py:148 +#: postfix_autoreply/forms.py:138 #, 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 "" -"Standard-Inhalt wenn eine Antwort automatisch erstellt wird. Das '%(name)s' " -"Makro wird gegen den vollen Benutzernamen ersetzt." -#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/handlers.py:118 #: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 #, fuzzy -#| msgid "Custom message" +#| msgid "spam messages" msgid "Auto-reply message" -msgstr "Automatische Antwort" +msgstr "Spam E-Mails" -#: postfix_autoreply/handlers.py:135 +#: postfix_autoreply/handlers.py:131 msgid "Auto reply" -msgstr "Automatische Antwort" +msgstr "" #: postfix_autoreply/models.py:15 #, fuzzy @@ -4016,41 +3987,39 @@ msgstr "Automatische Antwort" msgid "subject" msgstr "Betreff" -#: postfix_autoreply/models.py:16 +#: postfix_autoreply/models.py:17 msgid "The subject that will appear in sent emails" -msgstr "Der Betreff, der in den versendeten Nachrichten verwendet wird" +msgstr "" -#: postfix_autoreply/models.py:19 +#: postfix_autoreply/models.py:20 msgid "content" -msgstr "Inhalt" +msgstr "" #: postfix_autoreply/models.py:20 msgid "The content that will appear in sent emails" -msgstr "Der Inhalt, der in den versendeten Nachrichten verwendet wird" +msgstr "" -#: postfix_autoreply/models.py:24 +#: postfix_autoreply/models.py:23 msgid "Activate/Deactivate your auto reply" -msgstr "Aktivieren/Deaktivieren Sie die automatisierte Antwort" +msgstr "" #: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 msgid "Define a message to automatically send when you are off" msgstr "" -"Geben Sie eine Nachricht an, die gesendet werden soll, wenn Sie nicht " -"erreichbar sind." #: postfix_autoreply/views.py:30 msgid "Auto reply message updated successfully." -msgstr "Automatische Antwort erfolgreich aktualisiert." - -#: relaydomains/api/v1/serializers.py:24 -msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:64 +#: relaydomains/api/v1/serializers.py:24 #, fuzzy -#| msgid "Relay domains" +#| msgid "Update password service URL" +msgid "Unsupported service" +msgstr "URL des Kennwortdienstes aktualisieren" + +#: relaydomains/handlers.py:64 msgid "Transport settings" -msgstr "Relaydomain" +msgstr "" #: relaydomains/handlers.py:89 msgid "Transport" @@ -4058,19 +4027,19 @@ msgstr "" #: relaydomains/transport.py:16 #, fuzzy -#| msgid "target host" +#| msgid "From address" msgid "target host address" -msgstr "Ziel-Host" +msgstr "Absender-Adresse" #: relaydomains/transport.py:21 -#, fuzzy -#| msgid "target host" msgid "target host port" -msgstr "Ziel-Host" +msgstr "" #: relaydomains/transport.py:27 +#, fuzzy +#| msgid "Recipient" msgid "verify recipients" -msgstr "Empfänger verifizieren" +msgstr "Empfänger" #: templates/404.html:4 templates/500.html:4 msgid "Sorry" @@ -4086,7 +4055,7 @@ msgstr "Ein interner Fehler ist aufgetreten." #: templates/common/email_searchbar.html:5 msgid "Search..." -msgstr "Suchen..." +msgstr "Suchen ..." #: templates/common/email_searchbar.html:10 msgid "From address" @@ -4114,18 +4083,16 @@ msgid "Next" msgstr "Weiter" #: templates/nlayout.html:57 -#, fuzzy -#| msgid "New domain" msgid "New admin" -msgstr "Neue Domain" +msgstr "" #: templates/registration/base.html:8 msgid "Welcome to Modoboa" -msgstr "Willkommen zu Modoboa" +msgstr "Willkommen bei Modoboa" #: templates/registration/login.html:21 msgid "Remember me" -msgstr "An mich erinnern" +msgstr "Login speichern" #: templates/registration/login.html:23 msgid "Log in" @@ -4143,7 +4110,7 @@ msgid "" "in
        now." msgstr "" "Ihr Passwort wurde geändert. Sie können sich jetzt anmelden ." +"href=\"%(url)s\">anmelden." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" @@ -4159,7 +4126,7 @@ msgstr "" #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" -msgstr "Gib den Code der per SMS zugestellt wurde" +msgstr "Geben Sie den Code ein, den Sie soeben per SMS erhalten haben" #: templates/registration/password_reset_confirm_code.html:27 msgid "Resend code" @@ -4172,11 +4139,11 @@ msgid "" "

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

        " msgstr "" -"

        Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts" -" geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse " -"vorhanden ist. Sie sollten sie in Kürze erhalten.

        Wenn Sie keine " -"E-Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse " -"eingegeben haben und überprüfen Sie Ihren Spamordner.

        " +"

        Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts " +"geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse " +"vorhanden ist. Sie sollten sie in Kürze erhalten.

        Wenn Sie keine E-" +"Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse " +"eingegeben haben und überprüfen Sie Ihren Spam-Ordner.

        " #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 @@ -4185,8 +4152,8 @@ msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" msgstr "" -"Um das Passwort für Ihr %(username)s Modoboa Konto zurück zu setzen, klicken" -" Sie bitte auf den folgenden Link:" +"Um den Vorgang zum Zurücksetzen des Passworts für Ihr %(username)s Modoboa-" +"Konto zu beginnen, klicken Sie auf folgenden Link:" #: templates/registration/password_reset_email.html:10 #: templates/registration/password_reset_email_v2.html:10 @@ -4194,7 +4161,7 @@ msgid "" "If clicking the link above doesn't work, please copy and paste the URL in a " "new browser window instead." msgstr "" -"Falls der Link oben nicht funktioniert, kopieren Sie diesen bitte in ein " +"Falls der obere Link nicht funktioniert, kopieren Sie diesen bitte in ein " "neues Browser-Fenster." #: templates/registration/password_reset_email.html:14 @@ -4204,7 +4171,7 @@ msgstr "Mit freundlichen Grüßen, das Modoboa Team." #: templates/registration/password_reset_form.html:24 msgid "Please fill-in your primary email address" -msgstr "Bitte die Primäre Email-Adresse eingeben" +msgstr "Bitte geben Sie Ihre primäre E-Mail-Adresse ein" #: templates/registration/password_reset_subject.txt:3 msgid "Modoboa password reset" @@ -4227,116 +4194,3 @@ msgstr "" #: transport/models.py:17 msgid "next hop" msgstr "" - -#, fuzzy -#~ msgid "An alias with this name already exists." -#~ msgstr "Ein Alias mit diesem Namen existiert bereits" - -#~ msgid "A set of tools to ease DMARC integration" -#~ msgstr "Ein Set von Tools um die DMARC-Integration zu vereinfachen" - -#~ msgid "Generate PDF documents containing users' credentials" -#~ msgstr "Erzeuge PDF-Dokumente welche die Benutzeranmeldeinformationen enthält" - -#, fuzzy -#~ msgid "IMAP migrations" -#~ msgstr "IMAP-Migration" - -#~ msgid "IMAP migration using OfflineIMAP" -#~ msgstr "IMAP-Migration benutzt OfflineIMAP" - -#~ msgid "Migrate existing mailboxes using IMAP and OfflineIMAP" -#~ msgstr "Migration existierender Postfächer benutzt IMAP und OfflineIMAP" - -#~ msgid "Graphical statistics about emails traffic using RRDtool" -#~ msgstr "Grafische E-Mail-Statistik (setzt RRDtool ein)" - -#~ msgid "Postfix's master.cf path" -#~ msgstr "Pfad zur Postfix-Datei 'master.cf'" - -#~ msgid "Path to the master.cf configuration file" -#~ msgstr "Pfad zur 'master.cf' Konfigurationsdatei" - -#~ msgid "Relay domains" -#~ msgstr "Relaydomain" - -#~ msgid "The service name" -#~ msgstr "Der 'Service'-Name" - -#, fuzzy -#~ msgid "Remote address (hostname or IP) of this domain" -#~ msgstr "Entfernte Destination für diese Domain" - -#, fuzzy -#~ msgid "Remote port of this domain" -#~ msgstr "Entfernte Destination für diese Domain" - -#~ msgid "Check for valid recipients" -#~ msgstr "Auf gültige Empfänger prüfen" - -#~ msgid "Relay Domain" -#~ msgstr "Relaydomain" - -#~ msgid "Scan" -#~ msgstr "Scanne" - -#, fuzzy -#~ msgid "The relay domain name" -#~ msgstr "Name der Domain" - -#, fuzzy -#~ msgid "" -#~ "\n" -#~ "
      • relaydomain; name; target host; service; enabled; verify recipients
      • \n" -#~ msgstr "" -#~ "\n" -#~ "
      • relaydomain; name; target host; service; enabled; verify recipients
      • \n" -#~ "
      • relaydomainalias; name; target; enabled
      • \n" - -#~ msgid "Mailboxes owner" -#~ msgstr "Postfach-Besitzer" - -#~ msgid "The UNIX account who owns mailboxes on the filesystem" -#~ msgstr "" -#~ "UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und " -#~ "Nachrichten im Dateisystem ist." - -#, python-format -#~ msgid "Domain '%s' does not exist" -#~ msgstr "Domain '%s' existiert nicht" - -#~ msgid "Raw format" -#~ msgstr "Rohformat" - -#~ msgid "Admin" -#~ msgstr "Admin" - -#~ msgid "Your resources are not initialized yet" -#~ msgstr "Ihre Ressourcen wurde noch nicht initialisiert" - -#~ msgid "undefined" -#~ msgstr "unbestimmt" - -#~ msgid "Connection settings" -#~ msgstr "Verbindungseinstellungen" - -#~ msgid "Address of your IMAP server" -#~ msgstr "Addresse Ihres IMAP-Servers" - -#~ msgid "Use a secured connection to access IMAP server" -#~ msgstr "Gesicherte Verbindung für Zugriff auf IMAP-Server verwenden" - -#~ msgid "Listening port of your IMAP server" -#~ msgstr "Port auf dem der IMAP-Server lauscht" - -#~ msgid "Cancel this account's migration" -#~ msgstr "Diese Konten-Migration abbrechen" - -#~ msgid "Cancel the migration for %s?" -#~ msgstr "Migration für %s abbrechen?" - -#~ msgid "Unknow migration" -#~ msgstr "Unbekannte Migration" - -#~ msgid "Migration cancelled successfully" -#~ msgstr "Abbruch der Migration war erfolgreich" From 1f6004f7928f0d571242753386038976a864c1d8 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 20 Mar 2024 10:39:02 +0100 Subject: [PATCH 09/10] Updated german translation file --- modoboa/locale/de/LC_MESSAGES/django.po | 1644 +++++++++++------------ 1 file changed, 805 insertions(+), 839 deletions(-) diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po index 4112af726..eb017b7b2 100644 --- a/modoboa/locale/de/LC_MESSAGES/django.po +++ b/modoboa/locale/de/LC_MESSAGES/django.po @@ -3,19 +3,52 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# bdaniel93, 2023 -# Justus Kagerer , 2020 -# NichtLeon Martin, 2022 +# Alexander Dube , 2017 +# A L , 2016 +# Andreas Morgenstern , 2016 +# Arledrian , 2017 +# Arvedui , 2014-2015 +# ChaotischerTV , 2021 +# Christian Meyer , 2020 +# Christian Wiegand, 2017 +# Christian Wiegand, 2017 +# controlcde, 2014-2015 +# CURETIX , 2017 +# CURETIX , 2017 +# Daniel Schubert, 2024 +# Dennis Staufer, 2020 +# Dennis Staufer, 2020 +# Der Archivar , 2018 +# Fynn Henck, 2023 +# Henry Schütterle, 2023 +# Jan-Philipp Sprung, 2021 +# Jan-Philipp Sprung, 2021 +# Manfred Mueller, 2022 +# Manfred Mueller, 2022 +# Michael Cramer , 2020 +# Nicolas John, 2021 +# Nicolas John, 2021 +# Olaf Probst , 2017 +# Patrick Koetter , 2010 +# Patrick Koetter , 2010 +# Robin Kopp , 2019 +# seoni, 2020 +# seoni, 2020 +# thomaass00 , 2021 +# Tizian Reiter , 2017 +# Tobias Strobel, 2016 +# Tobias Strobel, 2016 +# Tristan , 2016 +# Tristan , 2016 msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-20 10:36+0100\n" +"POT-Creation-Date: 2024-03-20 10:38+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" -"Last-Translator: bdaniel93, 2023\n" -"Language-Team: German (Germany) (http://www.transifex.com/tonio/modoboa/" -"language/de_DE/)\n" -"Language: de_DE\n" +"Last-Translator: Daniel Schubert, 2024\n" +"Language-Team: German (http://app.transifex.com/tonio/modoboa/language/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,25 +59,28 @@ msgid "" "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " "A value of 0 means no quota." msgstr "" +"Von Postfächern gemeinsam genutzter Speicherplatz. Kann in KB, MB " +"(Voreinstellung) oder GB angegeben werden. Der Wert 0 bedeutet keinen " +"Speicherplatz." #: admin/api/v1/serializers.py:49 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." msgstr "" +"Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet " +"unlimitiertes Kontingent." #: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 msgid "No authorized MX record found for this domain" -msgstr "" +msgstr "Kein autorisierter MX-Eintrag für diese Domain gefunden." #: admin/api/v1/serializers.py:115 admin/forms/domain.py:160 msgid "Cannot be greater than domain quota" -msgstr "" +msgstr "Kann nicht größer als Domain Kontingent sein" #: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:384 #: admin/api/v2/serializers.py:482 admin/models/alias.py:38 -#, fuzzy -#| msgid "Permission denied" msgid "Permission denied." -msgstr "Zugriff verweigert" +msgstr "Zugriff verweigert." #: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77 #: admin/api/v2/serializers.py:414 admin/forms/alias.py:113 @@ -56,233 +92,214 @@ msgid "This field is required" msgstr "Dieses Feld ist erforderlich" #: admin/api/v1/serializers.py:235 -#, fuzzy -#| msgid "Hide features widget for resellers and domain administrators" msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" +msgstr "" +"Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." #: admin/api/v1/serializers.py:357 admin/api/v2/serializers.py:464 msgid "Not allowed for this role." -msgstr "" +msgstr "Nicht erlaubt für diese Rolle." #: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" -msgstr "" +msgstr "Muss mit mailbox full_address übereinstimmen" #: 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 -#, fuzzy -#| msgid "This field is required" msgid "This field is required." msgstr "Dieses Feld ist erforderlich" #: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 msgid "Local domain {} does not exist" -msgstr "" +msgstr "Lokale Domain {} existiert nicht." #: admin/api/v1/serializers.py:513 msgid "A list of recipient" -msgstr "" +msgstr "Eine Liste der Empfänger" #: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271 #, fuzzy -#| msgid "Enter a valid email address." +#| msgid "User '%s' already exists" msgid "This alias already exists" -msgstr "Geben Sie eine gültige E-Mail-Adresse ein." +msgstr "Benutzer %s existiert bereits" #: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." -msgstr "" +msgstr "Sie haben keinen Zugriff auf diese Domain." #: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." -msgstr "" +msgstr "Sie haben keinen Zugriff auf diese Mailbox." #: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" -msgstr "" +msgstr "Hier ist Ihr neues Modoboa Passwort: {}" #: admin/api/v2/serializers.py:103 admin/forms/domain.py:320 #, python-format msgid "User '%s' already exists" -msgstr "" +msgstr "Benutzer %s existiert bereits" #: 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 "" +msgstr "Muss eine positive Ganzzahl sein" #: admin/api/v2/serializers.py:232 admin/app_settings.py:244 #: pdfcredentials/api/v2/serializers.py:59 msgid "Directory not found." -msgstr "" +msgstr "Verzeichnis nicht gefunden." #: admin/api/v2/serializers.py:234 -#, fuzzy -#| msgid "Directory to store RRD files" msgid "Directory non-writable" -msgstr "Ablageverzeichnis für RRD-Dateien" +msgstr "Verzeichnis ist nicht schreibbar" #: admin/api/v2/serializers.py:238 admin/app_settings.py:248 msgid "openssl not found, please make sure it is installed." -msgstr "" +msgstr "openssl nicht gefunden, bitte sicherstellen, dass es installiert ist" #: admin/api/v2/serializers.py:252 admin/app_settings.py:263 msgid "This field only allows valid IP addresses (or networks)" -msgstr "" +msgstr "Dieses Feld erlaubt nur gültige IP-Adressen (oder Netzwerke)" #: admin/api/v2/serializers.py:265 msgid "Please disable imap migration before disabling this option." -msgstr "" +msgstr "Bitte IMAP Migration deaktivieren bevor Sie diese Option deaktivieren." #: admin/api/v2/serializers.py:278 admin/app_settings.py:277 msgid "Define at least one authorized network / address" -msgstr "" +msgstr "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein" #: admin/api/v2/serializers.py:511 msgid "A mailbox is required to create aliases." -msgstr "" +msgstr "Zum Erstellen von Aliassen ist ein Postfach erforderlich." #: admin/api/v2/serializers.py:674 -#, fuzzy -#| msgid "Unknown tag {}" msgid "Unknown status" -msgstr "Unbekanntes Tag {}" +msgstr "Unbekannter Status" #: 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 "" +msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" #: admin/api/v2/viewsets.py:87 admin/views/domain.py:248 -#, fuzzy -#| msgid "You can't delete your own account" msgid "You can't delete your own domain" -msgstr "Sie können Ihr eigenes Konto nicht löschen" +msgstr "Sie können Ihre eigene Domain nicht löschen" #: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" -msgstr "" +msgstr "Keine Alarm-ID gegeben" #: admin/api/v2/viewsets.py:396 msgid "Received invalid alarm id(s)" -msgstr "" +msgstr "Ungültige Alarm-ID(s) erhalten" #: 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:36 #: limits/app_settings.py:172 limits/constants.py:13 msgid "Domains" -msgstr "" +msgstr "Domains" #: admin/app_settings.py:26 admin/app_settings.py:295 -#, fuzzy -#| msgid "Enable API access" msgid "Enable MX checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere MX Prüfungen" #: admin/app_settings.py:28 admin/app_settings.py:297 msgid "Check that every domain has a valid MX record" -msgstr "" +msgstr "Überprüfe jede Domain auf einen gültigen MX Eintrag" #: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" -msgstr "" +msgstr "Gültige MX-Einträge" #: 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 "" +"Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht " +"wird, andere Einträge zu verwenden." #: admin/app_settings.py:43 admin/app_settings.py:317 msgid "New domains must use authorized MX(s)" -msgstr "" +msgstr "Neue Domains müssen autorisierte MX-Einträge verwenden." #: 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 "" +msgstr "Verwendung gültiger MX-Einträge wird für neue Domains erzwungen." #: admin/app_settings.py:52 admin/app_settings.py:329 #, fuzzy -#| msgid "Enable API access" +#| msgid "Enable SPF checks" msgid "Enable IPV6 checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere SPF-Prüfungen" #: 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 API access" msgid "Enable SPF checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere SPF-Prüfungen" #: admin/app_settings.py:60 admin/app_settings.py:341 msgid "Check if every domain has a valid SPF record" -msgstr "" +msgstr "Überprüfe jede Domain auf einen gültigen SPF Eintrag" #: admin/app_settings.py:64 admin/app_settings.py:348 -#, fuzzy -#| msgid "Enable API access" msgid "Enable DKIM checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere DKIM-Prüfungen" #: 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 "" +"Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS " +"Eintrag" #: admin/app_settings.py:72 admin/app_settings.py:358 -#, fuzzy -#| msgid "Enable API access" msgid "Enable DMARC checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere DMARC-Prüfungen" #: admin/app_settings.py:74 admin/app_settings.py:360 -#, fuzzy -#| msgid "Not a valid DMARC record" msgid "Check if every domain has a valid DMARC record" -msgstr "Kein gültiger DMARC-Eintrag" +msgstr "Überprüfe jede Domain auf einen gültigen DMARC Eintrag" #: admin/app_settings.py:78 admin/app_settings.py:367 msgid "Enable autoconfig checks" -msgstr "" +msgstr "Aktiviere autoconfig-Prüfungen" #: admin/app_settings.py:81 admin/app_settings.py:369 msgid "Check if every domain has a valid records for autoconfiguration" -msgstr "" +msgstr "Überprüfe jede Domain auf einen gültigen autoconfiguration Eintrag" #: admin/app_settings.py:86 admin/app_settings.py:377 -#, fuzzy -#| msgid "Enable API access" msgid "Enable DNSBL checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere DNSBL-Prüfungen" #: admin/app_settings.py:88 admin/app_settings.py:379 msgid "Check every domain against major DNSBL providers" -msgstr "" +msgstr "Prüfe jede Domain gegen die wichtigsten DNSBL-Anbieter" #: admin/app_settings.py:92 admin/app_settings.py:386 -#, fuzzy -#| msgid "Custom RSS feed" msgid "Custom DNS server" -msgstr "Benutzerdefinierter RSS-Feed" +msgstr "Benutzerdefinierter DNS Server" #: admin/app_settings.py:96 admin/app_settings.py:388 msgid "Use a custom DNS server instead of local server configuration" -msgstr "" +msgstr "eigener DNS-Server umgeht die lokale Namensauflösung" #: admin/app_settings.py:101 admin/app_settings.py:396 msgid "DKIM keys storage directory" -msgstr "" +msgstr "Verzeichnis für DKIM-Keys" #: admin/app_settings.py:104 admin/app_settings.py:398 msgid "" @@ -290,132 +307,142 @@ msgid "" "sure this directory belongs to root user and is not readable by the outside " "world." msgstr "" +"Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das " +"Verzeichnis sollte nur dem root-User zugänglich sein." #: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" -msgstr "" +msgstr "voreingestellte DKIM Schlüssellänge" #: admin/app_settings.py:115 admin/app_settings.py:409 msgid "Default length in bits for newly generated DKIM keys." -msgstr "" +msgstr "Voreingestellte Länge in Bits neu zu generierender DKIM-Keys." #: admin/app_settings.py:119 admin/app_settings.py:416 msgid "Default domain quota" -msgstr "" +msgstr "Standard-Domainquota" #: 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 "" +"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " +"Der Wert 0 bedeutet „Keine Quota“" #: admin/app_settings.py:128 admin/app_settings.py:426 msgid "Default domain sending limit" -msgstr "" +msgstr "Standard Domänen-Sendelimit" #: 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 "" +"Anzahl der Nachrichten, die neu erstellte Domänen pro Tag senden dürfen. " +"Leer lassen für kein Limit." #: 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 "" +msgstr "Postfächer" #: admin/app_settings.py:139 admin/app_settings.py:446 msgid "Handle mailboxes on filesystem" -msgstr "" +msgstr "Postfächer im Dateisystem verwalten" #: 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 "" +"Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa " +"umbenannt oder entfernt werden" #: 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 "" +msgstr "Standard Postfach Kontingent" #: 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 "" +"Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe. " +"Der Wert 0 bedeutet „Keine Quota“" #: admin/app_settings.py:157 admin/app_settings.py:467 msgid "Default mailbox sending limit" -msgstr "" +msgstr "Standard-Postfach-Versandlimit" #: 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 "" +"Anzahl der Nachrichten, die neu erstellte Postfächer pro Tag senden dürfen. " +"Leer lassen für keine Begrenzung." #: admin/app_settings.py:166 admin/app_settings.py:477 -#, fuzzy -#| msgid "Inactive account threshold" msgid "Automatic account removal" -msgstr "Schwellwert für inaktive Konten" +msgstr "Automatische Konto-Entfernung" #: admin/app_settings.py:169 admin/app_settings.py:479 msgid "When a mailbox is removed, also remove the associated account" -msgstr "" +msgstr "Beim Löschen des Postfachs auch das Konto entfernen." #: admin/app_settings.py:174 admin/app_settings.py:488 msgid "Automatic domain/mailbox creation" -msgstr "" +msgstr "Automatische Domain- /Postfach-Erstellung" #: admin/app_settings.py:177 admin/app_settings.py:491 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" +"Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt " +"wurde." #: admin/app_settings.py:182 admin/app_settings.py:500 msgid "Create an alias when a mailbox is renamed" -msgstr "" +msgstr "Erzeuge Alias, wenn Mailbox umbenannt wird." #: admin/app_settings.py:185 admin/app_settings.py:503 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" +"Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." #: 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 "" +"Standard-Postfachkontingent (in MB), das auf neu erstellte Domänen ohne " +"Angabe eines Wertes angewendet wird. Ein Wert von 0 bedeutet keine " +"Begrenzung." #: admin/app_settings.py:522 admin/app_settings.py:527 -#, fuzzy -#| msgid "Administrator groups" msgid "Administration" -msgstr "Administratorgruppen" +msgstr "Verwaltung" #: 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 "" +msgstr "Domain" #: admin/constants.py:24 -#, fuzzy -#| msgid "Search a domain" msgid "Relay domain" -msgstr "Suche eine Domäne" +msgstr "Relay-Domain" #: admin/constants.py:39 msgid "Opened" -msgstr "" +msgstr "Geöffnete" #: admin/constants.py:40 -#, fuzzy -#| msgid "Close" msgid "Closed" -msgstr "Schließen" +msgstr "Geschlossen" #: admin/forms/account.py:29 admin/templates/admin/domain_detail.html:159 #: core/forms.py:21 pdfcredentials/documents.py:98 @@ -427,6 +454,8 @@ msgid "" "The user's name. Must be a valid e-mail address for simple users or " "administrators with a mailbox." msgstr "" +"Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' " +"oder Administratoren mit einer Mailbox sein." #: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29 #: core/templates/core/information.html:37 @@ -435,23 +464,23 @@ msgstr "Rolle" #: admin/forms/account.py:37 msgid "Choose" -msgstr "" +msgstr "Auswählen" #: admin/forms/account.py:38 msgid "What level of permission this user will have" -msgstr "" +msgstr "Rechte, die der Benutzer haben wird" #: admin/forms/account.py:41 admin/forms/domain.py:262 -#, fuzzy -#| msgid "Random password length" msgid "Random password" -msgstr "Zufällige Passwortlänge" +msgstr "Zufälliges Passwort" #: 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 "" +"Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und " +"diese Checkbox aktivierst, wird ein neues Passwort generiert" #: admin/forms/account.py:49 core/forms.py:25 pdfcredentials/documents.py:99 msgid "Password" @@ -459,46 +488,42 @@ msgstr "Passwort" #: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" -msgstr "Neues Passwort wiederholen" +msgstr "Bestätigung" #: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." -msgstr "" +msgstr "Passwort bestätigen" #: admin/forms/account.py:71 -#, fuzzy -#| msgid "Enable 2FA" msgid "Enabled" -msgstr "2FA aktivieren" +msgstr "Aktiviert" #: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" -msgstr "" +msgstr "Nur Super-Administratoren dürfen diesen Modus benutzen." #: admin/forms/account.py:193 msgid "The two password fields didn't match." -msgstr "" +msgstr "Die angegebenen Passwörter stimmen nicht überein" #: admin/forms/account.py:206 -#, fuzzy -#| msgid "You can't delete your own account" msgid "You can't disable your own account" -msgstr "Sie können Ihr eigenes Konto nicht löschen" +msgstr "Sie können Ihr eigenes Konto nicht deaktivieren" #: admin/forms/account.py:234 msgid "E-mail" -msgstr "" +msgstr "E-Mail" #: admin/forms/account.py:236 msgid "Create an alias using the old address" -msgstr "" +msgstr "Erzeuge Alias mit der bisherigen Adresse" #: 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:73 #: limits/app_settings.py:218 limits/constants.py:59 msgid "Quota" -msgstr "" +msgstr "Quota" #: admin/forms/account.py:244 msgid "" @@ -506,16 +531,20 @@ msgid "" "custom value or use domain's default one. Leave empty to define an unlimited " "value (not allowed for domain administrators)." msgstr "" +"Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben " +"werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden " +"lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-" +"Administratoren)." #: admin/forms/account.py: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 "" +msgstr "Nachrichtenversand Limit" #: admin/forms/account.py:257 admin/models/mailbox.py:95 msgid "Number of messages this mailbox can send per day" -msgstr "" +msgstr "Anzahl der Nachrichten, die das Postfach pro Tag senden kann" #: admin/forms/account.py:262 msgid "Block IMAP connection and incoming mails for this mailbox" @@ -524,7 +553,7 @@ msgstr "" #: admin/forms/account.py:266 admin/forms/domain.py:35 #: admin/templates/admin/domain_headers.html:4 msgid "Alias(es)" -msgstr "" +msgstr "Alias(e)" #: admin/forms/account.py:269 msgid "" @@ -532,12 +561,13 @@ msgid "" "to add a new input. To create a catchall alias, just enter the domain name " "(@domain.tld)." msgstr "" +"Alias(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für " +"eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu " +"erstellen. " #: admin/forms/account.py:275 -#, fuzzy -#| msgid "Sender address" msgid "Sender addresses" -msgstr "Absenderadresse" +msgstr "Ab­sen­der­ad­res­sen " #: admin/forms/account.py:278 msgid "" @@ -545,25 +575,27 @@ msgid "" "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 "" +"Zusätzliche Absenderadresse(n) für dieses Konto. Der Benutzer kann mit " +"dieser Adresse E-Mails versenden, auch wenn sie lokal nicht vorhanden ist. " +"Geben Sie eine Adresse pro Eingabe an. Drücken Sie ENTER, um eine neue " +"Eingabe hinzuzufügen." #: admin/forms/account.py:339 admin/forms/alias.py:95 #: admin/models/mailbox.py:308 msgid "Domain does not exist" -msgstr "" +msgstr "Domain existiert nicht" #: admin/forms/account.py:376 msgid "Local domain does not exist" -msgstr "" +msgstr "Lokale Domain existiert nicht" #: admin/forms/account.py:503 msgid "Domain(s)" -msgstr "" +msgstr "Domain(s)" #: admin/forms/account.py:505 -#, fuzzy -#| msgid "Domain administrator" msgid "Domain(s) that user administrates" -msgstr "Domain-Administrator" +msgstr "Domain(s), die dieser Benutzer administriert" #: admin/forms/account.py:552 admin/forms/account.py:652 #: admin/forms/domain.py:373 admin/forms/domain.py:445 core/apps.py:19 @@ -581,53 +613,41 @@ msgstr "Profil" #: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" -msgstr "" +msgstr "E-Mail" #: admin/forms/account.py:573 -#, fuzzy -#| msgid "Permission denied" msgid "Permissions" -msgstr "Zugriff verweigert" +msgstr "Berechtigungen" #: admin/forms/account.py:642 -#, fuzzy -#| msgid "Access updated" msgid "Account updated" -msgstr "Zugang aktualisiert" +msgstr "Konto aktualisiert" #: admin/forms/account.py:668 -#, fuzzy -#| msgid "New accounts" msgid "New account" -msgstr "Neue Konten" +msgstr "Neues Konto" #: admin/forms/account.py:679 -#, fuzzy -#| msgid "Account DN template" msgid "Account created" -msgstr "Konto-DN-Vorlage" +msgstr "Konto erstellt" #: admin/forms/alias.py:20 -#, fuzzy -#| msgid "From address" msgid "Random address" -msgstr "Absender-Adresse" +msgstr "Zufällige Adresse" #: admin/forms/alias.py:23 -#, fuzzy -#| msgid "From address" msgid "Email address" -msgstr "Absender-Adresse" +msgstr "E-Mail Adresse" #: admin/forms/alias.py:25 msgid "" "The alias address. To create a catchall alias, just enter the domain name " "(@domain.tld)." msgstr "" +"Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen " +"Catchall-Alias anzulegen." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 -#, fuzzy -#| msgid "Recipient" msgid "Recipients" msgstr "Empfänger" @@ -636,65 +656,68 @@ msgid "" "Addresses this alias will point to. Indicate only one address per input, " "press ENTER to add a new input." msgstr "" +"Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein " +"und bestätigen Sie mit ENTER." #: admin/forms/alias.py:119 msgid "No recipient defined" -msgstr "" +msgstr "Keine Empfänger angegeben" #: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" -msgstr "" +msgstr "Typ" #: 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(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro " +"Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu " +"erhalten." #: admin/forms/domain.py:43 msgid "Key selector" -msgstr "" +msgstr "DKIM Selector" #: 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 "" +"Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB " +"angegeben werden. 0 eingeben, um keine Quota zu verwenden." #: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" -msgstr "" +msgstr "Domain-Alias" #: 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 "" +msgstr "Ein %s mit diesem Namen existiert bereits" #: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" -msgstr "" +msgstr "Verzeichnis für DKIM-Keys nicht konfiguriert." #: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." -msgstr "" +msgstr "Ein unlimitiertes Kontingent ist nicht möglich." #: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107 -#, fuzzy -#| msgid "Unknown domain" msgid "domain" -msgstr "Unbekannte Domäne" +msgstr "Domain" #: admin/forms/domain.py:246 -#, fuzzy -#| msgid "Domain administrator" msgid "Create a domain administrator" -msgstr "Domain-Administrator" +msgstr "Domain-Administrator erstellen" #: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" -msgstr "" +msgstr "Automatisch Administrator für diese Domain anlegen" #: admin/forms/domain.py:252 admin/templates/admin/domain_detail.html:159 #: admin/templates/admin/domain_headers.html:3 @@ -710,256 +733,234 @@ msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." msgstr "" +"Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird " +"automatisch angehängt." #: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." -msgstr "" +msgstr "Zufällig generiertes Passwort für den Administrator verwenden." #: admin/forms/domain.py:269 msgid "With a mailbox" -msgstr "" +msgstr "Mit einem Postfach" #: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." -msgstr "" +msgstr "Erzeuge Postfach für den Administrator." #: admin/forms/domain.py:276 msgid "Create aliases" -msgstr "" +msgstr "Aliase erstellen" #: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" -msgstr "" +msgstr "Automatisch Standard-Aliase für Domain anlegen" #: admin/forms/domain.py:294 -#, fuzzy -#| msgid "Invalid code" msgid "Invalid format" -msgstr "Ungültiger Code" +msgstr "Ungültiges Format" #: admin/forms/domain.py:433 -#, fuzzy -#| msgid "modified" msgid "Domain modified" -msgstr "geändert" +msgstr "Domain verändert" #: admin/forms/domain.py:458 -#, fuzzy -#| msgid "Applications" msgid "Options" -msgstr "Applikationen" +msgstr "Optionen" #: admin/forms/domain.py:467 -#, fuzzy -#| msgid "Unknown domain" msgid "New domain" -msgstr "Unbekannte Domäne" +msgstr "Neue Domain" #: admin/forms/domain.py:481 msgid "Domain created" -msgstr "" +msgstr "Domain erstellt." #: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" -msgstr "" +msgstr "Separator" #: admin/forms/forward.py:12 -#, fuzzy -#| msgid "Recipient" msgid "Recipient(s)" msgstr "Empfänger" #: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" -msgstr "" +msgstr "Geben sie einen oder mehrere, durch ',' separierte Empfänger an" #: admin/forms/forward.py:18 msgid "Keep local copies" -msgstr "" +msgstr "Lokale Kopien behalten" #: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "" +msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen" #: admin/forms/import_.py:10 -#, fuzzy -#| msgid "Search filter" msgid "Select a file" -msgstr "Suchfilter" +msgstr "Wählen Sie eine Datei" #: admin/forms/import_.py:18 msgid "Continue on error" -msgstr "" +msgstr "Bei Fehler fortfahren" #: admin/forms/import_.py:20 msgid "Don't treat duplicated objects as error" -msgstr "" +msgstr "Doppelte Objekte nicht als Fehler behandeln" #: admin/forms/import_.py:37 -#, fuzzy -#| msgid "Forgot password?" msgid "Crypt passwords" -msgstr "Passwort vergessen?" +msgstr "Passwörter verschlüsseln" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "" +msgstr "Auswählen, wenn Kennwörter in Datei nicht verschlüsselt sind" #: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" -msgstr "" +msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" #: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" -msgstr "" +msgstr "Postfach {} existiert bereits" #: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" -msgstr "" +msgstr "Konto Import fehlgeschlagen (%s): ungültiger Quota-Wert" #: 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 "" +msgstr "Identitäten" #: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" -msgstr "" +msgstr "Weiterleiten" #: admin/lib.py:47 -#, fuzzy -#| msgid "This field is required" msgid "A mailbox is required" -msgstr "Dieses Feld ist erforderlich" +msgstr "Ein Postfach ist erforderlich" #: admin/lib.py:141 msgid "You are not allowed to import domains" -msgstr "" +msgstr "Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren." #: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "" +"Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." #: admin/lib.py: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 "" +msgstr "Kein DNS Eintrag für %s gefunden" #: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" -msgstr "" +msgstr "Kein %(type)s Eintrag für %(name)s" #: admin/lib.py:208 admin/tests/test_mx.py:157 msgid "No working name servers found" -msgstr "" +msgstr "Keine funktionierenden Namensserver gefunden" #: admin/lib.py:211 admin/tests/test_mx.py:161 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" -msgstr "" +msgstr "DNS Error bei der Auflösung, konnte %s nicht auflösen" #: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" -msgstr "" +msgstr "DNS Name ist zu lang: %s" #: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" -msgstr "" +msgstr "Fehlerhaftes IP-Adressformat für {domain}; {addr}" #: admin/lib.py:319 #, python-format msgid "Object already exists: %s" -msgstr "" +msgstr "Objekt existiert bereits: %s" #: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" -msgstr "" +msgstr "%d Objekte erfolgreich importiert" #: admin/management/commands/subcommands/_import.py:99 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" -msgstr "" +msgstr "CSV Datei nicht in UTF-8 enkodiert, versuche das Encoding zu erraten" #: admin/management/commands/subcommands/_import.py:114 #, python-format msgid "Reading CSV file using %(encoding)s encoding" -msgstr "" +msgstr "Lese CSV Datei mit %(encoding)s Enkodierung" #: admin/management/commands/subcommands/_import.py:125 -#, fuzzy, python-format -#| msgid "unable to determine encoding of string" +#, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" -msgstr "Codierung der Zeichenkette konnte nicht bestimmt werden" +msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren" #: admin/management/commands/subcommands/_manage_dkim_keys.py:28 msgid "DKIM path non-writable" -msgstr "" +msgstr "DKIM Pfad nicht beschreibbar" #: admin/management/commands/subcommands/_mx.py:133 msgid "MX {} listed by DNSBL provider {}" -msgstr "" +msgstr "MX {} gelistet durch DNSBL-Anbieter {}" #: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Not an SPF record" msgid "Domain has no MX record" -msgstr "Kein SPF-Eintrag" +msgstr "Die Domain hat kein MX-Eintrag" #: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" -msgstr "" +msgstr "Domain {} hat keinen MX-Eintrag" #: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "Invalid code" msgid "Invalid MX record: {}" -msgstr "Ungültiger Code" +msgstr "Falscher MX-Eintrag: {}" #: admin/management/commands/subcommands/_mx.py:202 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" -msgstr "" +msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" #: admin/management/commands/subcommands/_mx.py:213 msgid "[modoboa] MX issue(s) for domain {}" -msgstr "" +msgstr "[modoboa] MX Problem(e) für Domain {}" #: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "" +msgstr "[modoboa] DNSBL Problem(e) für Domain {}" #: admin/models/alias.py:36 msgid "Domain not found." -msgstr "" +msgstr "Domain nicht gefunden." #: admin/models/alias.py:91 admin/models/mailbox.py:85 -#, fuzzy -#| msgid "From address" msgid "address" -msgstr "Absender-Adresse" +msgstr "Adresse" #: admin/models/alias.py:93 -#, fuzzy -#| msgid "Enter a valid email address." msgid "The alias address." -msgstr "Geben Sie eine gültige E-Mail-Adresse ein." +msgstr "Die Alias-Adresse" #: admin/models/alias.py:97 admin/models/domain.py:45 #: admin/models/domain_alias.py:45 postfix_autoreply/models.py:23 msgid "enabled" -msgstr "" +msgstr "aktiviert" #: admin/models/alias.py:98 admin/models/domain_alias.py:46 msgid "Check to activate this alias" -msgstr "" +msgstr "Auswählen, um den Alias zu aktivieren" #: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32 #: core/templates/core/information.html:17 @@ -968,70 +969,63 @@ msgstr "Beschreibung" #: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29 msgid "Expire at" -msgstr "" +msgstr "Läuft ab am" #: admin/models/alias.py:144 msgid "alias" -msgstr "" +msgstr "Alias" #: admin/models/alias.py:177 -#, fuzzy -#| msgid "Invalid code" msgid "Invalid address" -msgstr "Ungültiger Code" +msgstr "Ungültige Adresse" #: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" -msgstr "" +msgstr "Lokaler Empfänger {}@{} nicht gefunden" #: admin/models/alias.py:245 -#, fuzzy -#| msgid "Invalid line" msgid "Invalid line: {}" -msgstr "Ungültige Zeile" +msgstr "Ungültige Zeile: {}" #: admin/models/domain.py:27 admin/models/domain_alias.py:33 -#, fuzzy -#| msgid "Username" msgid "name" -msgstr "Benutzername" +msgstr "Name" #: admin/models/domain.py:30 -#, fuzzy -#| msgid "Enter a valid domain name" msgid "The domain name" -msgstr "Geben Sie einen gültigen Domänennamen ein" +msgstr "Name der Domain" #: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" -msgstr "" +msgstr "Anzahl der Nachrichten, die diese Domain pro Tag senden kann" #: admin/models/domain.py:46 msgid "Check to activate this domain" -msgstr "" +msgstr "Auswählen, um diese Domain zu aktivieren" #: admin/models/domain.py:51 -#, fuzzy -#| msgid "Enable API access" msgid "Enable DNS checks" -msgstr "API-Zugriff aktivieren" +msgstr "Aktiviere DNS Prüfungen" #: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "" +"Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain" #: admin/models/domain.py:61 msgid "Enable DKIM signing" -msgstr "" +msgstr "Aktiviere DKIM Signierung" #: admin/models/domain.py:63 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." msgstr "" +"Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese " +"Domain aktiviert." #: admin/models/domain.py:70 msgid "Key length" -msgstr "" +msgstr "Schlüssel-Länge" #: admin/models/domain.py:368 admin/models/domain_alias.py:70 #: core/models.py:329 relaydomains/lib.py:13 @@ -1040,56 +1034,55 @@ msgstr "Ungültige Zeile" #: admin/models/domain.py:378 msgid "{}: no authorized MX record found for domain" -msgstr "" +msgstr "{}: Kein autorisierter MX Eintrag für die Domain gefunden." #: admin/models/domain.py:383 msgid "{}: invalid quota value for domain" -msgstr "" +msgstr "Fehlerhafter Kontingentwert für die Domäne '{}'" #: admin/models/domain.py:388 msgid "{}: invalid default mailbox quota value for domain" -msgstr "" +msgstr "Fehlerhafter Standardwert für das Postfachkontingent der Domäne '{}'" #: admin/models/domain.py:395 msgid "{}: default mailbox quota cannot be greater than domain quota" msgstr "" +"{}: Standard-Postfachkontingent kann nicht größer sein als das " +"Domänenkontingent" #: admin/models/domain_alias.py:36 msgid "The alias name" -msgstr "" +msgstr "Der Alias-Name" #: admin/models/domain_alias.py:40 msgid "target" -msgstr "" +msgstr "Ziel" #: admin/models/domain_alias.py:41 msgid "The domain this alias points to" -msgstr "" +msgstr "Domain, auf die dieser Alias verweist" #: admin/models/domain_alias.py:79 -#, fuzzy, python-format -#| msgid "Unknown domain" +#, python-format msgid "Unknown domain %s" -msgstr "Unbekannte Domäne" +msgstr "Unbekannte Domain %s" #: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" -msgstr "" +msgstr "Postfach-Adresse (ohne den '@domain.tld' Teil)" #: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" -msgstr "" +msgstr "Der Speicherort des Postfachs (%s) konnte nicht bestimmt werden" #: admin/models/mailbox.py:249 -#, fuzzy -#| msgid "This field is required" msgid "A quota is required" -msgstr "Dieses Feld ist erforderlich" +msgstr "Ein Quota ist erforderlich" #: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" -msgstr "" +msgstr "{}: Domänen-Kontingent überschritten." #: admin/templates/admin/_domain_dkim_key.html:6 #: admin/templates/admin/_domain_dkim_key.html:20 @@ -1103,49 +1096,43 @@ msgstr "Schließen" #: admin/templates/admin/_domain_dkim_key.html:7 #, python-format msgid "DKIM public key for %(domain)s" -msgstr "" +msgstr "Öffentlicher DKIM Schlüssel für %(domain)s" #: admin/templates/admin/_domain_dkim_key.html:11 msgid "Raw format. Click to copy" -msgstr "" +msgstr "Raw-Format. Zum Kopieren klicken" #: admin/templates/admin/_domain_dkim_key.html:15 msgid "Bind/named format. Click to copy" -msgstr "" +msgstr "Bind-/named-Format. Zum Kopieren klicken" #: admin/templates/admin/_domain_dnschecks_status.html:4 -#, fuzzy -#| msgid "Disable 2FA" msgctxt "checks" msgid "Disabled" -msgstr "2FA deaktivieren" +msgstr "Deaktiviert" #: admin/templates/admin/_domain_dnschecks_status.html:6 msgid "Awaiting checks" -msgstr "" +msgstr "Erwarte Prüfungen" #: admin/templates/admin/_domain_dnschecks_status.html:16 #: admin/templates/admin/_domain_dnschecks_status.html:26 #: admin/templates/admin/_domain_dnschecks_status.html:34 #: admin/templates/admin/_domain_dnschecks_status.html:42 -#, fuzzy -#| msgid "No mechanism found" msgid "No record found" -msgstr "Kein Mechanismus gefunden" +msgstr "Kein Eintrag gefunden" #: admin/templates/admin/_domain_dnschecks_status.html:24 msgid "Waiting for key to be generated" -msgstr "" +msgstr "Warten auf Schlüsselerzeugung" #: admin/templates/admin/_global_statistics_widget.html:4 -#, fuzzy -#| msgid "Graphical statistics" msgid "Global statistics" -msgstr "Grafische Statistiken" +msgstr "Globale Statistiken" #: admin/templates/admin/_global_statistics_widget.html:8 msgid "Quantity" -msgstr "" +msgstr "Anzahl" #: admin/templates/admin/_global_statistics_widget.html:14 #: admin/templates/admin/domain_detail.html:37 @@ -1153,35 +1140,33 @@ msgstr "" #: 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 "" +msgstr "Domain-Aliase" #: admin/templates/admin/_per_domain_statistics_widget.html:4 -#, fuzzy -#| msgid "Send statistics" msgid "Per-domain statistics" -msgstr "Sende Statistiken" +msgstr "Pro-Domain Statistiken" #: admin/templates/admin/account_detail.html:16 #: admin/templates/admin/alias_detail.html:16 #: admin/templates/admin/domain_detail.html:19 #: admin/templates/admin/identities_table.html:7 msgid "(disabled)" -msgstr "" +msgstr "(deaktiviert)" #: admin/templates/admin/account_detail.html:22 #: admin/templates/admin/alias_detail.html:22 #: admin/templates/admin/domain_detail.html:25 msgid "Summary" -msgstr "" +msgstr "Zusammenfassung" #: admin/templates/admin/account_detail.html:26 msgid "Full name" -msgstr "" +msgstr "Vollständiger Name" #: admin/templates/admin/account_detail.html:32 #: admin/templates/admin/alias_detail.html:26 msgid "Created" -msgstr "" +msgstr "Erstellt" #: admin/templates/admin/account_detail.html:35 #: core/templates/core/information.html:38 @@ -1195,96 +1180,82 @@ msgstr "Sekundäre E-Mail-Adresse" #: admin/templates/admin/account_detail.html:38 #: admin/templates/admin/account_detail.html:41 msgid "Not defined" -msgstr "" +msgstr "Nicht definiert" #: admin/templates/admin/account_detail.html:41 core/models.py:68 msgid "Phone number" msgstr "Telefonnummer" #: admin/templates/admin/account_detail.html:61 -#, fuzzy -#| msgid "Administrator groups" msgid "Administered domains" -msgstr "Administratorgruppen" +msgstr "Administrierte Domains" #: admin/templates/admin/account_detail.html:67 msgid "No domain defined." -msgstr "" +msgstr "Keine Domain angegeben." #: admin/templates/admin/account_detail.html:81 msgid "Aliases" -msgstr "" +msgstr "Aliase" #: admin/templates/admin/account_detail.html:87 msgid "No alias defined" -msgstr "" +msgstr "Kein Alias definiert" #: admin/templates/admin/account_detail.html:93 -#, fuzzy -#| msgid "Sender address" msgid "Additional sender addresses" -msgstr "Absenderadresse" +msgstr "Zusätzliche Absenderadressen" #: admin/templates/admin/account_detail.html:99 -#, fuzzy -#| msgid "Sender address" msgid "No sender address defined" -msgstr "Absenderadresse" +msgstr "Keine Absenderadresse definiert" #: admin/templates/admin/account_general_form.html:12 #: admin/templates/admin/aliasform.html:13 msgid "Domain is disabled" -msgstr "" +msgstr "Domain ist deaktiviert" #: admin/templates/admin/alias_detail.html:16 #: admin/templates/admin/identities.html:33 msgid "Alias" -msgstr "" +msgstr "Alias" #: admin/templates/admin/alias_detail.html:27 -#, fuzzy -#| msgid "modified" msgid "Modified" -msgstr "geändert" +msgstr "Verändert" #: admin/templates/admin/dnsbl_domain_detail.html:10 -#, fuzzy -#| msgid "SMS provider" msgid "Provider" -msgstr "SMS-Anbieter" +msgstr "Anbieter" #: admin/templates/admin/dnsbl_domain_detail.html:11 #: admin/templates/admin/identities_quota_headers.html:2 #: admin/templates/admin/mx_domain_detail.html:10 -#, fuzzy -#| msgid "From address" msgid "Address" -msgstr "Absender-Adresse" +msgstr "Adresse" #: admin/templates/admin/dnsbl_domain_detail.html:12 #: admin/templates/admin/domain_detail.html:114 #: admin/templates/admin/domains_log_headers.html:6 #: admin/templates/admin/messages_log_headers.html:6 -#, fuzzy -#| msgid "Statistics" msgid "Status" -msgstr "Statistiken" +msgstr "Status" #: admin/templates/admin/dnsbl_domain_detail.html:21 msgid "listed" -msgstr "" +msgstr "aufgelistet" #: admin/templates/admin/dnsbl_domain_detail.html:29 msgid "Everything is fine, this domain is not listed." -msgstr "" +msgstr "Alles in Ordnung, diese Domain ist nicht gelistet." #: admin/templates/admin/dnsbl_domain_detail.html:32 msgid "No information available for this domain." -msgstr "" +msgstr "Keine Informationen verfügbar für diese Domain." #: admin/templates/admin/domain_alarms.html:19 msgid "Opened alarms for" -msgstr "" +msgstr "Offene Alarme für" #: admin/templates/admin/domain_alarms.html:25 #: admin/templates/admin/domains_log_headers.html:3 @@ -1299,29 +1270,25 @@ msgstr "Nachricht" #: admin/templates/admin/domain_alarms.html:27 msgid "Mailbox" -msgstr "" +msgstr "Postfach" #: admin/templates/admin/domain_alarms.html:40 msgid "No opened alarm" -msgstr "" +msgstr "Keine offenen Alarme" #: admin/templates/admin/domain_detail.html:29 -#, fuzzy -#| msgid "Verification code" msgid "Creation date" -msgstr "Bestätigungscode" +msgstr "Erstellungsdatum" #: admin/templates/admin/domain_detail.html:33 -#, fuzzy -#| msgid "Verification code" msgid "Last modification date" -msgstr "Bestätigungscode" +msgstr "Datum der letzten Änderung" #: 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 "" +msgstr "Postfach-Aliase" #: admin/templates/admin/domain_detail.html:50 #: admin/templates/admin/domain_detail.html:57 @@ -1331,54 +1298,54 @@ msgstr "" #: admin/templates/admin/domains_quotas.html:12 #: admin/templates/admin/newdomainform.html:3 msgid "MB" -msgstr "" +msgstr "MB" #: admin/templates/admin/domain_detail.html:54 #: admin/templates/admin/domain_detail.html:73 -#, fuzzy -#| msgid "Message" msgid "Usage" -msgstr "Nachricht" +msgstr "Verwendung" #: admin/templates/admin/domain_detail.html:57 #: admin/templates/admin/domains_quotas.html:11 msgctxt "quota" msgid "used" -msgstr "" +msgstr "benutzt" #: admin/templates/admin/domain_detail.html:58 #: admin/templates/admin/domains_quotas.html:12 msgid "allocated" -msgstr "" +msgstr "allokiert" #: admin/templates/admin/domain_detail.html:70 msgid "per day" -msgstr "" +msgstr "pro Tag" #: admin/templates/admin/domain_detail.html:76 msgctxt "message count" msgid "used" -msgstr "" +msgstr "benutzt" #: admin/templates/admin/domain_detail.html:106 msgid "DNS" -msgstr "" +msgstr "DNS" #: admin/templates/admin/domain_detail.html:121 msgid "DKIM key" -msgstr "" +msgstr "DKIM Schlüssel" #: admin/templates/admin/domain_detail.html:125 msgid "Show key" -msgstr "" +msgstr "Zeige Schlüssel" #: admin/templates/admin/domain_detail.html:133 msgid "Warning" -msgstr "" +msgstr "Warnung" #: admin/templates/admin/domain_detail.html:139 msgid "DKIM keys already exist for this domain. Do you want to overwrite them?" msgstr "" +"Für diese Domain sind bereits DKIM-Schlüssel vorhanden. Möchten Sie sie " +"überschreiben?" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 #: lib/form_utils.py:400 @@ -1387,7 +1354,7 @@ msgstr "Nein" #: admin/templates/admin/domain_detail.html:143 msgid "Generate new key" -msgstr "" +msgstr "Neuen Schlüssel generieren" #: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400 msgid "Yes" @@ -1395,55 +1362,47 @@ msgstr "Ja" #: admin/templates/admin/domain_detail.html:149 msgid "Not generated" -msgstr "" +msgstr "Nicht generiert" #: admin/templates/admin/domain_detail.html:156 -#, fuzzy -#| msgid "Administrator groups" msgid "Administrators" -msgstr "Administratorgruppen" +msgstr "Administratoren" #: admin/templates/admin/domain_detail.html:168 #: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" -msgstr "" +msgstr "Diese Berechtigung entfernen" #: admin/templates/admin/domain_detail.html:173 -#, fuzzy -#| msgid "Domain administrator" msgid "No domain administrator defined yet." -msgstr "Domain-Administrator" +msgstr "Es wurde noch kein Domain Administrator definiert." #: admin/templates/admin/domain_headers.html:5 #: admin/templates/admin/identity_headers.html:4 msgid "Tags" -msgstr "" +msgstr "Tags" #: admin/templates/admin/domain_headers.html:7 msgid "DNS status" -msgstr "" +msgstr "DNS Status" #: admin/templates/admin/domain_headers.html:9 #: admin/templates/admin/identity_headers.html:5 -#, fuzzy -#| msgid "Applications" msgid "Actions" -msgstr "Applikationen" +msgstr "Aktionen" #: admin/templates/admin/domain_options_form.html:10 -#, fuzzy -#| msgid "Domain administrator" msgid "You can't create a new domain administrator" -msgstr "Domain-Administrator" +msgstr "Sie können keinen neuen Domain-Administrator erstellen" #: admin/templates/admin/domains.html:28 #: admin/templates/admin/identities.html:29 msgid "Add" -msgstr "" +msgstr "Hinzufügen" #: admin/templates/admin/domains_log_headers.html:2 msgid "Queue ID" -msgstr "" +msgstr "Warteschlangen-ID" #: admin/templates/admin/domains_log_headers.html:4 #: admin/templates/admin/messages_log_headers.html:4 @@ -1460,31 +1419,29 @@ msgstr "An" #: admin/templates/admin/domains_quota_headers.html:3 #: admin/templates/admin/identities_quota_headers.html:4 msgid "Limit" -msgstr "" +msgstr "Limit" #: admin/templates/admin/domains_quota_headers.html:4 msgid "Used" -msgstr "" +msgstr "Benutzt" #: admin/templates/admin/domains_quota_headers.html:5 msgid "Allocated" -msgstr "" +msgstr "Allokiert" #: admin/templates/admin/domains_quota_headers.html:6 #: admin/templates/admin/identities_quota_headers.html:5 #, python-format msgid "Usage (%%)" -msgstr "" +msgstr "Verwendung (%%)" #: admin/templates/admin/domains_table.html:5 -#, fuzzy -#| msgid "Disable 2FA" msgid "disabled" -msgstr "2FA deaktivieren" +msgstr "deaktiviert" #: admin/templates/admin/forward.html:2 msgid "Automatically forward emails to another address" -msgstr "" +msgstr "Nachrichten automatisch an andere Adresse weiterleiten" #: admin/templates/admin/forward.html:9 admin/views/alias.py:84 #: core/templates/core/api_access.html:35 @@ -1494,20 +1451,16 @@ msgid "Update" msgstr "Aktualisieren" #: admin/templates/admin/identities.html:32 -#, fuzzy -#| msgid "Accounts" msgid "Account" -msgstr "Konten" +msgstr "Konto" #: admin/templates/admin/identities_quota_headers.html:3 msgid "Value" -msgstr "" +msgstr "Wert" #: admin/templates/admin/identity_headers.html:3 -#, fuzzy -#| msgid "Recipient" msgid "Fullname/Recipient" -msgstr "Empfänger" +msgstr "Name/Empfänger" #: admin/templates/admin/import_domains_form.html:6 msgid "" @@ -1519,6 +1472,13 @@ msgid "" "mandatory and must be equal to one of the previous values.

        You can " "use a different character as separator.

        " msgstr "" +"Verwenden Sie eine CSV-Datei, in der die Zeilen einem der folgenden Formate " +"entsprechen:
        • domain; name; quota; default mailbox quota; " +"enabled
        • domainalias; name; targeted domain; enabled
        • relaydomain; name; target host; target port; service; enabled; " +"verify recipients

        Das erste Element jeder Zeile ist " +"erforderlich und muss einem der vorherigen Werte entsprechen.

        Sie " +"können ein anderes Zeichen als Trennzeichen verwenden.

        " #: admin/templates/admin/import_identities_form.html:6 msgid "" @@ -1529,44 +1489,47 @@ msgid "" "is mandatory and must be equal to one of the previous values.

        You can " "use a different character as separator.

        " msgstr "" +"Verwenden Sie eine CSV-Datei, deren Zeilen einem der folgenden Formate " +"entsprechen:
        • account; loginname; password; first name; last " +"name; enabled; group; address; quota; [, domain, ...]
        • " +"
        • alias; address; enabled; recipient; recipient; ...
        " +"

        Das erste Element jeder Zeile ist erforderlich und muss mit einem der " +"vorherigen Werte übereinstimmen.

        Sie können ein anderes Zeichen als " +"Trennzeichen verwenden.

        " #: admin/templates/admin/importform.html:6 -#, fuzzy -#| msgid "Help:" msgid "Help" -msgstr "Hilfe:" +msgstr "Hilfe" #: admin/templates/admin/importform.html:13 msgid "Importing..." -msgstr "" +msgstr "Importiere…" #: admin/templates/admin/mailboxes_raw.html:3 -#, fuzzy -#| msgid "Choose a provider" msgid "Choose a value" -msgstr "Wähle einen Anbieter" +msgstr "Wert auswählen" #: admin/templates/admin/mailform.html:7 msgid "Use domain default value" -msgstr "" +msgstr "Standardwert der Domain verwenden" #: admin/templates/admin/messages_log_headers.html:2 msgid "ID" -msgstr "" +msgstr "ID" #: admin/templates/admin/mx_domain_detail.html:11 -#, fuzzy -#| msgid "Update" msgid "Updated" msgstr "Aktualisieren" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" msgstr "" +"Die IP-Adressen passen zu keinem der in den Parametern definierten MX-" +"Einträge" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." -msgstr "" +msgstr "Kein MX Eintrag für diese Domain gefunden." #: admin/templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format @@ -1574,6 +1537,8 @@ msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" msgstr "" +"Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden " +"DNSBL-Anbieter aufgelistet ist:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 msgid "" @@ -1581,144 +1546,138 @@ msgid "" "coming from it are considered as spam. You should contact those providers " "and ask them to unlist detected IP address(es)." msgstr "" +"Die Reputation der Domäne wird beeinträchtigt, und es besteht die " +"Möglichkeit, dass die von ihr stammenden E-Mails als Spam angesehen werden. " +"Sie sollten diese Anbieter kontaktieren und sie bitten, die erkannte(n) IP-" +"Adresse(n) aus der Liste zu entfernen." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" +"Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag " +"vorliegt:" #: admin/templates/admin/searchform.html:6 -#, fuzzy -#| msgid "Search..." msgid "Search" -msgstr "Suchen ..." +msgstr "Suchen" #: admin/templatetags/admin_tags.py:18 msgid "enabled_m" -msgstr "" +msgstr "aktiviert_m" #: admin/templatetags/admin_tags.py:18 msgid "enabled_f" -msgstr "" +msgstr "aktiviert_f" #: admin/templatetags/admin_tags.py:46 msgid "List domains" -msgstr "" +msgstr "Domain-Liste" #: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:123 msgid "List quotas" -msgstr "" +msgstr "Quota-Liste" #: admin/templatetags/admin_tags.py:60 -#, fuzzy -#| msgid "Message" msgid "Message logs" -msgstr "Nachricht" +msgstr "Nachrichten-Logs" #: 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 "" +msgstr "Import" #: 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 "" +msgstr "Export" #: admin/templatetags/admin_tags.py:116 msgid "List identities" -msgstr "" +msgstr "Identitäten-Liste" #: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" -msgstr "" +msgstr "Domain-Identitäten anzeigen" #: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" -msgstr "" +msgstr "Domänen-Alarme anzeigen" #: admin/templatetags/admin_tags.py:174 admin/templatetags/admin_tags.py:218 #: admin/templatetags/admin_tags.py:235 msgid "Edit {}" -msgstr "" +msgstr "{} bearbeiten" #: admin/templatetags/admin_tags.py:186 admin/templatetags/admin_tags.py:224 #: admin/templatetags/admin_tags.py:241 #, python-format msgid "Delete %s?" -msgstr "" +msgstr "%s löschen?" #: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" -msgstr "" +msgstr "Kein MX Eintrag für %s" #: 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 "" +msgstr "Ferhlerhaftes IP-Adressformat für %(domain)s; %(addr)s" #: admin/tests/test_mx.py:200 #, fuzzy, python-format -#| msgid "No mechanism found" +#| msgid "No MX record for %s" msgid "No AAAA record for %s" -msgstr "Kein Mechanismus gefunden" +msgstr "Kein MX Eintrag für %s" #: admin/views/alias.py:30 msgid "Alias with this name already exists" -msgstr "" +msgstr "Ein Alias mit diesem Namen existiert bereits" #: admin/views/alias.py:52 msgid "Create" -msgstr "" +msgstr "Erstellen" #: admin/views/alias.py:64 msgid "New alias" -msgstr "" +msgstr "Neuer Alias" #: admin/views/alias.py:64 msgid "Alias created" -msgstr "" +msgstr "Alias erstellt" #: admin/views/alias.py:76 -#, fuzzy -#| msgid "modified" msgid "Alias modified" -msgstr "geändert" +msgstr "Alias verändert" #: admin/views/alias.py:101 -#, fuzzy -#| msgid "deleted" msgid "Alias deleted" msgid_plural "Aliases deleted" -msgstr[0] "gelöscht" -msgstr[1] "gelöscht" +msgstr[0] "Alias gelöscht" +msgstr[1] "Aliase gelöscht" #: admin/views/dns.py:28 -#, fuzzy -#| msgid "{} record of {}" msgid "MX records of {}" -msgstr "{} Eintrag von {}" +msgstr "MX Einträge für {}" #: admin/views/dns.py:50 msgid "DNSBL summary for {}" -msgstr "" +msgstr "DNSBL Zusammenfassung für {}" #: admin/views/domain.py:251 -#, fuzzy -#| msgid "deleted" msgid "Domain deleted" msgid_plural "Domains deleted" -msgstr[0] "gelöscht" -msgstr[1] "gelöscht" +msgstr[0] "Domain gelöscht" +msgstr[1] "Domains gelöscht" #: admin/views/export.py:40 msgid "Export identities" -msgstr "" +msgstr "Identitäten exportieren" #: admin/views/export.py:69 msgid "Export domains" -msgstr "" +msgstr "Domains exportieren" #: 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 @@ -1726,49 +1685,44 @@ msgid "Invalid request" msgstr "Ungültige Anfrage" #: admin/views/identity.py:187 -#, fuzzy -#| msgid "Account DN template" msgid "Account deleted" msgid_plural "Accounts deleted" -msgstr[0] "Konto-DN-Vorlage" -msgstr[1] "Konto-DN-Vorlage" +msgstr[0] "Konto gelöscht" +msgstr[1] "Konten gelöscht" #: admin/views/import_.py:56 msgid "Import domains" -msgstr "" +msgstr "Domains importieren" #: admin/views/import_.py:77 msgid "Import identities" -msgstr "" +msgstr "Identitäten importieren" #: admin/views/user.py:51 -#, fuzzy -#| msgid "Profile updated" msgid "Forward updated" -msgstr "Profil aktualisiert" +msgstr "Weiterleitung aktualisiert" #: core/api/v1/serializers.py:21 msgid "Invalid PIN code" -msgstr "Ungültiger PIN-Code" +msgstr "Ungültiger Pincode" #: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "2FA ist bereits aktiviert" #: core/api/v1/serializers.py:40 -#, python-format +#, fuzzy, python-format +#| msgid "Failed connection attempt from '%s' as user '%s'" msgid "Failed TFA settings editing attempt from '%s' as user '%s'" -msgstr "" +msgstr "Fehlgeschlagener Verbindungsversuch von '%s' als Benutzer '%s'" #: core/api/v1/serializers.py:44 core/api/v2/serializers.py:274 -#, fuzzy -#| msgid "Old password" msgid "Invalid password" -msgstr "Altes Passwort" +msgstr "Ungültiges Passwort" #: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 msgid "2FA is not enabled" -msgstr "2FA ist nicht aktiviert" +msgstr "2-Faktor-Authentifizierung ist nicht aktiviert" #: core/api/v2/serializers.py:68 core/app_settings.py:48 msgid "Local" @@ -1776,49 +1730,48 @@ msgstr "Lokal" #: core/api/v2/serializers.py:164 core/app_settings.py:24 msgid "User profile" -msgstr "Benutzerprofil" +msgstr "Benutzername" #: 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:155 msgid "Invalid syntax" -msgstr "Ungültige Syntax" +msgstr "Ungültiger Syntax" #: core/api/v2/serializers.py:202 core/app_settings.py:557 msgid "Invalid rounds number" -msgstr "Ungültige Anzahl Runden" +msgstr "Ungültige Zahl für Runden" #: core/api/v2/serializers.py:262 core/forms.py:194 msgid "This code is invalid" -msgstr "Dieser Code ist ungültig" +msgstr "Dieser Code ist Falsch" #: 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 "" -"Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort " -"wiederherzustellen: {}" +"Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen: " +"{}" #: core/api/v2/views.py:57 #, python-format msgid "Failed connection attempt from '%s' as user '%s'" -msgstr "" +msgstr "Fehlgeschlagener Verbindungsversuch von '%s' als Benutzer '%s'" #: core/api/v2/views.py:69 core/views/auth.py:89 #, python-format msgid "User '%s' successfully logged in" -msgstr "Benutzer '%s' erfolgreich angemeldet" +msgstr "Benutzer '%s' hat sich erfolgreich angemeldet" #: core/api/v2/views.py:86 core/views/auth.py:67 #, python-format msgid "Password scheme mismatch. Updating %s password" -msgstr "Kennwortschema stimmt nicht überein. Aktualisiere %s Passwort" +msgstr "Fehlanpassung des Passwortschemas. Passwort von %s wird aktualisiert" #: core/api/v2/views.py:93 core/views/auth.py:75 #, python-format msgid "Password hash parameter missmatch. Updating %s password" -msgstr "" -"Passwort-Hash-Parameter stimmen nicht überein. Aktualisiere %s Passwort" +msgstr "Passwort-Hash Parameter Unterschied. Aktualisiere %s Passwort" #: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" @@ -1830,15 +1783,15 @@ msgstr "Authentifizierungstyp" #: core/app_settings.py:50 core/app_settings.py:724 msgid "The backend used for authentication" -msgstr "Das Backend für Authentifizierung" +msgstr "Backend für die Authentifizierung" #: core/app_settings.py:55 core/app_settings.py:731 msgid "Default password scheme" -msgstr "Voreingestelltes Passwort-Schema" +msgstr "Standard-Passwortschema" #: core/app_settings.py:58 core/app_settings.py:733 msgid "Scheme used to crypt mailbox passwords" -msgstr "Schema zur Verschlüsselung von Postfach-Passwörtern" +msgstr "Verschlüsselungsschema der Postfach-Passwörter" #: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" @@ -1849,18 +1802,18 @@ msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -"Anzahl an Runden (nur von sha256crypt und sha512crypt genutzt). Muss " -"zwischen 1000 und 999999999 liegen, inklusive." +"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl " +"muss zwischen 1000 und 999999999 liegen." #: core/app_settings.py:71 core/app_settings.py:752 msgid "Update password scheme at login" -msgstr "Passwort-Schema beim Login updaten" +msgstr "Aktualisiere das Passwortschema beim Anmelden" #: core/app_settings.py:74 core/app_settings.py:755 msgid "Update user password at login to use the default password scheme" msgstr "" -"Aktualisiere das Benutzerkennwort bei der Anmeldung, um das " -"Standardkennwortschema zu verwenden" +"Aktualisieren Sie das Benutzerkennwort bei der Anmeldung, um das Standard-" +"Passwortschema zu verwenden." #: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" @@ -1868,7 +1821,7 @@ msgstr "Standardpasswort" #: core/app_settings.py:81 core/app_settings.py:765 msgid "Default password for automatically created accounts." -msgstr "Standardpasswort für automatisch kreierte Konten" +msgstr "Standardpasswort für automatisch erstellte Accounts." #: core/app_settings.py:85 core/app_settings.py:772 msgid "Random password length" @@ -1876,11 +1829,11 @@ msgstr "Zufällige Passwortlänge" #: core/app_settings.py:88 core/app_settings.py:774 msgid "Length of randomly generated passwords." -msgstr "Länge der zufällig generierten Passwörter." +msgstr "Länge von zufällig generierten Passwörtern" #: core/app_settings.py:92 core/app_settings.py:781 msgid "Update password service URL" -msgstr "URL des Kennwortdienstes aktualisieren" +msgstr "Aktualisiere Passwort-Service-URL" #: core/app_settings.py:96 core/app_settings.py:783 msgid "" @@ -1888,13 +1841,13 @@ msgid "" "password. It applies only to non local users, ie. those automatically " "created after a successful external authentication (LDAP, SMTP)." msgstr "" -"Die URL einer externen Seite, auf der Benutzer ihr Passwort aktualisieren " -"können. Betrifft nur nicht lokale Benutzer, die nach einer erfolgreichen " -"externen Authentifizierung (LDAP, SMTP) automatisch erstellt wurden." +"Die URL der externen Webseite wo Benutzer ihr Kennwort aktualisieren können. " +"Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer die " +"nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, SMTP)." #: core/app_settings.py:104 core/app_settings.py:793 msgid "Password recovery announcement" -msgstr "Ankündigung zur Passwortwiederherstellung" +msgstr "Ankündigung zur Passwort-Wiederherstellung" #: core/app_settings.py:109 core/app_settings.py:795 msgid "A temporary message that will be displayed on the reset password page." @@ -1904,23 +1857,21 @@ msgstr "" #: core/app_settings.py:114 core/app_settings.py:804 msgid "Enable password recovery by SMS" -msgstr "Passwortwiederherstellung per SMS aktivieren" +msgstr "Aktiviere die Passwortwiederherstellung per SMS" #: core/app_settings.py:117 core/app_settings.py:807 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -"Aktiviere die Kennwortwiederherstellung per SMS für Benutzer, die eine " -"Telefonnummer angegeben haben." +"Aktiviere die Passwortwiederherstellung per SMS für Benutzer mit einer " +"Telefonnummer." #: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" -msgstr "SMS-Anbieter" +msgstr "SMS Anbieter" #: core/app_settings.py:124 core/app_settings.py:818 msgid "Choose a provider to send password recovery SMS" -msgstr "" -"Wählen Sie einen Anbieter für den Versand von SMS zur " -"Kennwortwiederherstellung" +msgstr "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS" #: core/app_settings.py:129 msgid "LDAP settings" @@ -1928,7 +1879,7 @@ msgstr "LDAP-Einstellungen" #: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" -msgstr "Serveradresse" +msgstr "Server-Adresse" #: core/app_settings.py:134 core/app_settings.py:838 msgid "The IP address or the DNS name of the LDAP server" @@ -1936,7 +1887,7 @@ msgstr "IP-Adresse oder Hostname des LDAP-Servers" #: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" -msgstr "Server Port" +msgstr "Server-Port" #: core/app_settings.py:140 core/app_settings.py:847 msgid "The TCP port number used by the LDAP server" @@ -1944,7 +1895,7 @@ msgstr "Der TCP Port des LDAP-Servers" #: core/app_settings.py:144 core/app_settings.py:855 msgid "Enable secondary server (fallback)" -msgstr "Aktiviere Ausfallserver (Fallback)" +msgstr "Aktiviere Ausfallsserver (Fallback)" #: core/app_settings.py:147 core/app_settings.py:858 msgid "" @@ -1955,23 +1906,23 @@ msgstr "" #: core/app_settings.py:153 core/app_settings.py:866 msgid "Secondary server address" -msgstr "Ausfallserver-Adresse" +msgstr "Ausfallsserver-Adresse" #: core/app_settings.py:156 core/app_settings.py:869 msgid "The IP address or the DNS name of the seondary LDAP server" -msgstr "IP-Adresse oder Hostname des zweiten LDAP-Servers" +msgstr "Die IP-Adresse oder den DNS-Namen des zweiten LDAP-Servers" #: core/app_settings.py:161 core/app_settings.py:876 msgid "Secondary server port" -msgstr "Ausfallserver-Port" +msgstr "Ausfallsserver-Port" #: core/app_settings.py:163 core/app_settings.py:879 msgid "The TCP port number used by the LDAP secondary server" -msgstr "Der TCP Port des zweiten LDAP-Servers" +msgstr "Der TCP Port des sekundären LDAP-Servers" #: core/app_settings.py:167 core/app_settings.py:886 msgid "Use a secured connection" -msgstr "Verwende eine gesicherte Verbindung" +msgstr "Gesicherte Verbindung verwenden" #: core/app_settings.py:171 core/app_settings.py:888 msgid "Use an SSL/STARTTLS connection to access the LDAP server" @@ -1983,19 +1934,19 @@ msgstr "Active Directory" #: core/app_settings.py:178 core/app_settings.py:897 msgid "Tell if the LDAP server is an Active Directory one" -msgstr "Auswählen, wenn der LDAP-Server ein Active Directory ist." +msgstr "Auswählen wenn der LDAP-Server ein Active Directory ist." #: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" -msgstr "Administratorgruppen" +msgstr "Administrator-Gruppen" #: 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 "" -"Mitglieder dieser LDAP-POSIX-Gruppen werden als Domänenadministratoren " -"erstellt. Nutze ';' um Gruppen zu trennen." +"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren " +"angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." #: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" @@ -2003,29 +1954,28 @@ msgstr "Gruppentyp" #: core/app_settings.py:195 core/app_settings.py:917 msgid "The LDAP group type to use with your directory." -msgstr "Der LDAP-Gruppentyp, der mit Ihrem Verzeichnis verwendet werden soll." +msgstr "" +"Der LDAP Gruppentyp welcher mit diesem Verzeichnis benutzt werden soll." #: core/app_settings.py:199 core/app_settings.py:924 msgid "Groups search base" -msgstr "Suchbasis für Gruppen" +msgstr "Gruppen Search Base" #: core/app_settings.py:202 core/app_settings.py:926 msgid "The distinguished name of the search base used to find groups" -msgstr "" -"Der Distinguished Name der Suchbasis, die zum Suchen von Gruppen verwendet " -"wird" +msgstr "Der DN der Search Base mit der Gruppen gefunden werden" #: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" -msgstr "Kennwortattribut" +msgstr "Passwort-Attribut" #: core/app_settings.py:210 core/app_settings.py:936 msgid "The attribute used to store user passwords" -msgstr "Das Attribut, das zum Speichern von Benutzerpasswörtern verwendet wird" +msgstr "Das Attribut für Benutzerpasswörter" #: core/app_settings.py:214 core/app_settings.py:943 msgid "LDAP authentication settings" -msgstr "LDAP-Authentifizierungseinstellungen" +msgstr "LDAP Authentifizierungseinstellungen" #: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" @@ -2037,7 +1987,7 @@ msgstr "Suchen und Bind anwenden" #: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" -msgstr "Direktbindung" +msgstr "Direkter Bind" #: core/app_settings.py:223 core/app_settings.py:954 msgid "Choose the authentication method to use" @@ -2054,8 +2004,7 @@ msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -"Der Distinguished Name, der beim Binden an den LDAP-Server verwendet werden " -"soll. Für eine anonyme Bindung leer lassen" +"Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." #: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972 #: core/app_settings.py:1034 @@ -2065,21 +2014,17 @@ msgstr "Bind Passwort" #: 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 "" -"Das Kennwort, das beim Binden an den LDAP-Server verwendet werden soll (mit " -"'Bind DN')" +msgstr "Das Passwort wenn mit dem Bind DN angemeldet wird." #: 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 "Suchbasis für Benutzer" +msgstr "Benutzer Search Base" #: 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 "" -"Der Distinguished Name der Suchbasis, die zum Suchen von Benutzern verwendet " -"wird" +msgstr "Der DN der Search Base mit der Benutzerkonten gefunden werden" #: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995 #: core/app_settings.py:1100 @@ -2092,12 +2037,12 @@ msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." msgstr "" -"Ein optionaler Filter (z.B. '(objectClass=person)'). Der Filter muss " +"Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss " "entsprechend der LDAP-Konvention in Klammern gesetzt werden." #: core/app_settings.py:266 core/app_settings.py:1006 msgid "User DN template" -msgstr "Benutzer-DN-Vorlage" +msgstr "Vorlage für User DN" #: core/app_settings.py:269 core/app_settings.py:1008 #, python-format @@ -2105,12 +2050,12 @@ msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" msgstr "" -"Die Vorlage, die verwendet wird, um den DN eines Benutzers zu erstellen. Es " -"sollte einen Platzhalter enthalten (z. B. %(user)s)" +"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s " +"enthalten." #: core/app_settings.py:276 core/app_settings.py:1017 msgid "LDAP synchronization settings" -msgstr "LDAP-Synchronisationseinstellungen" +msgstr "LDAP Synchronisations Einstellungen" #: core/app_settings.py:299 core/app_settings.py:1045 msgid "Enable export to LDAP" @@ -2120,24 +2065,24 @@ msgstr "Export zu LDAP aktivieren" msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -"Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-" -"Verzeichnis aktivieren" +"Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis " +"aktivieren" #: core/app_settings.py:308 core/app_settings.py:1056 msgid "Delete remote LDAP account when local account is deleted" -msgstr "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird" +msgstr "Remote LDAP Benutzer entfernen wenn lokaler Benutzer gelöscht wird" #: 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 "" -"Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird, ansonsten wird " -"es deaktiviert." +"Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten " +"wird der Benutzer deaktiviert." #: core/app_settings.py:317 core/app_settings.py:1068 msgid "Account DN template" -msgstr "Konto-DN-Vorlage" +msgstr "Vorlage für User DN" #: core/app_settings.py:320 core/app_settings.py:1070 #, python-format @@ -2145,8 +2090,8 @@ msgid "" "The template used to construct an account's DN. It should contain one " "placeholder (ie. %(user)s)" msgstr "" -"Die Vorlage, die verwendet wird, um den DN eines Kontos zu erstellen. Es " -"sollte einen Platzhalter enthalten (z. B. %(user)s)" +"Die Vorlage die verwendet wird um das User DN zu generieren. Es sollte " +"mindestens einen Platzhalter beinhalten (z.B. %(user)s)" #: core/app_settings.py:327 core/app_settings.py:1079 msgid "Enable import from LDAP" @@ -2155,11 +2100,12 @@ msgstr "Import von LDAP aktivieren" #: core/app_settings.py:330 core/app_settings.py:1081 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -"Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren" +"Automatische Kontensynchronisation vom LDAP Verzeichnis in die lokale " +"Datenbank aktivieren" #: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" -msgstr "Benutzername-Attribut" +msgstr "Benutzernamenattribut" #: core/app_settings.py:357 core/app_settings.py:1113 msgid "The name of the LDAP attribute where the username can be found." @@ -2182,8 +2128,7 @@ msgstr "Dovecot LDAP-Konfigurationsdatei" #: core/app_settings.py:374 core/app_settings.py:1134 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "" -"Speicherort der Konfigurationsdatei, die Dovecot-LDAP-Einstellungen enthält." +msgstr "Speicherort der Dovecot-Konfigurationsdatei für LDAP-Einstellungen." #: core/app_settings.py:379 core/app_settings.py:1147 #: core/templates/core/dashboard.html:5 @@ -2192,20 +2137,22 @@ msgstr "Dashboard" #: core/app_settings.py:382 core/app_settings.py:1153 msgid "Custom RSS feed" -msgstr "Benutzerdefinierter RSS-Feed" +msgstr "Benutzerdefinierter RSS Feed" #: core/app_settings.py:385 core/app_settings.py:1155 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -"Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren" +"Zeige benutzerdefinierten RSS-Feed für Wiederverkäufer und Domain-" +"Administratoren." #: core/app_settings.py:390 core/app_settings.py:1163 msgid "Hide features widget" -msgstr "Funktionen-Widget ausblenden" +msgstr "Verberge Funktionen Werkzeug" #: core/app_settings.py:393 core/app_settings.py:1165 msgid "Hide features widget for resellers and domain administrators" -msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" +msgstr "" +"Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." #: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" @@ -2217,7 +2164,7 @@ msgstr "Absenderadresse" #: core/app_settings.py:402 core/app_settings.py:1185 msgid "Email address used to send notifications." -msgstr "E-Mail-Adresse, die zum Senden von Benachrichtigungen verwendet wird." +msgstr "E-Mail Adresse für das Senden von Benachrichtigungen." #: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" @@ -2229,7 +2176,7 @@ msgstr "Verbindung aktivieren" #: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" -msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa" +msgstr "Verbindung mit Modoboa public API aktivieren" #: core/app_settings.py:414 core/app_settings.py:1211 msgid "Check new versions" @@ -2237,16 +2184,17 @@ msgstr "Prüfe auf neue Versionen" #: 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 "Prüft automatisch, ob eine neuere Version verfügbar ist" +msgstr "Prüft automatisch ob eine neuere Version verfügbar ist." #: core/app_settings.py:420 core/app_settings.py:1222 msgid "Send an email when new versions are found" -msgstr "Sende eine E-Mail, wenn eine neue Version gefunden wurde" +msgstr "Sende eine Email wenn eine neue Version gefunden wurde" #: core/app_settings.py:422 core/app_settings.py:1226 msgid "Send an email to notify admins about new versions" msgstr "" -"Sendet eine E-Mail, um Administratoren über neue Versionen zu benachrichtigen" +"Sende eine Email um die Administratoren über eine neue Version zu " +"benachrichtigen" #: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" @@ -2254,7 +2202,7 @@ msgstr "Empfänger" #: core/app_settings.py:427 core/app_settings.py:1236 msgid "Recipient of new versions notification emails." -msgstr "Empfänger von Benachrichtigungs-E-Mails über neue Version." +msgstr "Empfänger für die Benachrichtigungsemail für eine neue Version" #: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" @@ -2263,7 +2211,7 @@ msgstr "Sende Statistiken" #: core/app_settings.py:434 core/app_settings.py:1246 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -"Sendet Statistiken an die öffentliche API von Modoboa (Zähler und verwendete " +"Statistiken über die Modoboa public API senden (Zähler und Nutzungs " "Erweiterungen)" #: core/app_settings.py:438 core/app_settings.py:1258 @@ -2271,16 +2219,17 @@ msgid "Miscellaneous" msgstr "Verschiedenes" #: core/app_settings.py:441 core/app_settings.py:1265 -#, fuzzy -#| msgid "Inactive account threshold" msgid "Enable inactive account tracking" -msgstr "Schwellwert für inaktive Konten" +msgstr "Verfolgung inaktiver Konten aktivieren" #: 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 "" +"Dem Administrator die Möglichkeit geben, einen Schwellenwert (in Tagen) " +"festzulegen, ab dem ein Konto als inaktiv gilt, wenn sich der Benutzer nicht " +"angemeldet hat." #: core/app_settings.py:451 core/app_settings.py:1277 msgid "Inactive account threshold" @@ -2291,12 +2240,12 @@ msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -"Ein Konto mit einem letzten Login-Datum über diesem Schwellenwert (in Tagen) " -"wird als inaktiv betrachtet" +"Ein Konto mit einem Datum des letzten Logins, das größer als dieser " +"Schwellenwert ist (in Tagen), wird als inaktiv betrachtet." #: core/app_settings.py:460 core/app_settings.py:1289 msgid "Top notifications check interval" -msgstr "Prüfintervall für Benachrichtigungen" +msgstr "Benachrichtigungs-Prüfintervall" #: core/app_settings.py:462 core/app_settings.py:1292 msgid "Interval between two top notification checks (in seconds)" @@ -2304,11 +2253,11 @@ msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" #: core/app_settings.py:466 core/app_settings.py:1299 msgid "Maximum log record age" -msgstr "Maximales Alter eines Log-Eintrags" +msgstr "Maximales Alter für Log-Einträge" #: core/app_settings.py:468 core/app_settings.py:1301 msgid "The maximum age in days of a log record" -msgstr "Das maximale Alter eines Protokollsatzes in Tagen" +msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)" #: core/app_settings.py:472 core/app_settings.py:1308 msgid "Items per page" @@ -2316,7 +2265,7 @@ msgstr "Einträge pro Seite" #: core/app_settings.py:474 core/app_settings.py:1310 msgid "Number of displayed items per page" -msgstr "Anzahl der angezeigten Einträge pro Seite" +msgstr "Anzahl dargestellter Einträge pro Seite" #: core/app_settings.py:478 core/app_settings.py:1317 msgid "Default top redirection" @@ -2324,13 +2273,11 @@ msgstr "Standardumleitung" #: core/app_settings.py:482 core/app_settings.py:1319 msgid "The default redirection used when no application is specified" -msgstr "" -"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " -"wurde" +msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" #: core/app_settings.py:830 msgid "LDAP" -msgstr "" +msgstr "LDAP" #: core/checks/settings_checks.py:7 msgid "" @@ -2339,7 +2286,7 @@ msgid "" "clock change)." msgstr "" "Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel " -"zwischen Sommer- und Winterzeit führen (z. B. das Auftauchen derselben " +"zwischen Sommer- und Winterzeit führen (z.B. das Auftauchen derselben " "lokalen Zeit zweimal aufgrund der Zeitumstellung)." #: core/checks/settings_checks.py:11 @@ -2352,7 +2299,7 @@ msgstr "Normaler Benutzer" #: core/constants.py:7 msgid "Domain administrator" -msgstr "Domain-Administrator" +msgstr "Domain Administrator" #: core/constants.py:8 msgid "Reseller" @@ -2364,7 +2311,7 @@ msgstr "Super-Administrator" #: core/constants.py:108 msgid "Choose a provider" -msgstr "Wähle einen Anbieter" +msgstr "Wähle einen Provider" #: core/constants.py:113 msgid "Dummy" @@ -2372,7 +2319,7 @@ msgstr "Platzhalter" #: core/drf_authentication.py:17 msgid "Missing 2FA verification." -msgstr "" +msgstr "Fehlende 2FA-Verifizierung." #: core/forms.py:35 msgid "Old password" @@ -2392,7 +2339,7 @@ msgstr "Passwörter stimmen nicht überein" #: core/forms.py:124 msgid "Enable API access" -msgstr "API-Zugriff aktivieren" +msgstr "API Zugriff aktivieren" #: core/forms.py:170 msgid "Verification code" @@ -2408,12 +2355,12 @@ msgstr "hinzugefügt" #: core/handlers.py:39 msgid "modified" -msgstr "geändert" +msgstr "verändert" #: core/handlers.py:41 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" -msgstr "%(object)s '%(name)s' %(action)s von Benutzer %(user)s" +msgstr "%(object)s '%(name)s' %(action)s der Identität %(user)s" #: core/handlers.py:64 #, python-format @@ -2422,7 +2369,7 @@ msgstr "%(object)s '%(name)s' %(action)s von " #: core/handlers.py:67 msgid "deleted" -msgstr "gelöscht" +msgstr "entfernt" #: core/handlers.py:71 msgid "user {}" @@ -2434,11 +2381,11 @@ msgstr "Administrationsbefehl" #: core/handlers.py:95 msgid "You can't delete your own account" -msgstr "Sie können Ihr eigenes Konto nicht löschen" +msgstr "Sie können Ihr eigenes Konto nicht entfernen" #: core/handlers.py:128 msgid "One or more updates are available" -msgstr "Ein oder mehrere Updates sind verfügbar" +msgstr "Eine oder mehrere Aktualisierungen sind verfügbar" #: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" @@ -2446,11 +2393,11 @@ msgstr "[modoboa] Update(s) verfügbar" #: core/models.py:55 msgid "Allow mailboxes access" -msgstr "Postfachzugriff zulassen" +msgstr "Erlaube den Postfach-Zugriff" #: core/models.py:57 msgid "Allow this administrator to access user mailboxes" -msgstr "Gewähren Sie diesem Administrator Zugriff auf Benutzerpostfächer" +msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen" #: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" @@ -2467,13 +2414,11 @@ msgstr "Bevorzugte Anzeigesprache für Seiten." #: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "" -"Eine alternative E-Mail-Adresse kann für die Wiederherstellung verwendet " -"werden." +"Eine alternative E-Mail-Adresse welche Wiederherstellungszwecken dient." #: core/models.py:131 msgid "Failed to update password: LDAP module not installed" -msgstr "" -"Kennwort konnte nicht aktualisiert werden: LDAP-Modul nicht installiert" +msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert" #: core/models.py:166 policyd/core.py:106 msgid "account" @@ -2549,7 +2494,7 @@ msgstr "So you Start Europa" #: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:66 msgid "So you Start North America" -msgstr "So you Start Nord-Amerika" +msgstr "So you Start Amerika" #: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:67 msgid "Kimsufi Europe" @@ -2561,25 +2506,23 @@ msgstr "Kimsufi Nordamerika" #: core/sms_backends/ovh.py:36 core/sms_backends/ovh.py:109 msgid "Application key" -msgstr "Anwendungsschlüssel" +msgstr "Applikationsschlüssel" #: core/sms_backends/ovh.py:41 msgid "Application secret" -msgstr "Anwendungsgeheimnis" +msgstr "Applikationsgeheimnis" #: core/sms_backends/ovh.py:49 core/sms_backends/ovh.py:124 msgid "Consumer key" msgstr "Verbraucherschlüssel" #: core/sms_backends/ovh.py:116 -#, fuzzy -#| msgid "Application secret" msgid "Appication secret" -msgstr "Anwendungsgeheimnis" +msgstr "Anwendungspasswort" #: core/templates/core/_current_features.html:6 msgid "Features looking for sponsoring" -msgstr "Funktionen, die nach Sponsoring suchen" +msgstr "Noch zu unterstützende Features" #: core/templates/core/_current_features.html:12 msgid "Goal:" @@ -2595,7 +2538,7 @@ msgstr "Noch nichts zu sponsern." #: core/templates/core/_latest_news_widget.html:5 msgid "Latest news" -msgstr "Neueste Nachrichten" +msgstr "Neuste Nachrichten" #: core/templates/core/_latest_news_widget.html:19 msgid "" @@ -2607,7 +2550,7 @@ msgstr "" #: core/templates/core/api_access.html:3 msgid "API access" -msgstr "API-Zugriff" +msgstr "API Zugriff" #: core/templates/core/api_access.html:3 msgid "Control your access to Modoboa API" @@ -2624,7 +2567,7 @@ msgstr "" #: core/templates/core/api_access.html:14 msgid "API access token" -msgstr "API-Zugriffstoken" +msgstr "API access token" #: core/templates/core/dashboard.html:17 #, python-format @@ -2641,7 +2584,7 @@ msgstr "Verschiedene Informationen über Modoboa" #: core/templates/core/information.html:5 msgid "One or more updates are available!" -msgstr "Ein oder mehrere Updates sind verfügbar" +msgstr "Eine oder mehrere Aktualisierungen sind verfügbar!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." @@ -2671,7 +2614,7 @@ msgstr "Logs" #: core/templates/core/logs.html:2 msgid "Previously on Modoboa..." -msgstr "Bisher auf Modoboa ..." +msgstr "Vorher auf Modoboa…" #: core/templates/core/logs.html:7 msgid "Level" @@ -2690,10 +2633,10 @@ msgid_plural "" " The following updates are available:\n" msgstr[0] "" "\n" -" Folgendes Update ist verfügbar:\n" +"Die folgende Aktualisierung ist verfügbar:\n" msgstr[1] "" "\n" -" Folgende Updates sind verfügbar:\n" +"Die folgenden Aktualisierungen sind verfügbar:\n" #: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70 msgid "Parameters" @@ -2735,7 +2678,7 @@ msgstr "Aktualisieren Sie Ihre persönlichen Daten" #: core/templates/core/user_profile.html:13 msgid "Click here to update your password" -msgstr "Klicken Sie hier, um Ihr Passwort zu aktualisieren" +msgstr "Hier klicken um das Passwort zu aktualisieren" #: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:145 msgid "Security" @@ -2750,12 +2693,12 @@ 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 "" -"Installieren Sie einen Soft-Token-Authentifikator wie FreeOTP oder Google " -"Authenticator aus dem App-Store und scannen Sie den QR-Code." +"Installiere ein soft-token Authenticator, wie FreeOTP oder Google " +"Authenticator vom Appstore und scannen Sie den QR-Code." #: core/templates/core/user_security.html:25 msgid "Pin code" -msgstr "PIN-Code" +msgstr "Pincode" #: core/templates/core/user_security.html:28 msgid "Register" @@ -2776,14 +2719,14 @@ msgid "" "to save them in a safe place, otherwise you won't be able to access your " "account anymore." msgstr "" -"Die folgenden Wiederherstellungscodes können jeweils einmal verwendet " -"werden, um den Zugriff auf Ihr Konto wiederherzustellen, falls Sie " -"beispielsweise Ihr Telefon verlieren. Achten Sie darauf, diese sicher " -"aufzubewahren, da Sie sonst nicht mehr auf Ihr Konto zugreifen können." +"Die folgenden Wiederherstellungscodes können einmalig benutzt werden, um den " +"Zugriff auf ihr Konto wiederherzustellen, wenn sie zum Beispiel ihr " +"Mobiltelefon verlieren. Achten sie darauf diese sicher aufzubewahren, sonst " +"werden sie keine Möglichkeit mehr haben auf den Account zuzugreifen" #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." -msgstr "Die Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." +msgstr "Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." #: core/templates/core/user_security.html:57 msgid "This will invalidate your registered application." @@ -2791,7 +2734,7 @@ msgstr "" #: core/templates/core/user_security.html:58 msgid "Disable 2FA" -msgstr "2FA deaktivieren" +msgstr "Deaktiviere 2-Faktor-Authentifizierung" #: core/templates/core/user_security.html:60 msgid "This will regenerate your tokens." @@ -2799,20 +2742,20 @@ msgstr "" #: core/templates/core/user_security.html:61 msgid "Reset recovery codes" -msgstr "Wiederherstellungscodes zurücksetzen" +msgstr "Setze Wiederherstellungscodes zurück" #: 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." msgstr "" -"Die Zwei-Faktor-Authentifizierung (2FA) ist für diesen Account noch nicht " -"aktiviert. Die Aktivierung dieser Funktion erhöht die Sicherheit des " -"Accounts." +"Zwei-Faktor-Authentifizierung (2FA) ist noch nicht für diesen Account " +"aktiviert.\n" +"Aktiviere dieses Feature, um die Account-Sicherheit zu erhöhen." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" -msgstr "2FA aktivieren" +msgstr "Aktiviere 2FA" #: core/templates/core/user_security.html:84 msgid "New recovery codes" @@ -2824,9 +2767,9 @@ msgstr "Hier sind Ihre neuen Wiederherstellungscodes." #: core/templates/core/user_security.html:118 #, fuzzy -#| msgid "Forgot password?" +#| msgid "Crypt passwords" msgid "Confirm your password" -msgstr "Passwort vergessen?" +msgstr "Passwörter verschlüsseln" #: core/templatetags/core_tags.py:34 msgid "Modoboa" @@ -2834,7 +2777,7 @@ msgstr "Modoboa" #: core/templatetags/core_tags.py:110 msgid "Logout" -msgstr "Ausloggen" +msgstr "Logout" #: core/templatetags/core_tags.py:154 msgid "API" @@ -2851,7 +2794,8 @@ msgstr "Parameter gespeichert" #: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "" -"Benutzername und Passwort stimmen nicht überein. Bitte versuche es erneut." +"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es " +"noch einmal." #: core/views/auth.py:144 msgid "User '{}' successfully logged out" @@ -2867,147 +2811,140 @@ msgstr "Einstellungen gespeichert" #: core/views/user.py:118 msgid "Access updated" -msgstr "Zugang aktualisiert" +msgstr "Zugriff aktualisiert" #: dmarc/forms.py:36 dmarc/forms.py:50 -#, fuzzy -#| msgid "LDAP settings" msgid "DNS settings" -msgstr "LDAP-Einstellungen" +msgstr "DNS Einstellungen" #: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" -msgstr "" +msgstr "Reverse-Lookups aktivieren" #: dmarc/forms.py:41 dmarc/forms.py:58 msgid "Enable reverse DNS lookups (reports will be longer to display)" msgstr "" +"Reverse-DNS-Lookups aktivieren (Die Anzeige von Berichten dauert länger)" #: dmarc/forms.py:74 dmarc/forms.py:78 msgid "DMARC" -msgstr "" +msgstr "DMARC" #: dmarc/handlers.py:21 msgid "Show DMARC report for {}" -msgstr "" +msgstr "DMARC-Bericht für {} anzeigen" #: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120 msgid "Not resolved" -msgstr "" +msgstr "Nicht aufgelöst" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 msgid "None" -msgstr "" +msgstr "Nichts" #: dmarc/models.py:11 msgid "Quarantine" -msgstr "" +msgstr "Quarantäne" #: dmarc/models.py:12 -#, fuzzy -#| msgid "Subject" msgid "Reject" -msgstr "Betreff" +msgstr "Ablehnung" #: dmarc/models.py:17 msgid "Neutral" -msgstr "" +msgstr "Neutral" #: dmarc/models.py:18 -#, fuzzy -#| msgid "Password" msgid "Pass" -msgstr "Passwort" +msgstr "Genehmigen" #: dmarc/models.py:19 msgid "Fail" -msgstr "" +msgstr "Abbruch" #: dmarc/models.py:20 -#, fuzzy -#| msgid "Secondary server port" msgid "Temporary error" -msgstr "Ausfallserver-Port" +msgstr "Temporärer Fehler" #: dmarc/models.py:21 msgid "Permanent error" -msgstr "" +msgstr "Permanenter Fehler" #: dmarc/models.py:24 msgid "Policy" -msgstr "" +msgstr "Richtlinie" #: dmarc/models.py:26 msgid "Soft failure" -msgstr "" +msgstr "Schwacher Fehler" #: dmarc/templates/dmarc/_result_detail.html:6 msgid "Total" -msgstr "" +msgstr "Total" #: dmarc/templates/dmarc/domain_report.html:21 #: dmarc/templates/dmarc/domain_report.html:27 msgid "Fully aligned" -msgstr "" +msgstr "Voll zugeordnet" #: dmarc/templates/dmarc/domain_report.html:22 #: dmarc/templates/dmarc/domain_report.html:28 msgid "Partially aligned" -msgstr "" +msgstr "Teilweise zugeordnet" #: dmarc/templates/dmarc/domain_report.html:23 #: dmarc/templates/dmarc/domain_report.html:29 msgid "Forwarded" -msgstr "" +msgstr "Weitergeleitet" #: dmarc/templates/dmarc/domain_report.html:24 #: dmarc/templates/dmarc/domain_report.html:30 msgid "Failed" -msgstr "" +msgstr "Fehlgeschlagen" #: dmarc/templates/dmarc/domain_report.html:52 msgid "DMARC report for" -msgstr "" +msgstr "DMARC-Bericht für" #: dmarc/templates/dmarc/domain_report.html:76 msgid "processed" -msgstr "" +msgstr "durchgeführt" #: dmarc/templates/dmarc/domain_report.html:85 msgid "fully aligned" -msgstr "" +msgstr "voll zugeordnet" #: dmarc/templates/dmarc/domain_report.html:94 msgid "partially aligned" -msgstr "" +msgstr "teilweise zugeordnet" #: dmarc/templates/dmarc/domain_report.html:103 msgid "forwarded" -msgstr "" +msgstr "weitergeleitet" #: dmarc/templates/dmarc/domain_report.html:112 msgid "failed" -msgstr "" +msgstr "fehlgeschlagen" #: dmarc/templates/dmarc/domain_report.html:122 msgid "Display details" -msgstr "" +msgstr "Anzeigedetails" #: dmarc/templates/dmarc/domain_report.html:126 msgid "Trusted sources" -msgstr "" +msgstr "Vertraute Quellen" #: dmarc/templates/dmarc/domain_report.html:134 msgid "Partially trusted sources / Forwarders" -msgstr "" +msgstr "Teilweise vertrauenswürdige Quellen/Weiterleitungen" #: dmarc/templates/dmarc/domain_report.html:142 msgid "Forwarders with ARC" -msgstr "" +msgstr "Weiterleitungen mit ARC" #: dmarc/templates/dmarc/domain_report.html:150 msgid "Unknown sources / Threats" -msgstr "" +msgstr "Unbekannte Quellen / Bedrohungen" #: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" @@ -3079,7 +3016,7 @@ msgstr "Keine ganze Zahl" #: dnstools/lib.py:236 msgid " less than {}" -msgstr "weniger als {}" +msgstr "kleiner als {}" #: dnstools/lib.py:239 msgid " greater than {}" @@ -3159,60 +3096,57 @@ msgid "DNS configuration for {}" msgstr "DNS-Konfiguration für {}" #: imap_migration/api/v2/serializers.py:117 -#, fuzzy -#| msgid "Access updated" msgid "Access denied" -msgstr "Zugang aktualisiert" +msgstr "Zugriff verweigert" #: imap_migration/app_settings.py:23 imap_migration/app_settings.py:102 -#, fuzzy -#| msgid "Enable communication" msgid "Enable IMAP Migration" -msgstr "Verbindung aktivieren" +msgstr "IMAP-Migration aktivieren" #: imap_migration/app_settings.py:24 imap_migration/app_settings.py:104 -#, fuzzy -#| msgid "Enable communication" msgid "Enable IMAP Migration." -msgstr "Verbindung aktivieren" +msgstr "IMAP-Migration aktivieren." #: imap_migration/app_settings.py:34 msgid "OfflineIMAP" -msgstr "" +msgstr "OfflineIMAP" #: imap_migration/app_settings.py:40 imap_migration/app_settings.py:110 msgid "Concurrent sync jobs" -msgstr "" +msgstr "Gleichzeitige Synchronisierungsaufgaben" #: imap_migration/app_settings.py:42 imap_migration/app_settings.py:112 msgid "The maximum number of concurrent synchronization jobs" -msgstr "" +msgstr "Die maximale Anzahl von gleichzeitigen Synchronisierungsaufgaben" #: imap_migration/app_settings.py:53 msgid "OfflineIMAP Filter" -msgstr "" +msgstr "OfflineIMAP Filter" #: imap_migration/app_settings.py:59 imap_migration/app_settings.py:118 msgid "Create Folders" -msgstr "" +msgstr "Erstelle Ordner" #: imap_migration/app_settings.py:61 imap_migration/app_settings.py:120 msgid "Allow Creation of missing folders during sync" msgstr "" +"Erlaube die Erstellung von fehlenden Ordnern während der Synchronisation" #: imap_migration/app_settings.py:68 imap_migration/app_settings.py:125 msgid "Folder Filter Exclusions" -msgstr "" +msgstr "Ordnerfilter Ausschlüsse" #: 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 "" +"Benutze eine RegExp, um explizit Odner in die Synchronisation einzubeziehen. " +"Beispiel: ^Trash$|Del" #: imap_migration/app_settings.py:78 imap_migration/app_settings.py:135 msgid "Folder Filter Inclusions" -msgstr "" +msgstr "Ordnerfilter einbeziehen" #: imap_migration/app_settings.py:80 imap_migration/app_settings.py:138 msgid "" @@ -3220,76 +3154,76 @@ msgid "" "filtered by the Folder Filter Exclusions. Example: debian.user, debian." "personal " msgstr "" +"Eine kommaseparierte Liste von Ordnern, die explizit in die Synchronisierung " +"einbezogen werden sollen, auch wenn sie durch die Ordnerfilter-Ausschlüsse " +"gefiltert wurden. Beispiel: debian.user, debian.personal " #: imap_migration/app_settings.py:107 -#, fuzzy -#| msgid "LDAP settings" msgid "OfflineIMAP settings" -msgstr "LDAP-Einstellungen" +msgstr "OfflineIMAP-Einstellungen" #: imap_migration/app_settings.py:115 msgid "OfflineIMAP Filter settings" -msgstr "" +msgstr "OfflineIMAP Filter Einstellungen" #: imap_migration/apps.py:18 imap_migration/apps.py:23 -#, fuzzy -#| msgid "Auto configuration" msgid "IMAP Migration" -msgstr "Automatische Konfiguration" +msgstr "IMAP-Migration" #: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" -msgstr "" +msgstr "Verbindung zu IMAP-Server fehlgeschlagen: %s" #: imap_migration/checks.py:12 msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." msgstr "" +"Automatische Domain/Mailbox-Erstellung ist deaktiviert, daher funktioniert " +"die IMAP-Authentifizierung nicht." #: imap_migration/checks.py:16 msgid "" "Go to the online parameters panel (admin tab) and activate this feature." msgstr "" +"Wechseln Sie zu den Online Parametern (Admin Tab) und aktivieren Sie diese " +"Funktion." #: imap_migration/templates/imap_migration/index.html:6 -#, fuzzy -#| msgid "Auto configuration" msgid "IMAP migration" -msgstr "Automatische Konfiguration" +msgstr "IMAP-Migration" #: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" -msgstr "LDAP-Konto konnte nicht erstellt werden: {}" +msgstr "LDAP-Account konnte nicht angelegt werden: {}" #: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" -msgstr "LDAP-Konto konnte nicht aktualisiert werden: {}" +msgstr "LDAP-Account konnte nicht aktualisiert werden: {}" #: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" -msgstr "Fehler beim Löschen des LDAP-Kontos: {}" +msgstr "LDAP-Account konnte nicht gelöscht werden: {}" #: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" -msgstr "Fehler beim Deaktivieren des LDAP-Kontos: {}" +msgstr "LDAP-Account konnte nicht deaktiviert werden: {}" #: 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" +#, python-format msgid "Failed to communicate with public API: %s" -msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa" +msgstr "Die Kommunikation mit der öffentlichen API ist fehlgeschlagen: %s" #: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" -msgstr "Verbindung zur Datenbank %s nicht konfiguriert" +msgstr "Verbindung zu Datenbank %s nicht konfiguriert" #: lib/email_utils.py:139 lib/email_utils.py:350 msgid "unable to determine encoding of string" -msgstr "Codierung der Zeichenkette konnte nicht bestimmt werden" +msgstr "Kodierung der Zeichenkette konnte nicht bestimmt werden" #: lib/exceptions.py:83 #, python-format @@ -3302,7 +3236,7 @@ msgstr "Zugriff verweigert" #: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" -msgstr "Geben Sie einen gültigen Domänennamen ein" +msgstr "Geben Sie einen gültigen Domain-Namen an" #: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." @@ -3316,7 +3250,7 @@ msgstr "Abschicken" #: lib/ldap_utils.py:126 msgid "Failed to update password: {}" -msgstr "Passwort konnte nicht aktualisiert werden: {}" +msgstr "Ändern des Passworts fehlgeschlagen: {}" #: lib/templatetags/lib_tags.py:120 templates/common/email_searchbar.html:17 msgid "Subject" @@ -3324,184 +3258,206 @@ msgstr "Betreff" #: limits/app_settings.py:17 limits/app_settings.py:147 msgid "Default per-admin limits" -msgstr "" +msgstr "Standardgrenzen je Admin" #: limits/app_settings.py:20 limits/app_settings.py:153 msgid "Enable per-admin limits" -msgstr "" +msgstr "Aktiviere Grenzen je Admin" #: limits/app_settings.py:22 limits/app_settings.py:154 msgid "Enable or disable per-admin limits" -msgstr "" +msgstr "Aktiviere oder deaktiviere Grenzen je Admin" #: 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 -#, fuzzy -#| msgid "Domain administrator" msgid "Domain admins" -msgstr "Domain-Administrator" +msgstr "Domain-Administratoren" #: 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 "" +"Maximale Anzahl Domänenadministratoren, die ein neuer Administrator " +"erstellen darf. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl an erlaubten Domänen für einen neuen Administrator. (0 für " +"generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl an erlaubten Domänen-Alias für einen neuen Administrator. (0 " +"für generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl an erlaubten Postfächern für einen neuen Administrator. (0 " +"für generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl an erlaubten Alias für einen neuen Administrator. (0 für " +"generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Das Kontingent, das ein Wiederverkäufer zwischen den von ihm erstellten " +"Domänen aufteilen kann. (0 bedeutet kein Kontingent)" #: limits/app_settings.py:82 limits/app_settings.py:232 msgid "Default per-domain limits" -msgstr "" +msgstr "Standardgrenzen je Domäne" #: limits/app_settings.py:85 limits/app_settings.py:238 msgid "Enable per-domain limits" -msgstr "" +msgstr "Aktiviere Grenzen je Domäne" #: limits/app_settings.py:87 limits/app_settings.py:239 msgid "Enable or disable per-domain limits" -msgstr "" +msgstr "Aktiviere oder deaktiviere Grenzen je Domäne" #: 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 "" +"Maximale Anzahl der zulässigen Domänenadministratoren für eine neue Domäne. " +"(0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl der erlaubten Domänen-Aliase für eine neue Domain. (0 für " +"generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl der zulässigen Postfächer für eine neue Domäne. (0 für " +"generelles Verbieten, -1 für unbeschränktes Erstellen)" #: 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 "" +"Maximale Anzahl der erlaubten Aliase für eine neue Domäne. (0 für generelles " +"Verbieten, -1 für unbeschränktes Erstellen)" #: limits/apps.py:13 limits/apps.py:17 msgid "Limits" -msgstr "" +msgstr "Grenzwerte" #: limits/constants.py:14 msgid "Maximum number of domains this user can create" -msgstr "" +msgstr "Maximale Anzahl Domains, die dieser Benutzer erstellen darf" #: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "" +msgstr "Maximale Anzahl Domain Aliase, die dieser Benutzer erstellen darf" #: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" -msgstr "" +msgstr "Maximale Anzahl Mailboxen, die dieser Benutzer erstellen darf" #: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "" +msgstr "Maximale Anzahl Mailbox-Aliase, die dieser Benutzer erstellen darf" #: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "" +msgstr "Maximale Anzahl Domains, die ein Administrator erstellen darf" #: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "" +"Gemeinsame Nutzung des Kontingents durch die Domänen dieses Wiederverkäufers" #: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." -msgstr "" +msgstr "Maximale Anzahl der für diese Domäne zulässigen Domänen-Aliase." #: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." -msgstr "" +msgstr "Maximale Anzahl von Postfächern, die für diese Domäne zulässig sind." #: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "" +msgstr "Maximale Anzahl der für diese Domäne zulässigen Mailbox-Aliase." #: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "" +"Maximale Anzahl von Domänenadministratoren, die für diese Domäne zugelassen " +"sind." #: limits/forms.py:38 limits/forms.py:88 -#, fuzzy -#| msgid "Invalid line" msgid "Invalid limit" -msgstr "Ungültige Zeile" +msgstr "Ungültiger Grenzwert" #: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" -msgstr "" +msgstr "Ressourcen" #: limits/lib.py:19 #, python-format msgid "%s: limit reached" -msgstr "" +msgstr "%s: Grenze erreicht" #: limits/lib.py:29 msgid "Not enough resources" -msgstr "" +msgstr "Nicht ausreichend Ressourcen" #: limits/lib.py:46 limits/models.py:46 msgid "You're not allowed to define unlimited values" msgstr "" +"Sie verfügen nicht über die erforderlichen Rechte, um unbegrenzte Werte " +"anzugeben" #: limits/models.py:56 limits/models.py:119 msgid "unlimited" -msgstr "" +msgstr "unbegrenzt" #: limits/templates/limits/poolusage.html:3 #: limits/templates/limits/resources_widget.html:5 msgid "Resources usage" -msgstr "" +msgstr "Ressourcen-Verbrauch" #: maillog/api/v2/serializers.py:35 msgid "You must provide start and end dates when period is custom" msgstr "" +"Sie müssen Anfangs- und Enddatum angeben, wenn der Zeitraum " +"benutzerdefiniert ist." #: maillog/apps.py:20 maillog/forms.py:23 msgid "Path to the log file" -msgstr "Pfad zur Protokolldatei" +msgstr "Pfad zur Log-Datei" #: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" -msgstr "" -"Pfad zur Protokolldatei, die zum Sammeln von Statistiken verwendet wird" +msgstr "Pfad zur Log-Datei, um Statistiken zu sammeln" #: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" @@ -3509,15 +3465,15 @@ msgstr "Ablageverzeichnis für RRD-Dateien" #: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" -msgstr "Pfad zum Verzeichnis, in dem RRD-Dateien gespeichert sind" +msgstr "Pfad zum Verzeichnis in dem die RRD-Dateien abgelegt werden" #: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" -msgstr "Zeige Greylisted E-Mails" +msgstr "Grey-gelistete E-Mails anzeigen" #: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" -msgstr "Unterscheide zwischen Hard- und Soft-Rejects (Greylisting)" +msgstr "Unterscheidung zwischen Hard- und Soft-Rejects (Greylisting)" #: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" @@ -3525,11 +3481,11 @@ msgstr "Statistiken" #: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." -msgstr "rrdtool-Binärdatei konnte nicht gefunden werden." +msgstr "RRDTool Binary konnte nicht gefunden werden" #: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" -msgstr "Durchschnittlicher Datenverkehr (Nachrichten/Min.)" +msgstr "Durchschnittlicher Traffic (Nachrichten/min)" #: maillog/graphics.py:171 msgid "sent messages" @@ -3541,7 +3497,7 @@ msgstr "Empfangene Nachrichten" #: maillog/graphics.py:173 msgid "bounced messages" -msgstr "Unzustellbare Nachrichten" +msgstr "Zurückgeworfene Nachrichten" #: maillog/graphics.py:174 msgid "rejected messages" @@ -3557,19 +3513,19 @@ msgstr "Spam E-Mails" #: maillog/graphics.py:183 msgid "greylisted messages" -msgstr "Greylisted E-Mails" +msgstr "Grey-gelistete E-Mails" #: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" -msgstr "Durchschnittlicher Datenverkehr (Bytes/Min)" +msgstr "Durchschnittliche Traffic-Menge (Bytes/min)" #: maillog/graphics.py:203 msgid "received size" -msgstr "Empfangene Daten" +msgstr "Empfangsgröße" #: maillog/graphics.py:204 msgid "sent size" -msgstr "Gesendete Daten" +msgstr "Versendegröße" #: maillog/graphics.py:211 msgid "Mail traffic" @@ -3593,15 +3549,15 @@ msgstr "Grafische Statistiken" #: maillog/templates/maillog/index.html:44 msgid "Search a domain" -msgstr "Suche eine Domäne" +msgstr "Domain suchen" #: maillog/templates/maillog/index.html:77 msgid "Apply" -msgstr "Anwenden" +msgstr "Antworten" #: maillog/views.py:33 msgid "No statistics available" -msgstr "Keine Statistiken verfügbar" +msgstr "Keine Statistik-Daten verfügbar" #: maillog/views.py:39 msgid "Day" @@ -3625,7 +3581,7 @@ msgstr "Benutzerdefiniert" #: maillog/views.py:66 msgid "Unknown graphic set" -msgstr "Unbekannter Grafiksatz" +msgstr "Unbekanntes graphisches Set" #: maillog/views.py:71 msgid "Unknown domain" @@ -3633,187 +3589,174 @@ msgstr "Unbekannte Domäne" #: maillog/views.py:76 msgid "Bad custom period" -msgstr "Ungültiger benutzerdefinierter Zeitraum" +msgstr "Ungültiger individueller Zeitraum" #: 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 "Aktualisieren Sie Ihre persönlichen Daten" +msgstr "Persönliche Kontoinformationen" #: pdfcredentials/api/v2/serializers.py:61 -#, fuzzy -#| msgid "Directory to store RRD files" msgid "Directory is not writable" -msgstr "Ablageverzeichnis für RRD-Dateien" +msgstr "Verzeichnis ist nicht beschreibbar" #: pdfcredentials/api/v2/serializers.py:82 pdfcredentials/views.py:26 msgid "No document available for this user" -msgstr "" +msgstr "Kein Dokument für diesen Benutzer verfügbar" #: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 -#, fuzzy -#| msgid "Enable API access" msgid "Enable PDF credentials" -msgstr "API-Zugriff aktivieren" +msgstr "PDF-Anmeldeinformationen aktivieren" #: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 msgid "Enabled PDF credentials document generation on account creation." msgstr "" +"Die Erstellung von PDF-Anmeldedokumenten bei der Kontoerstellung wurde " +"aktiviert." #: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" -msgstr "" +msgstr "Dokumentenablage" #: pdfcredentials/app_settings.py:48 pdfcredentials/app_settings.py:206 -#, fuzzy -#| msgid "Directory to store RRD files" msgid "Directory to save documents into" -msgstr "Ablageverzeichnis für RRD-Dateien" +msgstr "Speicherpfad für Dokumente" #: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 -#, fuzzy -#| msgid "Path to directory where RRD files are stored" msgid "Path to a directory where PDF documents will be saved" -msgstr "Pfad zum Verzeichnis, in dem RRD-Dateien gespeichert sind" +msgstr "Dateipfad in dem die PDF-Dokumente abgelegt werden" #: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 -#, fuzzy -#| msgid "Security" msgid "Security options" -msgstr "Sicherheit" +msgstr "Sicherheitseinstellungen" #: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:214 msgid "Delete documents after the first download" -msgstr "" +msgstr "Lösche Dokumente nach dem ersten Download" #: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 msgid "" "Automatically delete a document just after its first download from this " "interface" msgstr "" +"Löscht automatisch das Dokument, wenn es das erste Mal über dieses " +"Oberfläche heruntergeladen wurde" #: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223 msgid "Generate documents only at account creation" -msgstr "" +msgstr "Erzeuge Dokumente nur wenn ein Konto angelegt wurde" #: 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 "" +"Erzeuge ein neues Dokument nur wenn ein neues Konto erstellt wurde. Wenn die " +"Option auf Nein steht wird jedes Mal ein neues Dokument erstellt, wenn ein " +"Passwort aktualisiert wurde." #: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" -msgstr "" +msgstr "Individuell angepasste Optionen" #: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" -msgstr "" +msgstr "Titel" #: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:237 msgid "The document's title" -msgstr "" +msgstr "Titel des Dokuments" #: pdfcredentials/app_settings.py:107 pdfcredentials/app_settings.py:241 msgid "Web panel url" -msgstr "" +msgstr "URL der Webanwendung" #: pdfcredentials/app_settings.py:108 pdfcredentials/app_settings.py:241 msgid "URL of the Modoboa web panel" -msgstr "" +msgstr "URL der Modoboa Webanwendung" #: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 -#, fuzzy -#| msgid "spam messages" msgid "Custom message" -msgstr "Spam E-Mails" +msgstr "Eigener Nachrichtentext" #: pdfcredentials/app_settings.py:116 pdfcredentials/app_settings.py:246 msgid "A custom message that will appear at the end of documents" -msgstr "" +msgstr "Eine eigene Nachricht, die am Ende des Dokuments angezeigt wird" #: pdfcredentials/app_settings.py:123 pdfcredentials/app_settings.py:251 msgid "Include mail client connection settings" -msgstr "" +msgstr "Verbindungseinstellungen für Mailprogramme einschließen" #: 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 "" +"Erforderliche SMTP und IMAP Einstellungen zur Konfiguration von " +"Mailprogramme, Tablets oder Telefonen" #: pdfcredentials/app_settings.py:133 pdfcredentials/app_settings.py:260 #: pdfcredentials/documents.py:133 -#, fuzzy -#| msgid "Server address" msgid "SMTP server address" -msgstr "Serveradresse" +msgstr "SMTP Serveradresse" #: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261 msgid "Address of the SMTP server (hostname or IP)" -msgstr "" +msgstr "Adresse des SMTP-Servers (Hostname oder IP)" #: pdfcredentials/app_settings.py:143 pdfcredentials/app_settings.py:265 #: pdfcredentials/documents.py:134 -#, fuzzy -#| msgid "Server port" msgid "SMTP server port" -msgstr "Server Port" +msgstr "SMTP Server-Port" #: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267 msgid "Listening port of the SMTP server" -msgstr "" +msgstr "Port, auf dem der SMTP-Server erreicht werden kann" #: pdfcredentials/app_settings.py:151 pdfcredentials/app_settings.py:271 #: pdfcredentials/documents.py:135 msgid "SMTP connection security" -msgstr "" +msgstr "SMTP-Verbindungssicherheit" #: 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 "" +msgstr "Mechanismus zur Verbindungssicherung" #: pdfcredentials/app_settings.py:159 pdfcredentials/app_settings.py:278 #: pdfcredentials/documents.py:136 -#, fuzzy -#| msgid "Server address" msgid "IMAP server address" -msgstr "Serveradresse" +msgstr "IMAP Serveradresse" #: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279 msgid "Address of the IMAP server (hostname or IP)" -msgstr "" +msgstr "Adresse des IMAP-Servers (Hostname oder IP)" #: pdfcredentials/app_settings.py:169 pdfcredentials/app_settings.py:283 #: pdfcredentials/documents.py:137 -#, fuzzy -#| msgid "Server port" msgid "IMAP server port" -msgstr "Server Port" +msgstr "IMAP Server-Port" #: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285 msgid "Listening port of the IMAP server" -msgstr "" +msgstr "Port, auf dem der IMAP-Servier erreicht werden kann" #: pdfcredentials/app_settings.py:177 pdfcredentials/app_settings.py:289 #: pdfcredentials/documents.py:138 msgid "IMAP connection security" -msgstr "" +msgstr "IMAP Verbindungssicherheit" #: pdfcredentials/apps.py:19 msgid "PDF credentials" -msgstr "" +msgstr "PDF Anmeldeinformationen" #: pdfcredentials/apps.py:24 msgid "PDF Credentials" -msgstr "" +msgstr "PDF-Anmeldeinformationen" #: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" -msgstr "" +msgstr "Powered by Modoboa - Mail hosting made simple" #: pdfcredentials/documents.py:84 #, python-format @@ -3823,10 +3766,14 @@ msgid "" "to connect to Modoboa. Learn the content and destroy\n" "the document as soon as possible.\n" msgstr "" +"\n" +"Liebe/r %s, dieses Dokument enthält die Anmeldeinformationen, die Du " +"benötigst um Dich mit Modoboa zu verbinden. Präge Dir bitte die " +"Informationen ein und lösche anschliessend dieses Dokument.\n" #: pdfcredentials/documents.py:95 msgid "Web panel:" -msgstr "" +msgstr "Webanwendung:" #: pdfcredentials/documents.py:116 msgid "" @@ -3834,22 +3781,21 @@ msgid "" "Here you can view your emails anytime online, create filters or manage\n" "your contacts.\n" msgstr "" +"\n" +"Hier können Sie Ihre Emails online ansehen, Filter oder Kontakte erstellen.\n" #: pdfcredentials/documents.py:126 -#, fuzzy -#| msgid "Change password" msgid "Please change your password!" -msgstr "Passwort ändern" +msgstr "Bitte ändern Sie Ihr Passwort!" #: pdfcredentials/documents.py:130 -#, fuzzy -#| msgid "Auto configuration" msgid "PC/Tablet/Smartphone configuration:" -msgstr "Automatische Konfiguration" +msgstr "PC/Tablet/Smartphone Konfiguration:" #: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "" +"Verwenden Sie diese Einstellungen für Ihren Computer, Ihr Tablet oder Telefon" #: pdfcredentials/handlers.py:35 msgid "" @@ -3859,20 +3805,24 @@ msgstr "" #: pdfcredentials/handlers.py:61 msgid "Retrieve user's credentials as a PDF document" -msgstr "" +msgstr "Erhalte die Anmeldeinformationen des Benutzer als ein PDF-Dokument" #: pdfcredentials/handlers.py:82 msgid "Download PDF credentials" -msgstr "" +msgstr "PDF-Anmeldeinformationen herunterladen" #: pdfcredentials/lib.py:28 msgid "Can't write to selected directory to store PDF documents" msgstr "" +"Es kann nicht in das ausgewählte Verzeichnis zum Speichern von PDF-" +"Dokumenten geschrieben werden." #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "" +"Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) " +"enthält, aufgetreten. " #: pdfcredentials/lib.py:81 msgid "" @@ -3881,8 +3831,10 @@ msgid "" msgstr "" #: policyd/core.py:88 +#, fuzzy +#| msgid "%s: limit reached" msgid "Daily sending limit reached" -msgstr "" +msgstr "%s: Grenze erreicht" #: policyd/core.py:125 msgid "[modoboa] Sending limit reached" @@ -3897,17 +3849,19 @@ msgstr "" #, fuzzy #| msgid "This code is invalid" msgid "This date is over" -msgstr "Dieser Code ist ungültig" +msgstr "Dieser Code ist Falsch" #: postfix_autoreply/api/v2/serializers.py:30 postfix_autoreply/forms.py:90 +#, fuzzy +#| msgid "Cannot be greater than domain quota" msgid "Must be greater than start date" -msgstr "" +msgstr "Kann nicht größer als Domain Kontingent sein" #: postfix_autoreply/apps.py:12 postfix_autoreply/forms.py:163 #, fuzzy -#| msgid "Inactive account threshold" +#| msgid "Automatic account removal" msgid "Automatic replies" -msgstr "Schwellwert für inaktive Konten" +msgstr "Automatische Konto-Entfernung" #: postfix_autoreply/forms.py:23 msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" @@ -3951,8 +3905,10 @@ msgid "" msgstr "" #: postfix_autoreply/forms.py:129 +#, fuzzy +#| msgid "Default domain quota" msgid "Default content" -msgstr "" +msgstr "Standard-Domainquota" #: postfix_autoreply/forms.py:131 #, python-format @@ -3973,9 +3929,9 @@ msgstr "" #: postfix_autoreply/handlers.py:118 #: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 #, fuzzy -#| msgid "spam messages" +#| msgid "Custom message" msgid "Auto-reply message" -msgstr "Spam E-Mails" +msgstr "Eigener Nachrichtentext" #: postfix_autoreply/handlers.py:131 msgid "Auto reply" @@ -4012,34 +3968,28 @@ msgid "Auto reply message updated successfully." msgstr "" #: relaydomains/api/v1/serializers.py:24 -#, fuzzy -#| msgid "Update password service URL" msgid "Unsupported service" -msgstr "URL des Kennwortdienstes aktualisieren" +msgstr "Dienst wird nicht unterstützt" #: relaydomains/handlers.py:64 msgid "Transport settings" -msgstr "" +msgstr "Transport Einstellungen" #: relaydomains/handlers.py:89 msgid "Transport" -msgstr "" +msgstr "Transport" #: relaydomains/transport.py:16 -#, fuzzy -#| msgid "From address" msgid "target host address" -msgstr "Absender-Adresse" +msgstr "Ziel-Host Adresse" #: relaydomains/transport.py:21 msgid "target host port" -msgstr "" +msgstr "Ziel-Host Port" #: relaydomains/transport.py:27 -#, fuzzy -#| msgid "Recipient" msgid "verify recipients" -msgstr "Empfänger" +msgstr "Empfänger verifizieren" #: templates/404.html:4 templates/500.html:4 msgid "Sorry" @@ -4055,7 +4005,7 @@ msgstr "Ein interner Fehler ist aufgetreten." #: templates/common/email_searchbar.html:5 msgid "Search..." -msgstr "Suchen ..." +msgstr "Suchen..." #: templates/common/email_searchbar.html:10 msgid "From address" @@ -4084,15 +4034,15 @@ msgstr "Weiter" #: templates/nlayout.html:57 msgid "New admin" -msgstr "" +msgstr "Neuer Administrator" #: templates/registration/base.html:8 msgid "Welcome to Modoboa" -msgstr "Willkommen bei Modoboa" +msgstr "Willkommen zu Modoboa" #: templates/registration/login.html:21 msgid "Remember me" -msgstr "Login speichern" +msgstr "An mich erinnern" #: templates/registration/login.html:23 msgid "Log in" @@ -4110,7 +4060,7 @@ msgid "" "in now." msgstr "" "Ihr Passwort wurde geändert. Sie können sich jetzt anmelden." +"href=\"%(url)s\">anmelden ." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" @@ -4126,7 +4076,7 @@ msgstr "" #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" -msgstr "Geben Sie den Code ein, den Sie soeben per SMS erhalten haben" +msgstr "Gib den Code der per SMS zugestellt wurde" #: templates/registration/password_reset_confirm_code.html:27 msgid "Resend code" @@ -4143,7 +4093,7 @@ msgstr "" "geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse " "vorhanden ist. Sie sollten sie in Kürze erhalten.

        Wenn Sie keine E-" "Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse " -"eingegeben haben und überprüfen Sie Ihren Spam-Ordner.

        " +"eingegeben haben und überprüfen Sie Ihren Spamordner.

        " #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 @@ -4152,8 +4102,8 @@ msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" msgstr "" -"Um den Vorgang zum Zurücksetzen des Passworts für Ihr %(username)s Modoboa-" -"Konto zu beginnen, klicken Sie auf folgenden Link:" +"Um das Passwort für Ihr %(username)s Modoboa Konto zurück zu setzen, klicken " +"Sie bitte auf den folgenden Link:" #: templates/registration/password_reset_email.html:10 #: templates/registration/password_reset_email_v2.html:10 @@ -4161,7 +4111,7 @@ msgid "" "If clicking the link above doesn't work, please copy and paste the URL in a " "new browser window instead." msgstr "" -"Falls der obere Link nicht funktioniert, kopieren Sie diesen bitte in ein " +"Falls der Link oben nicht funktioniert, kopieren Sie diesen bitte in ein " "neues Browser-Fenster." #: templates/registration/password_reset_email.html:14 @@ -4171,26 +4121,42 @@ msgstr "Mit freundlichen Grüßen, das Modoboa Team." #: templates/registration/password_reset_form.html:24 msgid "Please fill-in your primary email address" -msgstr "Bitte geben Sie Ihre primäre E-Mail-Adresse ein" +msgstr "Bitte die Primäre Email-Adresse eingeben" #: templates/registration/password_reset_subject.txt:3 msgid "Modoboa password reset" msgstr "Modoboa Passwort zurücksetzen" #: transport/backends.py:55 -#, fuzzy -#| msgid "Invalid line" msgid "Invalid value" -msgstr "Ungültige Zeile" +msgstr "Ungültiger Wert" #: transport/models.py:15 msgid "pattern" -msgstr "" +msgstr "Muster" #: transport/models.py:16 msgid "service" -msgstr "" +msgstr "Dienst" #: transport/models.py:17 msgid "next hop" -msgstr "" +msgstr "nächster Hop" + +#~ msgid "An alias with this name already exists." +#~ msgstr "Ein Alias mit diesem Namen existiert bereits." + +#~ msgid "md5crypt (weak)" +#~ msgstr "md5crypt (schwach)" + +#~ msgid "sha256 (weak)" +#~ msgstr "sha256 (schwach)" + +#~ msgid "md5 (weak)" +#~ msgstr "md5 (schwach)" + +#~ msgid "crypt (weak)" +#~ msgstr "crypt (schwach)" + +#~ msgid "plain (weak)" +#~ msgstr "plain (schwach)" From 415dce1188dcfff6d26ab681787d0ad6194506b4 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 20 Mar 2024 10:40:05 +0100 Subject: [PATCH 10/10] Use translation file from master --- modoboa/locale/de/LC_MESSAGES/django.po | 2087 +++++++++-------------- 1 file changed, 834 insertions(+), 1253 deletions(-) diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po index eb017b7b2..fdd602708 100644 --- a/modoboa/locale/de/LC_MESSAGES/django.po +++ b/modoboa/locale/de/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Alexander Dube , 2017 # A L , 2016 @@ -44,590 +44,528 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-20 10:38+0100\n" +"POT-Creation-Date: 2023-04-20 14:11+0200\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: Daniel Schubert, 2024\n" "Language-Team: German (http://app.transifex.com/tonio/modoboa/language/de/)\n" -"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 +#: 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 "" -"Von Postfächern gemeinsam genutzter Speicherplatz. Kann in KB, MB " -"(Voreinstellung) oder GB angegeben werden. Der Wert 0 bedeutet keinen " -"Speicherplatz." +msgstr "Von Postfächern gemeinsam genutzter Speicherplatz. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. Der Wert 0 bedeutet keinen Speicherplatz." -#: admin/api/v1/serializers.py:49 +#: admin/api/v1/serializers.py:42 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgstr "" -"Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet " -"unlimitiertes Kontingent." +msgstr "Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet unlimitiertes Kontingent." -#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 +#: admin/api/v1/serializers.py:73 admin/forms/domain.py:108 msgid "No authorized MX record found for this domain" msgstr "Kein autorisierter MX-Eintrag für diese Domain gefunden." -#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160 +#: admin/api/v1/serializers.py:91 admin/forms/domain.py:150 msgid "Cannot be greater than domain quota" msgstr "Kann nicht größer als Domain Kontingent sein" -#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:384 -#: admin/api/v2/serializers.py:482 admin/models/alias.py:38 +#: admin/api/v1/serializers.py:123 admin/api/v1/serializers.py:318 +#: admin/api/v2/serializers.py:479 admin/models/alias.py:34 msgid "Permission denied." msgstr "Zugriff verweigert." -#: 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 +#: 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 #: core/api/v2/serializers.py:226 core/api/v2/serializers.py:235 -#: core/app_settings.py:582 core/app_settings.py:584 core/app_settings.py:595 +#: core/app_settings.py:608 core/app_settings.py:610 core/app_settings.py:621 #: transport/backends.py:40 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" -#: admin/api/v1/serializers.py:235 +#: admin/api/v1/serializers.py:186 msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "" -"Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." +msgstr "Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." -#: admin/api/v1/serializers.py:357 admin/api/v2/serializers.py:464 +#: admin/api/v1/serializers.py:292 admin/api/v2/serializers.py:458 msgid "Not allowed for this role." msgstr "Nicht erlaubt für diese Rolle." -#: admin/api/v1/serializers.py:375 +#: admin/api/v1/serializers.py:310 msgid "Must be equal to mailbox full_address" msgstr "Muss mit mailbox full_address übereinstimmen" -#: 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 +#: 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 msgid "This field is required." msgstr "Dieses Feld ist erforderlich" -#: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 +#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:520 msgid "Local domain {} does not exist" msgstr "Lokale Domain {} existiert nicht." -#: admin/api/v1/serializers.py:513 +#: admin/api/v1/serializers.py:445 msgid "A list of recipient" msgstr "Eine Liste der Empfänger" -#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271 -#, fuzzy -#| msgid "User '%s' already exists" -msgid "This alias already exists" -msgstr "Benutzer %s existiert bereits" - -#: admin/api/v1/serializers.py:565 +#: admin/api/v1/serializers.py:492 msgid "You don't have access to this domain." msgstr "Sie haben keinen Zugriff auf diese Domain." -#: admin/api/v1/serializers.py:574 +#: admin/api/v1/serializers.py:500 msgid "You don't have access to this mailbox." msgstr "Sie haben keinen Zugriff auf diese Mailbox." -#: admin/api/v1/viewsets.py:183 +#: admin/api/v1/viewsets.py:174 msgid "Here is your new Modoboa password: {}" msgstr "Hier ist Ihr neues Modoboa Passwort: {}" -#: admin/api/v2/serializers.py:103 admin/forms/domain.py:320 +#: admin/api/v2/serializers.py:100 admin/forms/domain.py:314 #, python-format msgid "User '%s' already exists" msgstr "Benutzer %s existiert bereits" -#: 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 +#: 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 msgid "Must be a positive integer" msgstr "Muss eine positive Ganzzahl sein" -#: admin/api/v2/serializers.py:232 admin/app_settings.py:244 -#: pdfcredentials/api/v2/serializers.py:59 +#: admin/api/v2/serializers.py:227 admin/app_settings.py:255 +#: pdfcredentials/api/v2/serializers.py:50 msgid "Directory not found." msgstr "Verzeichnis nicht gefunden." -#: admin/api/v2/serializers.py:234 +#: admin/api/v2/serializers.py:231 msgid "Directory non-writable" msgstr "Verzeichnis ist nicht schreibbar" -#: admin/api/v2/serializers.py:238 admin/app_settings.py:248 +#: admin/api/v2/serializers.py:236 admin/app_settings.py:261 msgid "openssl not found, please make sure it is installed." msgstr "openssl nicht gefunden, bitte sicherstellen, dass es installiert ist" -#: admin/api/v2/serializers.py:252 admin/app_settings.py:263 +#: admin/api/v2/serializers.py:251 admin/app_settings.py:278 msgid "This field only allows valid IP addresses (or networks)" msgstr "Dieses Feld erlaubt nur gültige IP-Adressen (oder Netzwerke)" -#: admin/api/v2/serializers.py:265 +#: admin/api/v2/serializers.py:263 msgid "Please disable imap migration before disabling this option." msgstr "Bitte IMAP Migration deaktivieren bevor Sie diese Option deaktivieren." -#: admin/api/v2/serializers.py:278 admin/app_settings.py:277 +#: admin/api/v2/serializers.py:275 admin/app_settings.py:293 msgid "Define at least one authorized network / address" msgstr "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein" -#: admin/api/v2/serializers.py:511 +#: admin/api/v2/serializers.py:508 msgid "A mailbox is required to create aliases." msgstr "Zum Erstellen von Aliassen ist ein Postfach erforderlich." -#: admin/api/v2/serializers.py:674 +#: admin/api/v2/serializers.py:649 msgid "Unknown status" msgstr "Unbekannter Status" -#: admin/api/v2/viewsets.py:84 admin/forms/account.py:379 -#: admin/forms/account.py:386 admin/forms/alias.py:97 +#: admin/api/v2/viewsets.py:75 admin/forms/account.py:365 +#: admin/forms/account.py:373 admin/forms/alias.py:91 msgid "You don't have access to this domain" msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" -#: admin/api/v2/viewsets.py:87 admin/views/domain.py:248 +#: admin/api/v2/viewsets.py:78 admin/views/domain.py:247 msgid "You can't delete your own domain" msgstr "Sie können Ihre eigene Domain nicht löschen" -#: admin/api/v2/viewsets.py:392 +#: admin/api/v2/viewsets.py:384 msgid "No alarm ID provided" msgstr "Keine Alarm-ID gegeben" -#: admin/api/v2/viewsets.py:396 +#: admin/api/v2/viewsets.py:389 msgid "Received invalid alarm id(s)" msgstr "Ungültige Alarm-ID(s) erhalten" -#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289 +#: admin/app_settings.py:23 admin/app_settings.py:300 admin/handlers.py:266 #: admin/templates/admin/_global_statistics_widget.html:11 -#: admin/templates/admin/domains.html:5 limits/app_settings.py:36 -#: limits/app_settings.py:172 limits/constants.py:13 +#: admin/templates/admin/domains.html:5 limits/app_settings.py:37 +#: limits/app_settings.py:170 limits/constants.py:9 msgid "Domains" msgstr "Domains" -#: admin/app_settings.py:26 admin/app_settings.py:295 +#: admin/app_settings.py:26 admin/app_settings.py:303 msgid "Enable MX checks" msgstr "Aktiviere MX Prüfungen" -#: admin/app_settings.py:28 admin/app_settings.py:297 +#: admin/app_settings.py:29 admin/app_settings.py:305 msgid "Check that every domain has a valid MX record" msgstr "Überprüfe jede Domain auf einen gültigen MX Eintrag" -#: admin/app_settings.py:32 admin/app_settings.py:304 +#: admin/app_settings.py:34 admin/app_settings.py:309 msgid "Valid MXs" msgstr "Gültige MX-Einträge" -#: admin/app_settings.py:35 admin/app_settings.py:307 +#: 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 "" -"Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht " -"wird, andere Einträge zu verwenden." +"A list of IP or network address every MX record should match. A warning will" +" be sent if a record does not respect it." +msgstr "Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht wird, andere Einträge zu verwenden." -#: admin/app_settings.py:43 admin/app_settings.py:317 +#: admin/app_settings.py:45 admin/app_settings.py:318 msgid "New domains must use authorized MX(s)" msgstr "Neue Domains müssen autorisierte MX-Einträge verwenden." -#: admin/app_settings.py:46 admin/app_settings.py:321 +#: 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 "Verwendung gültiger MX-Einträge wird für neue Domains erzwungen." -#: admin/app_settings.py:52 admin/app_settings.py:329 -#, fuzzy -#| msgid "Enable SPF checks" -msgid "Enable IPV6 checks" -msgstr "Aktiviere SPF-Prüfungen" - -#: 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 +#: admin/app_settings.py:54 admin/app_settings.py:326 msgid "Enable SPF checks" msgstr "Aktiviere SPF-Prüfungen" -#: admin/app_settings.py:60 admin/app_settings.py:341 +#: admin/app_settings.py:57 admin/app_settings.py:328 msgid "Check if every domain has a valid SPF record" msgstr "Überprüfe jede Domain auf einen gültigen SPF Eintrag" -#: admin/app_settings.py:64 admin/app_settings.py:348 +#: admin/app_settings.py:62 admin/app_settings.py:332 msgid "Enable DKIM checks" msgstr "Aktiviere DKIM-Prüfungen" -#: admin/app_settings.py:67 admin/app_settings.py:350 +#: admin/app_settings.py:65 admin/app_settings.py:334 msgid "Check if every domain with DKIM signin enabled has a valid DNS record" -msgstr "" -"Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS " -"Eintrag" +msgstr "Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS Eintrag" -#: admin/app_settings.py:72 admin/app_settings.py:358 +#: admin/app_settings.py:71 admin/app_settings.py:339 msgid "Enable DMARC checks" msgstr "Aktiviere DMARC-Prüfungen" -#: admin/app_settings.py:74 admin/app_settings.py:360 +#: admin/app_settings.py:74 admin/app_settings.py:341 msgid "Check if every domain has a valid DMARC record" msgstr "Überprüfe jede Domain auf einen gültigen DMARC Eintrag" -#: admin/app_settings.py:78 admin/app_settings.py:367 +#: admin/app_settings.py:79 admin/app_settings.py:345 msgid "Enable autoconfig checks" msgstr "Aktiviere autoconfig-Prüfungen" -#: admin/app_settings.py:81 admin/app_settings.py:369 +#: admin/app_settings.py:82 admin/app_settings.py:347 msgid "Check if every domain has a valid records for autoconfiguration" msgstr "Überprüfe jede Domain auf einen gültigen autoconfiguration Eintrag" -#: admin/app_settings.py:86 admin/app_settings.py:377 +#: admin/app_settings.py:87 admin/app_settings.py:352 msgid "Enable DNSBL checks" msgstr "Aktiviere DNSBL-Prüfungen" -#: admin/app_settings.py:88 admin/app_settings.py:379 +#: admin/app_settings.py:90 admin/app_settings.py:354 msgid "Check every domain against major DNSBL providers" msgstr "Prüfe jede Domain gegen die wichtigsten DNSBL-Anbieter" -#: admin/app_settings.py:92 admin/app_settings.py:386 +#: admin/app_settings.py:95 admin/app_settings.py:358 msgid "Custom DNS server" msgstr "Benutzerdefinierter DNS Server" -#: admin/app_settings.py:96 admin/app_settings.py:388 +#: admin/app_settings.py:99 admin/app_settings.py:360 msgid "Use a custom DNS server instead of local server configuration" msgstr "eigener DNS-Server umgeht die lokale Namensauflösung" -#: admin/app_settings.py:101 admin/app_settings.py:396 +#: admin/app_settings.py:104 admin/app_settings.py:365 msgid "DKIM keys storage directory" msgstr "Verzeichnis für DKIM-Keys" -#: admin/app_settings.py:104 admin/app_settings.py:398 +#: 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 "" -"Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das " -"Verzeichnis sollte nur dem root-User zugänglich sein." +msgstr "Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das Verzeichnis sollte nur dem root-User zugänglich sein." -#: admin/app_settings.py:112 admin/app_settings.py:407 +#: admin/app_settings.py:115 admin/app_settings.py:373 msgid "Default DKIM key length" msgstr "voreingestellte DKIM Schlüssellänge" -#: admin/app_settings.py:115 admin/app_settings.py:409 +#: admin/app_settings.py:119 admin/app_settings.py:375 msgid "Default length in bits for newly generated DKIM keys." msgstr "Voreingestellte Länge in Bits neu zu generierender DKIM-Keys." -#: admin/app_settings.py:119 admin/app_settings.py:416 +#: admin/app_settings.py:124 admin/app_settings.py:379 msgid "Default domain quota" msgstr "Standard-Domainquota" -#: admin/app_settings.py:122 admin/app_settings.py:418 +#: 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 "" -"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " -"Der Wert 0 bedeutet „Keine Quota“" +msgstr "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine Quota“" -#: admin/app_settings.py:128 admin/app_settings.py:426 +#: admin/app_settings.py:133 admin/app_settings.py:386 msgid "Default domain sending limit" msgstr "Standard Domänen-Sendelimit" -#: admin/app_settings.py:131 admin/app_settings.py:428 +#: 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." -msgstr "" -"Anzahl der Nachrichten, die neu erstellte Domänen pro Tag senden dürfen. " -"Leer lassen für kein Limit." +msgstr "Anzahl der Nachrichten, die neu erstellte Domänen pro Tag senden dürfen. Leer lassen für kein Limit." -#: 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 +#: 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 msgid "Mailboxes" msgstr "Postfächer" -#: admin/app_settings.py:139 admin/app_settings.py:446 +#: admin/app_settings.py:144 admin/app_settings.py:398 msgid "Handle mailboxes on filesystem" msgstr "Postfächer im Dateisystem verwalten" -#: admin/app_settings.py:142 admin/app_settings.py:448 +#: 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 "" -"Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa " -"umbenannt oder entfernt werden" +msgstr "Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa umbenannt oder entfernt werden" -#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54 -#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64 +#: 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 msgid "Default mailbox quota" msgstr "Standard Postfach Kontingent" -#: admin/app_settings.py:151 +#: 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." -msgstr "" -"Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe. " -"Der Wert 0 bedeutet „Keine Quota“" +msgstr "Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine Quota“" -#: admin/app_settings.py:157 admin/app_settings.py:467 +#: admin/app_settings.py:162 admin/app_settings.py:413 msgid "Default mailbox sending limit" msgstr "Standard-Postfach-Versandlimit" -#: admin/app_settings.py:160 admin/app_settings.py:469 +#: 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." -msgstr "" -"Anzahl der Nachrichten, die neu erstellte Postfächer pro Tag senden dürfen. " -"Leer lassen für keine Begrenzung." +msgstr "Anzahl der Nachrichten, die neu erstellte Postfächer pro Tag senden dürfen. Leer lassen für keine Begrenzung." -#: admin/app_settings.py:166 admin/app_settings.py:477 +#: admin/app_settings.py:171 admin/app_settings.py:420 msgid "Automatic account removal" msgstr "Automatische Konto-Entfernung" -#: admin/app_settings.py:169 admin/app_settings.py:479 +#: admin/app_settings.py:174 admin/app_settings.py:422 msgid "When a mailbox is removed, also remove the associated account" msgstr "Beim Löschen des Postfachs auch das Konto entfernen." -#: admin/app_settings.py:174 admin/app_settings.py:488 +#: admin/app_settings.py:178 admin/app_settings.py:426 msgid "Automatic domain/mailbox creation" msgstr "Automatische Domain- /Postfach-Erstellung" -#: admin/app_settings.py:177 admin/app_settings.py:491 -msgid "Create a domain and a mailbox when an account is automatically created." -msgstr "" -"Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt " -"wurde." +#: admin/app_settings.py:181 admin/app_settings.py:428 +msgid "" +"Create a domain and a mailbox when an account is automatically created." +msgstr "Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt wurde." -#: admin/app_settings.py:182 admin/app_settings.py:500 +#: admin/app_settings.py:187 admin/app_settings.py:434 msgid "Create an alias when a mailbox is renamed" msgstr "Erzeuge Alias, wenn Mailbox umbenannt wird." -#: admin/app_settings.py:185 admin/app_settings.py:503 +#: admin/app_settings.py:190 admin/app_settings.py:436 msgid "Create an alias using the old address when a mailbox is renamed." -msgstr "" -"Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." +msgstr "Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." -#: admin/app_settings.py:458 +#: 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." -msgstr "" -"Standard-Postfachkontingent (in MB), das auf neu erstellte Domänen ohne " -"Angabe eines Wertes angewendet wird. Ein Wert von 0 bedeutet keine " -"Begrenzung." +msgstr "Standard-Postfachkontingent (in MB), das auf neu erstellte Domänen ohne Angabe eines Wertes angewendet wird. Ein Wert von 0 bedeutet keine Begrenzung." -#: admin/app_settings.py:522 admin/app_settings.py:527 +#: admin/app_settings.py:451 admin/app_settings.py:453 msgid "Administration" msgstr "Verwaltung" -#: admin/constants.py:23 admin/forms/alias.py:43 +#: admin/constants.py:28 admin/forms/alias.py:43 #: admin/templates/admin/_per_domain_statistics_widget.html:7 #: admin/templates/admin/domains_quota_headers.html:2 msgid "Domain" msgstr "Domain" -#: admin/constants.py:24 +#: admin/constants.py:29 msgid "Relay domain" msgstr "Relay-Domain" -#: admin/constants.py:39 +#: admin/constants.py:44 msgid "Opened" msgstr "Geöffnete" -#: admin/constants.py:40 +#: admin/constants.py:45 msgid "Closed" msgstr "Geschlossen" -#: admin/forms/account.py:29 admin/templates/admin/domain_detail.html:159 -#: core/forms.py:21 pdfcredentials/documents.py:98 +#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:159 +#: core/forms.py:23 pdfcredentials/documents.py:80 msgid "Username" msgstr "Benutzername" -#: admin/forms/account.py:31 +#: admin/forms/account.py:34 msgid "" "The user's name. Must be a valid e-mail address for simple users or " "administrators with a mailbox." -msgstr "" -"Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' " -"oder Administratoren mit einer Mailbox sein." +msgstr "Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' oder Administratoren mit einer Mailbox sein." -#: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29 +#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29 #: core/templates/core/information.html:37 msgid "Role" msgstr "Rolle" -#: admin/forms/account.py:37 +#: admin/forms/account.py:40 msgid "Choose" msgstr "Auswählen" -#: admin/forms/account.py:38 +#: admin/forms/account.py:41 msgid "What level of permission this user will have" msgstr "Rechte, die der Benutzer haben wird" -#: admin/forms/account.py:41 admin/forms/domain.py:262 +#: admin/forms/account.py:44 admin/forms/domain.py:248 msgid "Random password" msgstr "Zufälliges Passwort" -#: admin/forms/account.py:43 +#: 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 "" -"Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und " -"diese Checkbox aktivierst, wird ein neues Passwort generiert" +msgstr "Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und diese Checkbox aktivierst, wird ein neues Passwort generiert" -#: admin/forms/account.py:49 core/forms.py:25 pdfcredentials/documents.py:99 +#: admin/forms/account.py:52 core/forms.py:27 pdfcredentials/documents.py:81 msgid "Password" msgstr "Passwort" -#: admin/forms/account.py:55 core/forms.py:45 +#: admin/forms/account.py:57 core/forms.py:48 msgid "Confirmation" msgstr "Bestätigung" -#: admin/forms/account.py:57 +#: admin/forms/account.py:60 msgid "Enter the same password as above, for verification." msgstr "Passwort bestätigen" -#: admin/forms/account.py:71 +#: admin/forms/account.py:72 msgid "Enabled" msgstr "Aktiviert" -#: admin/forms/account.py:175 +#: admin/forms/account.py:167 msgid "Only super administrators are allowed for this mode" msgstr "Nur Super-Administratoren dürfen diesen Modus benutzen." -#: admin/forms/account.py:193 +#: admin/forms/account.py:186 msgid "The two password fields didn't match." msgstr "Die angegebenen Passwörter stimmen nicht überein" -#: admin/forms/account.py:206 +#: admin/forms/account.py:199 msgid "You can't disable your own account" msgstr "Sie können Ihr eigenes Konto nicht deaktivieren" -#: admin/forms/account.py:234 +#: admin/forms/account.py:226 msgid "E-mail" msgstr "E-Mail" -#: admin/forms/account.py:236 +#: admin/forms/account.py:228 msgid "Create an alias using the old address" msgstr "Erzeuge Alias mit der bisherigen Adresse" -#: admin/forms/account.py:241 admin/forms/domain.py:46 +#: admin/forms/account.py:233 admin/forms/domain.py:41 #: admin/templates/admin/account_detail.html:45 -#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:73 -#: limits/app_settings.py:218 limits/constants.py:59 +#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:78 +#: limits/app_settings.py:204 limits/constants.py:30 msgid "Quota" msgstr "Quota" -#: admin/forms/account.py:244 +#: 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 "" -"Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben " -"werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden " -"lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-" -"Administratoren)." +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-Administratoren)." -#: admin/forms/account.py:254 admin/models/domain.py:39 -#: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50 +#: admin/forms/account.py:246 admin/models/domain.py:36 +#: admin/models/mailbox.py:99 admin/templates/admin/account_detail.html:50 #: admin/templates/admin/domain_detail.html:69 msgid "Message sending limit" msgstr "Nachrichtenversand Limit" -#: admin/forms/account.py:257 admin/models/mailbox.py:95 +#: admin/forms/account.py:250 admin/models/mailbox.py:101 msgid "Number of messages this mailbox can send per day" msgstr "Anzahl der Nachrichten, die das Postfach pro Tag senden kann" -#: 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/forms/account.py:253 admin/forms/domain.py:31 #: admin/templates/admin/domain_headers.html:4 msgid "Alias(es)" msgstr "Alias(e)" -#: admin/forms/account.py:269 +#: 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(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für " -"eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu " -"erstellen. " +msgstr "Alias(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu erstellen. " -#: admin/forms/account.py:275 +#: admin/forms/account.py:262 msgid "Sender addresses" msgstr "Ab­sen­der­ad­res­sen " -#: admin/forms/account.py:278 +#: 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 "" -"Zusätzliche Absenderadresse(n) für dieses Konto. Der Benutzer kann mit " -"dieser Adresse E-Mails versenden, auch wenn sie lokal nicht vorhanden ist. " -"Geben Sie eine Adresse pro Eingabe an. Drücken Sie ENTER, um eine neue " -"Eingabe hinzuzufügen." +msgstr "Zusätzliche Absenderadresse(n) für dieses Konto. Der Benutzer kann mit dieser Adresse E-Mails versenden, auch wenn sie lokal nicht vorhanden ist. Geben Sie eine Adresse pro Eingabe an. Drücken Sie ENTER, um eine neue Eingabe hinzuzufügen." -#: admin/forms/account.py:339 admin/forms/alias.py:95 -#: admin/models/mailbox.py:308 +#: admin/forms/account.py:325 admin/forms/alias.py:88 +#: admin/models/mailbox.py:313 msgid "Domain does not exist" msgstr "Domain existiert nicht" -#: admin/forms/account.py:376 +#: admin/forms/account.py:361 msgid "Local domain does not exist" msgstr "Lokale Domain existiert nicht" -#: admin/forms/account.py:503 +#: admin/forms/account.py:476 msgid "Domain(s)" msgstr "Domain(s)" -#: admin/forms/account.py:505 +#: admin/forms/account.py:478 msgid "Domain(s) that user administrates" msgstr "Domain(s), die dieser Benutzer administriert" -#: 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:107 +#: 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 msgid "General" msgstr "Allgemein" -#: admin/forms/account.py:560 core/templates/core/user_profile.html:3 -#: core/templatetags/core_tags.py:133 +#: admin/forms/account.py:529 core/templates/core/user_profile.html:3 +#: core/templatetags/core_tags.py:116 msgid "Profile" msgstr "Profil" -#: admin/forms/account.py:566 admin/forms/account.py:659 +#: admin/forms/account.py:533 admin/forms/account.py:621 msgid "Mail" msgstr "E-Mail" -#: admin/forms/account.py:573 +#: admin/forms/account.py:536 msgid "Permissions" msgstr "Berechtigungen" -#: admin/forms/account.py:642 +#: admin/forms/account.py:604 msgid "Account updated" msgstr "Konto aktualisiert" -#: admin/forms/account.py:668 +#: admin/forms/account.py:629 msgid "New account" msgstr "Neues Konto" -#: admin/forms/account.py:679 +#: admin/forms/account.py:639 msgid "Account created" msgstr "Konto erstellt" @@ -643,83 +581,74 @@ msgstr "E-Mail Adresse" msgid "" "The alias address. To create a catchall alias, just enter the domain name " "(@domain.tld)." -msgstr "" -"Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen " -"Catchall-Alias anzulegen." +msgstr "Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen Catchall-Alias anzulegen." #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Empfänger" -#: admin/forms/alias.py:34 +#: admin/forms/alias.py:33 msgid "" "Addresses this alias will point to. Indicate only one address per input, " "press ENTER to add a new input." -msgstr "" -"Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein " -"und bestätigen Sie mit ENTER." +msgstr "Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein und bestätigen Sie mit ENTER." -#: admin/forms/alias.py:119 +#: admin/forms/alias.py:114 msgid "No recipient defined" msgstr "Keine Empfänger angegeben" -#: admin/forms/domain.py:32 +#: admin/forms/domain.py:28 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Typ" -#: admin/forms/domain.py:38 +#: admin/forms/domain.py:34 msgid "" "Alias(es) of this domain. Indicate only one name per input, press ENTER to " "add a new input." -msgstr "" -"Alias(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro " -"Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu " -"erhalten." +msgstr "Alias(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu erhalten." -#: admin/forms/domain.py:43 +#: admin/forms/domain.py:39 msgid "Key selector" msgstr "DKIM Selector" -#: admin/forms/domain.py:57 +#: admin/forms/domain.py:52 msgid "" "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " "GB. A value of 0 means no quota." -msgstr "" -"Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB " -"angegeben werden. 0 eingeben, um keine Quota zu verwenden." +msgstr "Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu verwenden." -#: admin/forms/domain.py:106 admin/handlers.py:185 +#: admin/forms/domain.py:97 admin/handlers.py:166 msgid "domain alias" msgstr "Domain-Alias" -#: admin/forms/domain.py:109 admin/forms/domain.py:185 -#: admin/forms/domain.py:192 +#: admin/forms/domain.py:100 admin/forms/domain.py:176 +#: admin/forms/domain.py:184 #, python-format msgid "A %s with this name already exists" msgstr "Ein %s mit diesem Namen existiert bereits" -#: admin/forms/domain.py:130 +#: admin/forms/domain.py:120 msgid "DKIM keys storage directory not configured" msgstr "Verzeichnis für DKIM-Keys nicht konfiguriert." -#: admin/forms/domain.py:166 +#: admin/forms/domain.py:155 msgid "You can't define an unlimited quota." msgstr "Ein unlimitiertes Kontingent ist nicht möglich." -#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107 +#: admin/forms/domain.py:176 admin/forms/domain.py:181 msgid "domain" msgstr "Domain" -#: admin/forms/domain.py:246 +#: admin/forms/domain.py:230 msgid "Create a domain administrator" msgstr "Domain-Administrator erstellen" -#: admin/forms/domain.py:248 +#: admin/forms/domain.py:233 msgid "Automatically create an administrator for this domain" msgstr "Automatisch Administrator für diese Domain anlegen" -#: admin/forms/domain.py:252 admin/templates/admin/domain_detail.html:159 +#: admin/forms/domain.py:238 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 @@ -728,55 +657,53 @@ msgstr "Automatisch Administrator für diese Domain anlegen" msgid "Name" msgstr "Name" -#: admin/forms/domain.py:255 +#: admin/forms/domain.py:241 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." -msgstr "" -"Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird " -"automatisch angehängt." +msgstr "Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird automatisch angehängt." -#: admin/forms/domain.py:264 +#: admin/forms/domain.py:251 msgid "Generate a random password for the administrator." msgstr "Zufällig generiertes Passwort für den Administrator verwenden." -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:257 msgid "With a mailbox" msgstr "Mit einem Postfach" -#: admin/forms/domain.py:271 +#: admin/forms/domain.py:260 msgid "Create a mailbox for the administrator." msgstr "Erzeuge Postfach für den Administrator." -#: admin/forms/domain.py:276 +#: admin/forms/domain.py:266 msgid "Create aliases" msgstr "Aliase erstellen" -#: admin/forms/domain.py:278 +#: admin/forms/domain.py:269 msgid "Automatically create standard aliases for this domain" msgstr "Automatisch Standard-Aliase für Domain anlegen" -#: admin/forms/domain.py:294 +#: admin/forms/domain.py:285 msgid "Invalid format" msgstr "Ungültiges Format" -#: admin/forms/domain.py:433 +#: admin/forms/domain.py:426 msgid "Domain modified" msgstr "Domain verändert" -#: admin/forms/domain.py:458 +#: admin/forms/domain.py:447 msgid "Options" msgstr "Optionen" -#: admin/forms/domain.py:467 +#: admin/forms/domain.py:455 msgid "New domain" msgstr "Neue Domain" -#: admin/forms/domain.py:481 +#: admin/forms/domain.py:468 msgid "Domain created" msgstr "Domain erstellt." -#: admin/forms/export.py:9 admin/forms/import_.py:12 +#: admin/forms/export.py:9 admin/forms/import_.py:13 msgid "Separator" msgstr "Separator" @@ -784,23 +711,23 @@ msgstr "Separator" msgid "Recipient(s)" msgstr "Empfänger" -#: admin/forms/forward.py:15 +#: admin/forms/forward.py:16 msgid "Indicate one or more recipients separated by a ','" msgstr "Geben sie einen oder mehrere, durch ',' separierte Empfänger an" -#: admin/forms/forward.py:18 +#: admin/forms/forward.py:19 msgid "Keep local copies" msgstr "Lokale Kopien behalten" -#: admin/forms/forward.py:21 +#: admin/forms/forward.py:22 msgid "Forward messages and store copies into your local mailbox" msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen" -#: admin/forms/import_.py:10 +#: admin/forms/import_.py:11 msgid "Select a file" msgstr "Wählen Sie eine Datei" -#: admin/forms/import_.py:18 +#: admin/forms/import_.py:19 msgid "Continue on error" msgstr "Bei Fehler fortfahren" @@ -808,7 +735,7 @@ msgstr "Bei Fehler fortfahren" msgid "Don't treat duplicated objects as error" msgstr "Doppelte Objekte nicht als Fehler behandeln" -#: admin/forms/import_.py:37 +#: admin/forms/import_.py:38 msgid "Crypt passwords" msgstr "Passwörter verschlüsseln" @@ -816,94 +743,93 @@ msgstr "Passwörter verschlüsseln" msgid "Check this option if passwords contained in your file are not crypted" msgstr "Auswählen, wenn Kennwörter in Datei nicht verschlüsselt sind" -#: admin/handlers.py:233 +#: admin/handlers.py:215 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" -#: admin/handlers.py:248 admin/models/mailbox.py:340 +#: admin/handlers.py:228 admin/models/mailbox.py:342 msgid "Mailbox {} already exists" msgstr "Postfach {} existiert bereits" -#: admin/handlers.py:257 +#: admin/handlers.py:236 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Konto Import fehlgeschlagen (%s): ungültiger Quota-Wert" -#: admin/handlers.py:298 +#: admin/handlers.py:276 #: admin/templates/admin/_global_statistics_widget.html:17 #: admin/templates/admin/_per_domain_statistics_widget.html:8 #: admin/templates/admin/identities.html:5 msgid "Identities" msgstr "Identitäten" -#: admin/handlers.py:316 admin/templates/admin/forward.html:2 +#: admin/handlers.py:292 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Weiterleiten" -#: admin/lib.py:47 +#: admin/lib.py:48 msgid "A mailbox is required" msgstr "Ein Postfach ist erforderlich" -#: admin/lib.py:141 +#: admin/lib.py:138 msgid "You are not allowed to import domains" msgstr "Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren." -#: admin/lib.py:150 +#: admin/lib.py:149 msgid "You are not allowed to import domain aliases." -msgstr "" -"Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." +msgstr "Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." -#: admin/lib.py:201 admin/tests/test_mx.py:154 admin/tests/test_mx.py:167 -#: admin/tests/test_mx.py:172 +#: admin/lib.py:199 admin/tests/test_mx.py:152 admin/tests/test_mx.py:161 +#: admin/tests/test_mx.py:164 #, python-format msgid "No DNS record found for %s" msgstr "Kein DNS Eintrag für %s gefunden" -#: admin/lib.py:204 +#: admin/lib.py:202 #, python-format msgid "No %(type)s record for %(name)s" msgstr "Kein %(type)s Eintrag für %(name)s" -#: admin/lib.py:208 admin/tests/test_mx.py:157 +#: admin/lib.py:206 admin/tests/test_mx.py:156 msgid "No working name servers found" msgstr "Keine funktionierenden Namensserver gefunden" -#: admin/lib.py:211 admin/tests/test_mx.py:161 +#: admin/lib.py:209 admin/tests/test_mx.py:158 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "DNS Error bei der Auflösung, konnte %s nicht auflösen" -#: admin/lib.py:215 +#: admin/lib.py:212 #, python-format msgid "DNS name is too long: %s" msgstr "DNS Name ist zu lang: %s" -#: admin/lib.py:246 +#: admin/lib.py:239 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "Fehlerhaftes IP-Adressformat für {domain}; {addr}" -#: admin/lib.py:319 +#: admin/lib.py:309 #, python-format msgid "Object already exists: %s" msgstr "Objekt existiert bereits: %s" -#: admin/lib.py:323 +#: admin/lib.py:313 #, python-format msgid "%d objects imported successfully" msgstr "%d Objekte erfolgreich importiert" -#: admin/management/commands/subcommands/_import.py:99 +#: admin/management/commands/subcommands/_import.py:93 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" msgstr "CSV Datei nicht in UTF-8 enkodiert, versuche das Encoding zu erraten" -#: admin/management/commands/subcommands/_import.py:114 +#: admin/management/commands/subcommands/_import.py:105 #, python-format msgid "Reading CSV file using %(encoding)s encoding" msgstr "Lese CSV Datei mit %(encoding)s Enkodierung" -#: admin/management/commands/subcommands/_import.py:125 +#: admin/management/commands/subcommands/_import.py:116 #, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren" @@ -912,23 +838,23 @@ msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren" msgid "DKIM path non-writable" msgstr "DKIM Pfad nicht beschreibbar" -#: admin/management/commands/subcommands/_mx.py:133 +#: admin/management/commands/subcommands/_mx.py:121 msgid "MX {} listed by DNSBL provider {}" msgstr "MX {} gelistet durch DNSBL-Anbieter {}" -#: admin/management/commands/subcommands/_mx.py:174 +#: admin/management/commands/subcommands/_mx.py:169 msgid "Domain has no MX record" msgstr "Die Domain hat kein MX-Eintrag" -#: admin/management/commands/subcommands/_mx.py:177 +#: admin/management/commands/subcommands/_mx.py:173 msgid "Domain {} has no MX record" msgstr "Domain {} hat keinen MX-Eintrag" -#: admin/management/commands/subcommands/_mx.py:195 +#: admin/management/commands/subcommands/_mx.py:193 msgid "Invalid MX record: {}" msgstr "Falscher MX-Eintrag: {}" -#: admin/management/commands/subcommands/_mx.py:202 +#: admin/management/commands/subcommands/_mx.py:199 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" @@ -937,150 +863,149 @@ msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX Problem(e) für Domain {}" -#: admin/management/commands/subcommands/_mx.py:269 +#: admin/management/commands/subcommands/_mx.py:271 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL Problem(e) für Domain {}" -#: admin/models/alias.py:36 +#: admin/models/alias.py:32 msgid "Domain not found." msgstr "Domain nicht gefunden." -#: admin/models/alias.py:91 admin/models/mailbox.py:85 +#: admin/models/alias.py:37 +msgid "An alias with this name already exists." +msgstr "Ein Alias mit diesem Namen existiert bereits." + +#: admin/models/alias.py:71 admin/models/mailbox.py:92 msgid "address" msgstr "Adresse" -#: admin/models/alias.py:93 +#: admin/models/alias.py:73 msgid "The alias address." msgstr "Die Alias-Adresse" -#: admin/models/alias.py:97 admin/models/domain.py:45 -#: admin/models/domain_alias.py:45 postfix_autoreply/models.py:23 +#: admin/models/alias.py:78 admin/models/domain.py:43 +#: admin/models/domain_alias.py:41 msgid "enabled" msgstr "aktiviert" -#: admin/models/alias.py:98 admin/models/domain_alias.py:46 +#: admin/models/alias.py:79 admin/models/domain_alias.py:42 msgid "Check to activate this alias" msgstr "Auswählen, um den Alias zu aktivieren" -#: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32 +#: admin/models/alias.py:84 admin/templates/admin/alias_detail.html:32 #: core/templates/core/information.html:17 msgid "Description" msgstr "Beschreibung" -#: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29 +#: admin/models/alias.py:86 admin/templates/admin/alias_detail.html:29 msgid "Expire at" msgstr "Läuft ab am" -#: admin/models/alias.py:144 +#: admin/models/alias.py:127 msgid "alias" msgstr "Alias" -#: admin/models/alias.py:177 +#: admin/models/alias.py:159 msgid "Invalid address" msgstr "Ungültige Adresse" -#: admin/models/alias.py:196 +#: admin/models/alias.py:180 msgid "Local recipient {}@{} not found" msgstr "Lokaler Empfänger {}@{} nicht gefunden" -#: admin/models/alias.py:245 +#: admin/models/alias.py:215 msgid "Invalid line: {}" msgstr "Ungültige Zeile: {}" -#: admin/models/domain.py:27 admin/models/domain_alias.py:33 +#: admin/models/domain.py:26 admin/models/domain_alias.py:33 msgid "name" msgstr "Name" -#: admin/models/domain.py:30 +#: admin/models/domain.py:27 msgid "The domain name" msgstr "Name der Domain" -#: admin/models/domain.py:42 +#: admin/models/domain.py:39 msgid "Number of messages this domain can send per day" msgstr "Anzahl der Nachrichten, die diese Domain pro Tag senden kann" -#: admin/models/domain.py:46 +#: admin/models/domain.py:44 msgid "Check to activate this domain" msgstr "Auswählen, um diese Domain zu aktivieren" -#: admin/models/domain.py:51 +#: admin/models/domain.py:49 msgid "Enable DNS checks" msgstr "Aktiviere DNS Prüfungen" -#: admin/models/domain.py:53 +#: admin/models/domain.py:50 msgid "Check to enable DNS checks for this domain" -msgstr "" -"Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain" +msgstr "Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain" -#: admin/models/domain.py:61 +#: admin/models/domain.py:57 msgid "Enable DKIM signing" msgstr "Aktiviere DKIM Signierung" -#: admin/models/domain.py:63 +#: admin/models/domain.py:59 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "" -"Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese " -"Domain aktiviert." +msgstr "Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese Domain aktiviert." -#: admin/models/domain.py:70 +#: admin/models/domain.py:65 msgid "Key length" msgstr "Schlüssel-Länge" -#: admin/models/domain.py:368 admin/models/domain_alias.py:70 -#: core/models.py:329 relaydomains/lib.py:13 +#: admin/models/domain.py:357 admin/models/domain_alias.py:66 +#: core/models.py:320 relaydomains/lib.py:13 msgid "Invalid line" msgstr "Ungültige Zeile" -#: admin/models/domain.py:378 +#: admin/models/domain.py:367 msgid "{}: no authorized MX record found for domain" msgstr "{}: Kein autorisierter MX Eintrag für die Domain gefunden." -#: admin/models/domain.py:383 +#: admin/models/domain.py:374 msgid "{}: invalid quota value for domain" msgstr "Fehlerhafter Kontingentwert für die Domäne '{}'" -#: admin/models/domain.py:388 +#: admin/models/domain.py:381 msgid "{}: invalid default mailbox quota value for domain" msgstr "Fehlerhafter Standardwert für das Postfachkontingent der Domäne '{}'" -#: admin/models/domain.py:395 +#: admin/models/domain.py:386 msgid "{}: default mailbox quota cannot be greater than domain quota" -msgstr "" -"{}: Standard-Postfachkontingent kann nicht größer sein als das " -"Domänenkontingent" +msgstr "{}: Standard-Postfachkontingent kann nicht größer sein als das Domänenkontingent" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:34 msgid "The alias name" msgstr "Der Alias-Name" -#: admin/models/domain_alias.py:40 +#: admin/models/domain_alias.py:36 msgid "target" msgstr "Ziel" -#: admin/models/domain_alias.py:41 +#: admin/models/domain_alias.py:37 msgid "The domain this alias points to" msgstr "Domain, auf die dieser Alias verweist" -#: admin/models/domain_alias.py:79 +#: admin/models/domain_alias.py:75 #, python-format msgid "Unknown domain %s" msgstr "Unbekannte Domain %s" -#: admin/models/mailbox.py:87 +#: admin/models/mailbox.py:94 msgid "Mailbox address (without the @domain.tld part)" msgstr "Postfach-Adresse (ohne den '@domain.tld' Teil)" -#: admin/models/mailbox.py:153 +#: admin/models/mailbox.py:156 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Der Speicherort des Postfachs (%s) konnte nicht bestimmt werden" -#: admin/models/mailbox.py:249 +#: admin/models/mailbox.py:254 msgid "A quota is required" msgstr "Ein Quota ist erforderlich" -#: admin/models/mailbox.py:256 +#: admin/models/mailbox.py:261 msgid "{}: domain quota exceeded" msgstr "{}: Domänen-Kontingent überschritten." @@ -1088,8 +1013,9 @@ msgstr "{}: Domänen-Kontingent überschritten." #: 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 "Schließen" @@ -1136,9 +1062,9 @@ msgstr "Anzahl" #: 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:45 -#: limits/app_settings.py:101 limits/app_settings.py:183 -#: limits/app_settings.py:257 limits/constants.py:22 limits/constants.py:76 +#: 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 msgid "Domain aliases" msgstr "Domain-Aliase" @@ -1173,7 +1099,7 @@ msgstr "Erstellt" msgid "Last login" msgstr "Letzte Anmeldung" -#: admin/templates/admin/account_detail.html:38 core/models.py:70 +#: admin/templates/admin/account_detail.html:38 core/models.py:69 msgid "Secondary email" msgstr "Sekundäre E-Mail-Adresse" @@ -1182,7 +1108,7 @@ msgstr "Sekundäre E-Mail-Adresse" msgid "Not defined" msgstr "Nicht definiert" -#: admin/templates/admin/account_detail.html:41 core/models.py:68 +#: admin/templates/admin/account_detail.html:41 core/models.py:67 msgid "Phone number" msgstr "Telefonnummer" @@ -1260,7 +1186,7 @@ msgstr "Offene Alarme für" #: 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:119 +#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:106 msgid "Date" msgstr "Datum" @@ -1284,9 +1210,9 @@ msgstr "Erstellungsdatum" msgid "Last modification date" msgstr "Datum der letzten Änderung" -#: 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 +#: 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 msgid "Mailbox aliases" msgstr "Postfach-Aliase" @@ -1342,13 +1268,12 @@ msgid "Warning" msgstr "Warnung" #: admin/templates/admin/domain_detail.html:139 -msgid "DKIM keys already exist for this domain. Do you want to overwrite them?" -msgstr "" -"Für diese Domain sind bereits DKIM-Schlüssel vorhanden. Möchten Sie sie " -"überschreiben?" +msgid "" +"DKIM keys already exist for this domain. Do you want to overwrite them?" +msgstr "Für diese Domain sind bereits DKIM-Schlüssel vorhanden. Möchten Sie sie überschreiben?" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:400 +#: lib/form_utils.py:397 msgid "No" msgstr "Nein" @@ -1356,7 +1281,7 @@ msgstr "Nein" msgid "Generate new key" msgstr "Neuen Schlüssel generieren" -#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400 +#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:396 msgid "Yes" msgstr "Ja" @@ -1369,7 +1294,7 @@ msgid "Administrators" msgstr "Administratoren" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:306 +#: admin/templatetags/admin_tags.py:279 msgid "Remove this permission" msgstr "Diese Berechtigung entfernen" @@ -1406,13 +1331,13 @@ msgstr "Warteschlangen-ID" #: admin/templates/admin/domains_log_headers.html:4 #: admin/templates/admin/messages_log_headers.html:4 -#: lib/templatetags/lib_tags.py:117 postfix_autoreply/forms.py:20 +#: lib/templatetags/lib_tags.py:104 msgid "From" msgstr "Von" #: admin/templates/admin/domains_log_headers.html:5 #: admin/templates/admin/messages_log_headers.html:5 -#: lib/templatetags/lib_tags.py:118 +#: lib/templatetags/lib_tags.py:105 msgid "To" msgstr "An" @@ -1443,10 +1368,9 @@ msgstr "deaktiviert" msgid "Automatically forward emails to another address" msgstr "Nachrichten automatisch an andere Adresse weiterleiten" -#: admin/templates/admin/forward.html:9 admin/views/alias.py:84 +#: admin/templates/admin/forward.html:9 admin/views/alias.py:88 #: core/templates/core/api_access.html:35 -#: core/templates/core/user_profile.html:19 lib/form_utils.py:356 -#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10 +#: core/templates/core/user_profile.html:19 lib/form_utils.py:354 msgid "Update" msgstr "Aktualisieren" @@ -1471,31 +1395,17 @@ msgid "" "verify recipients

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

      You can " "use a different character as separator.

      " -msgstr "" -"Verwenden Sie eine CSV-Datei, in der die Zeilen einem der folgenden Formate " -"entsprechen:
      • domain; name; quota; default mailbox quota; " -"enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; " -"verify recipients

      Das erste Element jeder Zeile ist " -"erforderlich und muss einem der vorherigen Werte entsprechen.

      Sie " -"können ein anderes Zeichen als Trennzeichen verwenden.

      " +msgstr "Verwenden Sie eine CSV-Datei, in der die Zeilen einem der folgenden Formate entsprechen:
      • domain; name; quota; default mailbox quota; enabled
      • domainalias; name; targeted domain; enabled
      • relaydomain; name; target host; target port; service; enabled; verify recipients

      Das erste Element jeder Zeile ist erforderlich und muss einem der vorherigen Werte entsprechen.

      Sie können ein anderes Zeichen als Trennzeichen verwenden.

      " #: admin/templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:
        " -"
      • account; loginname; password; first name; last name; enabled; group; " -"address; quota; [, domain, ...]
      • alias; address; enabled; " +"
      • account; loginname; password; first name; last name; enabled; group;" +" address; quota; [, domain, ...]
      • alias; address; enabled; " "recipient; recipient; ...

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

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

      " -msgstr "" -"Verwenden Sie eine CSV-Datei, deren Zeilen einem der folgenden Formate " -"entsprechen:
      • account; loginname; password; first name; last " -"name; enabled; group; address; quota; [, domain, ...]
      • " -"
      • alias; address; enabled; recipient; recipient; ...
      " -"

      Das erste Element jeder Zeile ist erforderlich und muss mit einem der " -"vorherigen Werte übereinstimmen.

      Sie können ein anderes Zeichen als " -"Trennzeichen verwenden.

      " +"is mandatory and must be equal to one of the previous values.

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

      " +msgstr "Verwenden Sie eine CSV-Datei, deren Zeilen einem der folgenden Formate entsprechen:
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • alias; address; enabled; recipient; recipient; ...

      Das erste Element jeder Zeile ist erforderlich und muss mit einem der vorherigen Werte übereinstimmen.

      Sie können ein anderes Zeichen als Trennzeichen verwenden.

      " #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1523,9 +1433,7 @@ msgstr "Aktualisieren" #: admin/templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" -msgstr "" -"Die IP-Adressen passen zu keinem der in den Parametern definierten MX-" -"Einträge" +msgstr "Die IP-Adressen passen zu keinem der in den Parametern definierten MX-Einträge" #: admin/templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." @@ -1536,122 +1444,108 @@ msgstr "Kein MX Eintrag für diese Domain gefunden." msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" -msgstr "" -"Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden " -"DNSBL-Anbieter aufgelistet ist:" +msgstr "Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden DNSBL-Anbieter aufgelistet ist:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 msgid "" "The domain's reputation will be affected and there is a chance that emails " "coming from it are considered as spam. You should contact those providers " "and ask them to unlist detected IP address(es)." -msgstr "" -"Die Reputation der Domäne wird beeinträchtigt, und es besteht die " -"Möglichkeit, dass die von ihr stammenden E-Mails als Spam angesehen werden. " -"Sie sollten diese Anbieter kontaktieren und sie bitten, die erkannte(n) IP-" -"Adresse(n) aus der Liste zu entfernen." +msgstr "Die Reputation der Domäne wird beeinträchtigt, und es besteht die Möglichkeit, dass die von ihr stammenden E-Mails als Spam angesehen werden. Sie sollten diese Anbieter kontaktieren und sie bitten, die erkannte(n) IP-Adresse(n) aus der Liste zu entfernen." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "" -"Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag " -"vorliegt:" +msgstr "Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag vorliegt:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Suchen" -#: admin/templatetags/admin_tags.py:18 +#: admin/templatetags/admin_tags.py:19 msgid "enabled_m" msgstr "aktiviert_m" -#: admin/templatetags/admin_tags.py:18 +#: admin/templatetags/admin_tags.py:19 msgid "enabled_f" msgstr "aktiviert_f" -#: admin/templatetags/admin_tags.py:46 +#: admin/templatetags/admin_tags.py:47 msgid "List domains" msgstr "Domain-Liste" -#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:123 +#: admin/templatetags/admin_tags.py:52 admin/templatetags/admin_tags.py:112 msgid "List quotas" msgstr "Quota-Liste" -#: admin/templatetags/admin_tags.py:60 +#: admin/templatetags/admin_tags.py:57 msgid "Message logs" msgstr "Nachrichten-Logs" -#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130 -#: admin/views/import_.py:57 admin/views/import_.py:78 +#: admin/templatetags/admin_tags.py:69 admin/templatetags/admin_tags.py:117 +#: admin/views/import_.py:56 admin/views/import_.py:78 msgid "Import" msgstr "Import" -#: admin/templatetags/admin_tags.py:83 admin/templatetags/admin_tags.py:138 -#: admin/views/export.py:41 admin/views/export.py:70 +#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:123 +#: admin/views/export.py:39 admin/views/export.py:67 msgid "Export" msgstr "Export" -#: admin/templatetags/admin_tags.py:116 +#: admin/templatetags/admin_tags.py:107 msgid "List identities" msgstr "Identitäten-Liste" -#: admin/templatetags/admin_tags.py:157 +#: admin/templatetags/admin_tags.py:142 msgid "View the domain's identities" msgstr "Domain-Identitäten anzeigen" -#: admin/templatetags/admin_tags.py:166 +#: admin/templatetags/admin_tags.py:149 msgid "View domain's alarms" msgstr "Domänen-Alarme anzeigen" -#: admin/templatetags/admin_tags.py:174 admin/templatetags/admin_tags.py:218 -#: admin/templatetags/admin_tags.py:235 +#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:198 +#: admin/templatetags/admin_tags.py:211 msgid "Edit {}" msgstr "{} bearbeiten" -#: admin/templatetags/admin_tags.py:186 admin/templatetags/admin_tags.py:224 -#: admin/templatetags/admin_tags.py:241 +#: admin/templatetags/admin_tags.py:165 admin/templatetags/admin_tags.py:202 +#: admin/templatetags/admin_tags.py:216 #, python-format msgid "Delete %s?" msgstr "%s löschen?" -#: admin/tests/test_mx.py:156 +#: admin/tests/test_mx.py:155 #, python-format msgid "No MX record for %s" msgstr "Kein MX Eintrag für %s" -#: admin/tests/test_mx.py:177 admin/tests/test_mx.py:183 +#: admin/tests/test_mx.py:167 admin/tests/test_mx.py:170 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Ferhlerhaftes IP-Adressformat für %(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 "Kein MX Eintrag für %s" - #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Ein Alias mit diesem Namen existiert bereits" -#: admin/views/alias.py:52 +#: admin/views/alias.py:55 msgid "Create" msgstr "Erstellen" -#: admin/views/alias.py:64 +#: admin/views/alias.py:67 msgid "New alias" msgstr "Neuer Alias" -#: admin/views/alias.py:64 +#: admin/views/alias.py:68 msgid "Alias created" msgstr "Alias erstellt" -#: admin/views/alias.py:76 +#: admin/views/alias.py:80 msgid "Alias modified" msgstr "Alias verändert" -#: admin/views/alias.py:101 +#: admin/views/alias.py:105 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias gelöscht" @@ -1661,36 +1555,36 @@ msgstr[1] "Aliase gelöscht" msgid "MX records of {}" msgstr "MX Einträge für {}" -#: admin/views/dns.py:50 +#: admin/views/dns.py:51 msgid "DNSBL summary for {}" msgstr "DNSBL Zusammenfassung für {}" -#: admin/views/domain.py:251 +#: admin/views/domain.py:250 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domain gelöscht" msgstr[1] "Domains gelöscht" -#: admin/views/export.py:40 +#: admin/views/export.py:38 msgid "Export identities" msgstr "Identitäten exportieren" -#: admin/views/export.py:69 +#: admin/views/export.py:66 msgid "Export domains" msgstr "Domains exportieren" -#: 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 +#: 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 msgid "Invalid request" msgstr "Ungültige Anfrage" -#: admin/views/identity.py:187 +#: admin/views/identity.py:194 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto gelöscht" msgstr[1] "Konten gelöscht" -#: admin/views/import_.py:56 +#: admin/views/import_.py:55 msgid "Import domains" msgstr "Domains importieren" @@ -1698,72 +1592,84 @@ msgstr "Domains importieren" msgid "Import identities" msgstr "Identitäten importieren" -#: admin/views/user.py:51 +#: admin/views/user.py:52 msgid "Forward updated" msgstr "Weiterleitung aktualisiert" -#: core/api/v1/serializers.py:21 +#: core/api/v1/serializers.py:16 msgid "Invalid PIN code" msgstr "Ungültiger Pincode" -#: core/api/v1/serializers.py:27 +#: core/api/v1/serializers.py:22 msgid "2FA is already enabled" msgstr "2FA ist bereits aktiviert" -#: core/api/v1/serializers.py:40 -#, fuzzy, python-format -#| msgid "Failed connection attempt from '%s' as user '%s'" -msgid "Failed TFA settings editing attempt from '%s' as user '%s'" -msgstr "Fehlgeschlagener Verbindungsversuch von '%s' als Benutzer '%s'" - -#: core/api/v1/serializers.py:44 core/api/v2/serializers.py:274 -msgid "Invalid password" -msgstr "Ungültiges Passwort" - -#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 +#: core/api/v1/viewsets.py:61 msgid "2FA is not enabled" msgstr "2-Faktor-Authentifizierung ist nicht aktiviert" -#: core/api/v2/serializers.py:68 core/app_settings.py:48 +#: core/api/v2/serializers.py:60 core/app_settings.py:43 msgid "Local" msgstr "Lokal" -#: core/api/v2/serializers.py:164 core/app_settings.py:24 +#: core/api/v2/serializers.py:68 +msgid "md5crypt (weak)" +msgstr "md5crypt (schwach)" + +#: core/api/v2/serializers.py:69 +msgid "sha256 (weak)" +msgstr "sha256 (schwach)" + +#: core/api/v2/serializers.py:70 +msgid "md5 (weak)" +msgstr "md5 (schwach)" + +#: core/api/v2/serializers.py:71 +msgid "crypt (weak)" +msgstr "crypt (schwach)" + +#: core/api/v2/serializers.py:72 +msgid "plain (weak)" +msgstr "plain (schwach)" + +#: core/api/v2/serializers.py:168 core/app_settings.py:26 msgid "User profile" msgstr "Benutzername" #: 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:155 +#: 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 "Ungültiger Syntax" -#: core/api/v2/serializers.py:202 core/app_settings.py:557 +#: core/api/v2/serializers.py:202 core/app_settings.py:583 msgid "Invalid rounds number" msgstr "Ungültige Zahl für Runden" -#: core/api/v2/serializers.py:262 core/forms.py:194 +#: core/api/v2/serializers.py:262 core/forms.py:176 msgid "This code is invalid" msgstr "Dieser Code ist Falsch" -#: 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 "" -"Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen: " -"{}" +#: core/api/v2/serializers.py:274 +msgid "Invalid password" +msgstr "Ungültiges Passwort" -#: core/api/v2/views.py:57 +#: core/api/v2/serializers.py:328 core/views/auth.py:180 +#: core/views/auth.py:235 +msgid "Please use the following code to recover your Modoboa password: {}" +msgstr "Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen: {}" + +#: core/api/v2/views.py:54 #, python-format msgid "Failed connection attempt from '%s' as user '%s'" msgstr "Fehlgeschlagener Verbindungsversuch von '%s' als Benutzer '%s'" -#: core/api/v2/views.py:69 core/views/auth.py:89 +#: core/api/v2/views.py:67 core/views/auth.py:89 #, python-format msgid "User '%s' successfully logged in" msgstr "Benutzer '%s' hat sich erfolgreich angemeldet" -#: core/api/v2/views.py:86 core/views/auth.py:67 +#: core/api/v2/views.py:86 core/views/auth.py:68 #, python-format msgid "Password scheme mismatch. Updating %s password" msgstr "Fehlanpassung des Passwortschemas. Passwort von %s wird aktualisiert" @@ -1773,523 +1679,478 @@ msgstr "Fehlanpassung des Passwortschemas. Passwort von %s wird aktualisiert" msgid "Password hash parameter missmatch. Updating %s password" msgstr "Passwort-Hash Parameter Unterschied. Aktualisiere %s Passwort" -#: core/app_settings.py:44 core/app_settings.py:716 +#: core/app_settings.py:39 core/app_settings.py:728 msgid "Authentication" msgstr "Authentifizierung" -#: core/app_settings.py:47 core/app_settings.py:722 +#: core/app_settings.py:42 core/app_settings.py:731 msgid "Authentication type" msgstr "Authentifizierungstyp" -#: core/app_settings.py:50 core/app_settings.py:724 +#: core/app_settings.py:46 core/app_settings.py:733 msgid "The backend used for authentication" msgstr "Backend für die Authentifizierung" -#: core/app_settings.py:55 core/app_settings.py:731 +#: core/app_settings.py:51 core/app_settings.py:736 msgid "Default password scheme" msgstr "Standard-Passwortschema" -#: core/app_settings.py:58 core/app_settings.py:733 +#: core/app_settings.py:54 core/app_settings.py:738 msgid "Scheme used to crypt mailbox passwords" msgstr "Verschlüsselungsschema der Postfach-Passwörter" -#: core/app_settings.py:62 core/app_settings.py:740 +#: core/app_settings.py:58 core/app_settings.py:741 msgid "Rounds" msgstr "Runden" -#: core/app_settings.py:65 core/app_settings.py:742 +#: 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 "" -"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl " -"muss zwischen 1000 und 999999999 liegen." +msgstr "Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl muss zwischen 1000 und 999999999 liegen." -#: core/app_settings.py:71 core/app_settings.py:752 +#: core/app_settings.py:67 core/app_settings.py:749 msgid "Update password scheme at login" msgstr "Aktualisiere das Passwortschema beim Anmelden" -#: core/app_settings.py:74 core/app_settings.py:755 +#: core/app_settings.py:70 core/app_settings.py:751 msgid "Update user password at login to use the default password scheme" -msgstr "" -"Aktualisieren Sie das Benutzerkennwort bei der Anmeldung, um das Standard-" -"Passwortschema zu verwenden." +msgstr "Aktualisieren Sie das Benutzerkennwort bei der Anmeldung, um das Standard-Passwortschema zu verwenden." -#: core/app_settings.py:79 core/app_settings.py:763 +#: core/app_settings.py:75 core/app_settings.py:756 msgid "Default password" msgstr "Standardpasswort" -#: core/app_settings.py:81 core/app_settings.py:765 +#: core/app_settings.py:78 core/app_settings.py:758 msgid "Default password for automatically created accounts." msgstr "Standardpasswort für automatisch erstellte Accounts." -#: core/app_settings.py:85 core/app_settings.py:772 +#: core/app_settings.py:82 core/app_settings.py:761 msgid "Random password length" msgstr "Zufällige Passwortlänge" -#: core/app_settings.py:88 core/app_settings.py:774 +#: core/app_settings.py:86 core/app_settings.py:763 msgid "Length of randomly generated passwords." msgstr "Länge von zufällig generierten Passwörtern" -#: core/app_settings.py:92 core/app_settings.py:781 +#: core/app_settings.py:90 core/app_settings.py:766 msgid "Update password service URL" msgstr "Aktualisiere Passwort-Service-URL" -#: core/app_settings.py:96 core/app_settings.py:783 +#: 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)." -msgstr "" -"Die URL der externen Webseite wo Benutzer ihr Kennwort aktualisieren können. " -"Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer die " -"nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, SMTP)." +msgstr "Die URL der externen Webseite wo Benutzer ihr Kennwort aktualisieren können. Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer die nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, SMTP)." -#: core/app_settings.py:104 core/app_settings.py:793 +#: core/app_settings.py:102 core/app_settings.py:775 msgid "Password recovery announcement" msgstr "Ankündigung zur Passwort-Wiederherstellung" -#: core/app_settings.py:109 core/app_settings.py:795 +#: core/app_settings.py:107 core/app_settings.py:777 msgid "A temporary message that will be displayed on the reset password page." -msgstr "" -"Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite " -"angezeigt wird." +msgstr "Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite angezeigt wird." -#: core/app_settings.py:114 core/app_settings.py:804 +#: core/app_settings.py:113 core/app_settings.py:782 msgid "Enable password recovery by SMS" msgstr "Aktiviere die Passwortwiederherstellung per SMS" -#: core/app_settings.py:117 core/app_settings.py:807 +#: core/app_settings.py:116 core/app_settings.py:784 msgid "Enable password recovery by SMS for users who filled a phone number." -msgstr "" -"Aktiviere die Passwortwiederherstellung per SMS für Benutzer mit einer " -"Telefonnummer." +msgstr "Aktiviere die Passwortwiederherstellung per SMS für Benutzer mit einer Telefonnummer." -#: core/app_settings.py:122 core/app_settings.py:815 +#: core/app_settings.py:122 core/app_settings.py:789 msgid "SMS provider" msgstr "SMS Anbieter" -#: core/app_settings.py:124 core/app_settings.py:818 +#: core/app_settings.py:125 core/app_settings.py:792 msgid "Choose a provider to send password recovery SMS" msgstr "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS" -#: core/app_settings.py:129 +#: core/app_settings.py:131 msgid "LDAP settings" msgstr "LDAP-Einstellungen" -#: core/app_settings.py:132 core/app_settings.py:836 +#: core/app_settings.py:134 core/app_settings.py:802 msgid "Server address" msgstr "Server-Adresse" -#: core/app_settings.py:134 core/app_settings.py:838 +#: core/app_settings.py:137 core/app_settings.py:804 msgid "The IP address or the DNS name of the LDAP server" msgstr "IP-Adresse oder Hostname des LDAP-Servers" -#: core/app_settings.py:138 core/app_settings.py:845 +#: core/app_settings.py:141 core/app_settings.py:807 msgid "Server port" msgstr "Server-Port" -#: core/app_settings.py:140 core/app_settings.py:847 +#: core/app_settings.py:143 core/app_settings.py:809 msgid "The TCP port number used by the LDAP server" msgstr "Der TCP Port des LDAP-Servers" -#: core/app_settings.py:144 core/app_settings.py:855 +#: core/app_settings.py:147 core/app_settings.py:812 msgid "Enable secondary server (fallback)" msgstr "Aktiviere Ausfallsserver (Fallback)" -#: core/app_settings.py:147 core/app_settings.py:858 +#: 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" -msgstr "" -"Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste " -"nicht erreichbar ist" +msgstr "Aktiviere einen zweiten LDAP-Server, welcher verwendet wird, wenn der erste nicht erreichbar ist" -#: core/app_settings.py:153 core/app_settings.py:866 +#: core/app_settings.py:156 core/app_settings.py:819 msgid "Secondary server address" msgstr "Ausfallsserver-Adresse" -#: core/app_settings.py:156 core/app_settings.py:869 +#: core/app_settings.py:159 core/app_settings.py:822 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "Die IP-Adresse oder den DNS-Namen des zweiten LDAP-Servers" -#: core/app_settings.py:161 core/app_settings.py:876 +#: core/app_settings.py:163 core/app_settings.py:826 msgid "Secondary server port" msgstr "Ausfallsserver-Port" -#: core/app_settings.py:163 core/app_settings.py:879 +#: core/app_settings.py:166 core/app_settings.py:829 msgid "The TCP port number used by the LDAP secondary server" msgstr "Der TCP Port des sekundären LDAP-Servers" -#: core/app_settings.py:167 core/app_settings.py:886 +#: core/app_settings.py:170 core/app_settings.py:833 msgid "Use a secured connection" msgstr "Gesicherte Verbindung verwenden" -#: core/app_settings.py:171 core/app_settings.py:888 +#: core/app_settings.py:174 core/app_settings.py:835 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden" -#: core/app_settings.py:176 core/app_settings.py:895 +#: core/app_settings.py:178 core/app_settings.py:838 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:178 core/app_settings.py:897 +#: core/app_settings.py:181 core/app_settings.py:840 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Auswählen wenn der LDAP-Server ein Active Directory ist." -#: core/app_settings.py:182 core/app_settings.py:904 +#: core/app_settings.py:185 core/app_settings.py:843 msgid "Administrator groups" msgstr "Administrator-Gruppen" -#: core/app_settings.py:185 core/app_settings.py:906 +#: 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 "" -"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren " -"angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." +"Members of those LDAP Posix groups will be created as domain administrators." +" Use ';' characters to separate groups." +msgstr "Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." -#: core/app_settings.py:192 core/app_settings.py:915 +#: core/app_settings.py:195 core/app_settings.py:851 msgid "Group type" msgstr "Gruppentyp" -#: core/app_settings.py:195 core/app_settings.py:917 +#: core/app_settings.py:199 core/app_settings.py:853 msgid "The LDAP group type to use with your directory." -msgstr "" -"Der LDAP Gruppentyp welcher mit diesem Verzeichnis benutzt werden soll." +msgstr "Der LDAP Gruppentyp welcher mit diesem Verzeichnis benutzt werden soll." -#: core/app_settings.py:199 core/app_settings.py:924 +#: core/app_settings.py:204 core/app_settings.py:857 msgid "Groups search base" msgstr "Gruppen Search Base" -#: core/app_settings.py:202 core/app_settings.py:926 +#: core/app_settings.py:207 core/app_settings.py:859 msgid "The distinguished name of the search base used to find groups" msgstr "Der DN der Search Base mit der Gruppen gefunden werden" -#: core/app_settings.py:208 core/app_settings.py:934 +#: core/app_settings.py:213 core/app_settings.py:864 msgid "Password attribute" msgstr "Passwort-Attribut" -#: core/app_settings.py:210 core/app_settings.py:936 +#: core/app_settings.py:215 core/app_settings.py:866 msgid "The attribute used to store user passwords" msgstr "Das Attribut für Benutzerpasswörter" -#: core/app_settings.py:214 core/app_settings.py:943 +#: core/app_settings.py:220 core/app_settings.py:869 msgid "LDAP authentication settings" msgstr "LDAP Authentifizierungseinstellungen" -#: core/app_settings.py:217 core/app_settings.py:951 +#: core/app_settings.py:223 core/app_settings.py:874 msgid "Authentication method" msgstr "Authentifizierungsmethode" -#: core/app_settings.py:219 core/constants.py:59 +#: core/app_settings.py:224 core/constants.py:59 msgid "Search and bind" msgstr "Suchen und Bind anwenden" -#: core/app_settings.py:220 core/constants.py:60 +#: core/app_settings.py:225 core/constants.py:60 msgid "Direct bind" msgstr "Direkter Bind" -#: core/app_settings.py:223 core/app_settings.py:954 +#: core/app_settings.py:227 core/app_settings.py:877 msgid "Choose the authentication method to use" msgstr "Wählen Sie die Authentifizierungsmethode" -#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961 -#: core/app_settings.py:1024 +#: core/app_settings.py:231 core/app_settings.py:285 core/app_settings.py:880 +#: core/app_settings.py:925 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963 -#: core/app_settings.py:1026 +#: 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 "" -"Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." +msgstr "Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." -#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972 -#: core/app_settings.py:1034 +#: core/app_settings.py:241 core/app_settings.py:295 core/app_settings.py:888 +#: core/app_settings.py:932 msgid "Bind password" msgstr "Bind Passwort" -#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974 -#: core/app_settings.py:1036 +#: core/app_settings.py:244 core/app_settings.py:298 core/app_settings.py:890 +#: core/app_settings.py:934 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "Das Passwort wenn mit dem Bind DN angemeldet wird." -#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984 -#: core/app_settings.py:1089 +#: core/app_settings.py:252 core/app_settings.py:344 core/app_settings.py:897 +#: core/app_settings.py:971 msgid "Users search base" msgstr "Benutzer Search Base" -#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986 -#: core/app_settings.py:1091 +#: core/app_settings.py:255 core/app_settings.py:347 core/app_settings.py:899 +#: core/app_settings.py:973 msgid "The distinguished name of the search base used to find users" msgstr "Der DN der Search Base mit der Benutzerkonten gefunden werden" -#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995 -#: core/app_settings.py:1100 +#: core/app_settings.py:261 core/app_settings.py:353 core/app_settings.py:905 +#: core/app_settings.py:979 msgid "Search filter" msgstr "Suchfilter" -#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997 -#: core/app_settings.py:1102 +#: 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 "" -"Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss " -"entsprechend der LDAP-Konvention in Klammern gesetzt werden." +msgstr "Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss entsprechend der LDAP-Konvention in Klammern gesetzt werden." -#: core/app_settings.py:266 core/app_settings.py:1006 +#: core/app_settings.py:271 core/app_settings.py:913 msgid "User DN template" msgstr "Vorlage für User DN" -#: core/app_settings.py:269 core/app_settings.py:1008 +#: core/app_settings.py:274 core/app_settings.py:915 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "" -"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s " -"enthalten." +msgstr "Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s enthalten." -#: core/app_settings.py:276 core/app_settings.py:1017 +#: core/app_settings.py:282 core/app_settings.py:921 msgid "LDAP synchronization settings" msgstr "LDAP Synchronisations Einstellungen" -#: core/app_settings.py:299 core/app_settings.py:1045 +#: core/app_settings.py:306 core/app_settings.py:940 msgid "Enable export to LDAP" msgstr "Export zu LDAP aktivieren" -#: core/app_settings.py:302 core/app_settings.py:1047 +#: core/app_settings.py:309 core/app_settings.py:942 msgid "" "Enable automatic synchronization between local database and LDAP directory" -msgstr "" -"Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis " -"aktivieren" +msgstr "Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis aktivieren" -#: core/app_settings.py:308 core/app_settings.py:1056 +#: core/app_settings.py:315 core/app_settings.py:948 msgid "Delete remote LDAP account when local account is deleted" msgstr "Remote LDAP Benutzer entfernen wenn lokaler Benutzer gelöscht wird" -#: core/app_settings.py:311 core/app_settings.py:1059 +#: 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." -msgstr "" -"Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten " -"wird der Benutzer deaktiviert." +msgstr "Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten wird der Benutzer deaktiviert." -#: core/app_settings.py:317 core/app_settings.py:1068 +#: core/app_settings.py:325 core/app_settings.py:956 msgid "Account DN template" msgstr "Vorlage für User DN" -#: core/app_settings.py:320 core/app_settings.py:1070 +#: core/app_settings.py:328 core/app_settings.py:958 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "" -"Die Vorlage die verwendet wird um das User DN zu generieren. Es sollte " -"mindestens einen Platzhalter beinhalten (z.B. %(user)s)" +msgstr "Die Vorlage die verwendet wird um das User DN zu generieren. Es sollte mindestens einen Platzhalter beinhalten (z.B. %(user)s)" -#: core/app_settings.py:327 core/app_settings.py:1079 +#: core/app_settings.py:335 core/app_settings.py:964 msgid "Enable import from LDAP" msgstr "Import von LDAP aktivieren" -#: core/app_settings.py:330 core/app_settings.py:1081 +#: core/app_settings.py:338 core/app_settings.py:966 msgid "Enable account synchronization from LDAP directory to local database" -msgstr "" -"Automatische Kontensynchronisation vom LDAP Verzeichnis in die lokale " -"Datenbank aktivieren" +msgstr "Automatische Kontensynchronisation vom LDAP Verzeichnis in die lokale Datenbank aktivieren" -#: core/app_settings.py:354 core/app_settings.py:1111 +#: core/app_settings.py:363 core/app_settings.py:987 msgid "Username attribute" msgstr "Benutzernamenattribut" -#: core/app_settings.py:357 core/app_settings.py:1113 +#: core/app_settings.py:366 core/app_settings.py:989 msgid "The name of the LDAP attribute where the username can be found." msgstr "Das LDAP-Attribut, in dem der Benutzername gefunden werden kann." -#: core/app_settings.py:362 core/app_settings.py:1122 +#: core/app_settings.py:371 core/app_settings.py:995 msgid "Enable Dovecot LDAP sync" msgstr "Dovecot LDAP-Synchronisation aktivieren" -#: core/app_settings.py:365 core/app_settings.py:1124 +#: core/app_settings.py:374 core/app_settings.py:997 msgid "LDAP authentication settings will be applied to Dovecot configuration." -msgstr "" -"LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration " -"angewendet." +msgstr "LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration angewendet." -#: core/app_settings.py:370 core/app_settings.py:1132 +#: core/app_settings.py:380 core/app_settings.py:1002 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP-Konfigurationsdatei" -#: core/app_settings.py:374 core/app_settings.py:1134 +#: core/app_settings.py:384 core/app_settings.py:1004 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "Speicherort der Dovecot-Konfigurationsdatei für LDAP-Einstellungen." -#: core/app_settings.py:379 core/app_settings.py:1147 +#: core/app_settings.py:389 core/app_settings.py:1013 #: core/templates/core/dashboard.html:5 msgid "Dashboard" msgstr "Dashboard" -#: core/app_settings.py:382 core/app_settings.py:1153 +#: core/app_settings.py:392 core/app_settings.py:1016 msgid "Custom RSS feed" msgstr "Benutzerdefinierter RSS Feed" -#: core/app_settings.py:385 core/app_settings.py:1155 +#: core/app_settings.py:395 core/app_settings.py:1018 msgid "Display custom RSS feed to resellers and domain administrators" -msgstr "" -"Zeige benutzerdefinierten RSS-Feed für Wiederverkäufer und Domain-" -"Administratoren." +msgstr "Zeige benutzerdefinierten RSS-Feed für Wiederverkäufer und Domain-Administratoren." -#: core/app_settings.py:390 core/app_settings.py:1163 +#: core/app_settings.py:400 core/app_settings.py:1023 msgid "Hide features widget" msgstr "Verberge Funktionen Werkzeug" -#: core/app_settings.py:393 core/app_settings.py:1165 +#: core/app_settings.py:403 core/app_settings.py:1025 msgid "Hide features widget for resellers and domain administrators" -msgstr "" -"Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." +msgstr "Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." -#: core/app_settings.py:397 core/app_settings.py:1177 +#: core/app_settings.py:407 core/app_settings.py:1032 msgid "Notifications" msgstr "Benachrichtigungen" -#: core/app_settings.py:400 core/app_settings.py:1183 +#: core/app_settings.py:410 core/app_settings.py:1035 msgid "Sender address" msgstr "Absenderadresse" -#: core/app_settings.py:402 core/app_settings.py:1185 +#: core/app_settings.py:413 core/app_settings.py:1037 msgid "Email address used to send notifications." msgstr "E-Mail Adresse für das Senden von Benachrichtigungen." -#: core/app_settings.py:405 core/app_settings.py:1196 +#: core/app_settings.py:417 core/app_settings.py:1042 msgid "Public API" msgstr "Öffentliche API" -#: core/app_settings.py:408 core/app_settings.py:1202 +#: core/app_settings.py:420 core/app_settings.py:1045 msgid "Enable communication" msgstr "Verbindung aktivieren" -#: core/app_settings.py:410 +#: core/app_settings.py:423 msgid "Enable communication with Modoboa public API" msgstr "Verbindung mit Modoboa public API aktivieren" -#: core/app_settings.py:414 core/app_settings.py:1211 +#: core/app_settings.py:427 core/app_settings.py:1050 msgid "Check new versions" msgstr "Prüfe auf neue Versionen" -#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214 +#: core/app_settings.py:430 core/app_settings.py:1047 +#: core/app_settings.py:1053 msgid "Automatically checks if a newer version is available" msgstr "Prüft automatisch ob eine neuere Version verfügbar ist." -#: core/app_settings.py:420 core/app_settings.py:1222 +#: core/app_settings.py:434 core/app_settings.py:1057 msgid "Send an email when new versions are found" msgstr "Sende eine Email wenn eine neue Version gefunden wurde" -#: core/app_settings.py:422 core/app_settings.py:1226 +#: core/app_settings.py:437 core/app_settings.py:1060 msgid "Send an email to notify admins about new versions" -msgstr "" -"Sende eine Email um die Administratoren über eine neue Version zu " -"benachrichtigen" +msgstr "Sende eine Email um die Administratoren über eine neue Version zu benachrichtigen" -#: core/app_settings.py:425 core/app_settings.py:1233 +#: core/app_settings.py:441 core/app_settings.py:1064 msgid "Recipient" msgstr "Empfänger" -#: core/app_settings.py:427 core/app_settings.py:1236 +#: core/app_settings.py:444 core/app_settings.py:1067 msgid "Recipient of new versions notification emails." msgstr "Empfänger für die Benachrichtigungsemail für eine neue Version" -#: core/app_settings.py:431 core/app_settings.py:1243 +#: core/app_settings.py:449 core/app_settings.py:1071 msgid "Send statistics" msgstr "Sende Statistiken" -#: core/app_settings.py:434 core/app_settings.py:1246 +#: core/app_settings.py:452 core/app_settings.py:1074 msgid "Send statistics to Modoboa public API (counters and used extensions)" -msgstr "" -"Statistiken über die Modoboa public API senden (Zähler und Nutzungs " -"Erweiterungen)" +msgstr "Statistiken über die Modoboa public API senden (Zähler und Nutzungs Erweiterungen)" -#: core/app_settings.py:438 core/app_settings.py:1258 +#: core/app_settings.py:456 core/app_settings.py:1080 msgid "Miscellaneous" msgstr "Verschiedenes" -#: core/app_settings.py:441 core/app_settings.py:1265 +#: core/app_settings.py:459 core/app_settings.py:1083 msgid "Enable inactive account tracking" msgstr "Verfolgung inaktiver Konten aktivieren" -#: core/app_settings.py:444 core/app_settings.py:1268 +#: 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" -msgstr "" -"Dem Administrator die Möglichkeit geben, einen Schwellenwert (in Tagen) " -"festzulegen, ab dem ein Konto als inaktiv gilt, wenn sich der Benutzer nicht " -"angemeldet hat." +"Allow the administrator to set a threshold (in days) beyond which an account" +" is considered inactive if the user hasn't logged in" +msgstr "Dem Administrator die Möglichkeit geben, einen Schwellenwert (in Tagen) festzulegen, ab dem ein Konto als inaktiv gilt, wenn sich der Benutzer nicht angemeldet hat." -#: core/app_settings.py:451 core/app_settings.py:1277 +#: core/app_settings.py:467 core/app_settings.py:1091 msgid "Inactive account threshold" msgstr "Schwellwert für inaktive Konten" -#: core/app_settings.py:454 core/app_settings.py:1280 +#: 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 "" -"Ein Konto mit einem Datum des letzten Logins, das größer als dieser " -"Schwellenwert ist (in Tagen), wird als inaktiv betrachtet." +"An account with a last login date greater than this threshold (in days) will" +" be considered as inactive" +msgstr "Ein Konto mit einem Datum des letzten Logins, das größer als dieser Schwellenwert ist (in Tagen), wird als inaktiv betrachtet." -#: core/app_settings.py:460 core/app_settings.py:1289 +#: core/app_settings.py:476 core/app_settings.py:1099 msgid "Top notifications check interval" msgstr "Benachrichtigungs-Prüfintervall" -#: core/app_settings.py:462 core/app_settings.py:1292 +#: core/app_settings.py:479 core/app_settings.py:1101 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" -#: core/app_settings.py:466 core/app_settings.py:1299 +#: core/app_settings.py:484 core/app_settings.py:1105 msgid "Maximum log record age" msgstr "Maximales Alter für Log-Einträge" -#: core/app_settings.py:468 core/app_settings.py:1301 +#: core/app_settings.py:486 core/app_settings.py:1107 msgid "The maximum age in days of a log record" msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)" -#: core/app_settings.py:472 core/app_settings.py:1308 +#: core/app_settings.py:490 core/app_settings.py:1110 msgid "Items per page" msgstr "Einträge pro Seite" -#: core/app_settings.py:474 core/app_settings.py:1310 +#: core/app_settings.py:492 core/app_settings.py:1111 msgid "Number of displayed items per page" msgstr "Anzahl dargestellter Einträge pro Seite" -#: core/app_settings.py:478 core/app_settings.py:1317 +#: core/app_settings.py:496 core/app_settings.py:1114 msgid "Default top redirection" msgstr "Standardumleitung" -#: core/app_settings.py:482 core/app_settings.py:1319 +#: core/app_settings.py:500 core/app_settings.py:1116 msgid "The default redirection used when no application is specified" msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" -#: core/app_settings.py:830 +#: core/app_settings.py:799 msgid "LDAP" msgstr "LDAP" -#: core/checks/settings_checks.py:7 +#: 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 "" -"Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel " -"zwischen Sommer- und Winterzeit führen (z.B. das Auftauchen derselben " -"lokalen Zeit zweimal aufgrund der Zeitumstellung)." +msgstr "Sie haben USE_TZ auf False gesetzt. Dies könnte zu Problemen beim Wechsel zwischen Sommer- und Winterzeit führen (z.B. das Auftauchen derselben lokalen Zeit zweimal aufgrund der Zeitumstellung)." -#: core/checks/settings_checks.py:11 +#: core/checks/settings_checks.py:9 msgid "Set `USE_TZ = True` in settings.py" msgstr "Setze 'USE_TZ = True' in settings.py" @@ -2321,31 +2182,31 @@ msgstr "Platzhalter" msgid "Missing 2FA verification." msgstr "Fehlende 2FA-Verifizierung." -#: core/forms.py:35 +#: core/forms.py:40 msgid "Old password" msgstr "Altes Passwort" -#: core/forms.py:40 +#: core/forms.py:44 msgid "New password" msgstr "Neues Passwort" -#: core/forms.py:79 +#: core/forms.py:76 msgid "Old password mismatchs" msgstr "Altes Passwort stimmt nicht überein" -#: core/forms.py:92 +#: core/forms.py:89 msgid "Passwords mismatch" msgstr "Passwörter stimmen nicht überein" -#: core/forms.py:124 +#: core/forms.py:118 msgid "Enable API access" msgstr "API Zugriff aktivieren" -#: core/forms.py:170 +#: core/forms.py:152 msgid "Verification code" msgstr "Bestätigungscode" -#: core/forms.py:181 +#: core/forms.py:163 msgid "Invalid code" msgstr "Ungültiger Code" @@ -2362,20 +2223,20 @@ msgstr "verändert" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s der Identität %(user)s" -#: core/handlers.py:64 +#: core/handlers.py:63 #, python-format msgid "%(object)s '%(name)s' %(action)s by " msgstr "%(object)s '%(name)s' %(action)s von " -#: core/handlers.py:67 +#: core/handlers.py:65 msgid "deleted" msgstr "entfernt" -#: core/handlers.py:71 +#: core/handlers.py:69 msgid "user {}" msgstr "Benutzer {}" -#: core/handlers.py:73 +#: core/handlers.py:71 msgid "management command" msgstr "Administrationsbefehl" @@ -2383,140 +2244,137 @@ msgstr "Administrationsbefehl" msgid "You can't delete your own account" msgstr "Sie können Ihr eigenes Konto nicht entfernen" -#: core/handlers.py:128 +#: core/handlers.py:131 msgid "One or more updates are available" msgstr "Eine oder mehrere Aktualisierungen sind verfügbar" -#: core/management/commands/communicate_with_public_api.py:42 +#: core/management/commands/communicate_with_public_api.py:44 msgid "[modoboa] Update(s) available" msgstr "[modoboa] Update(s) verfügbar" -#: core/models.py:55 +#: core/models.py:52 msgid "Allow mailboxes access" msgstr "Erlaube den Postfach-Zugriff" -#: core/models.py:57 +#: core/models.py:54 msgid "Allow this administrator to access user mailboxes" msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen" -#: core/models.py:59 core/templates/core/user_security.html:119 +#: core/models.py:57 msgid "password" msgstr "Passwort" -#: core/models.py:62 +#: core/models.py:60 msgid "language" msgstr "Sprache" -#: core/models.py:66 +#: core/models.py:63 msgid "Prefered language to display pages." msgstr "Bevorzugte Anzeigesprache für Seiten." -#: core/models.py:75 +#: core/models.py:72 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "" -"Eine alternative E-Mail-Adresse welche Wiederherstellungszwecken dient." +msgstr "Eine alternative E-Mail-Adresse welche Wiederherstellungszwecken dient." -#: core/models.py:131 +#: core/models.py:126 msgid "Failed to update password: LDAP module not installed" msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert" -#: core/models.py:166 policyd/core.py:106 +#: core/models.py:159 msgid "account" msgstr "Konto" -#: core/models.py:294 +#: core/models.py:286 msgid "Unknown" msgstr "Unbekannt" -#: core/models.py:337 +#: core/models.py:328 msgid "You can't import an account with a role greater than yours" -msgstr "" -"Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren" +msgstr "Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren" -#: core/models.py:352 +#: core/models.py:343 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen" -#: core/models.py:359 +#: core/models.py:348 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden" -#: core/password_validation.py:25 +#: core/password_validation.py:24 msgid "Password must contain at least {} digit." msgid_plural "Password must contain at least {} digits." msgstr[0] "Das Passwort muss mindestens {} Ziffer enthalten." msgstr[1] "Das Passwort muss mindestens {} Ziffern enthalten." -#: core/password_validation.py:37 +#: core/password_validation.py:34 msgid "Password must contain at least {} lowercase letter." msgid_plural "Password must contain at least {} lowercase letters." msgstr[0] "Das Passwort muss mindestens {} Kleinbuchstaben enthalten." msgstr[1] "Das Passwort muss mindestens {} Kleinbuchstaben enthalten." -#: core/password_validation.py:49 +#: core/password_validation.py:45 msgid "Password must contain at least {} uppercase letter." msgid_plural "Password must contain at least {} uppercase letters." msgstr[0] "Das Passwort muss mindestens {} Großbuchstaben enthalten." msgstr[1] "Das Passwort muss mindestens {} Großbuchstaben enthalten." -#: core/password_validation.py:62 +#: core/password_validation.py:57 msgid "Password must contain at least {} special character." msgid_plural "Password must contain at least {} special characters." msgstr[0] "Das Passwort muss mindestens {} Sonderzeichen enthalten." msgstr[1] "Das Passwort muss mindestens {} Sonderzeichen enthalten." -#: core/password_validation.py:70 +#: core/password_validation.py:65 msgid "Your password must contain a combination of different character types." -msgstr "" -"Ihr Passwort muss eine Kombination verschiedener Zeichentypen enthalten." +msgstr "Ihr Passwort muss eine Kombination verschiedener Zeichentypen enthalten." -#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102 +#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:103 msgid "API endpoint" msgstr "API-Endpunkt" -#: core/sms_backends/ovh.py:24 core/sms_backends/ovh.py:62 +#: core/sms_backends/ovh.py:24 core/sms_backends/ovh.py:65 msgid "OVH Europe" msgstr "OVH Europa" -#: core/sms_backends/ovh.py:25 core/sms_backends/ovh.py:63 +#: core/sms_backends/ovh.py:25 core/sms_backends/ovh.py:66 msgid "OVH US" msgstr "OVH US" -#: core/sms_backends/ovh.py:26 core/sms_backends/ovh.py:64 +#: core/sms_backends/ovh.py:26 core/sms_backends/ovh.py:67 msgid "OVH North-America" msgstr "OVH Nordamerika" -#: core/sms_backends/ovh.py:27 core/sms_backends/ovh.py:65 +#: core/sms_backends/ovh.py:27 core/sms_backends/ovh.py:68 msgid "So you Start Europe" msgstr "So you Start Europa" -#: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:66 +#: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:69 msgid "So you Start North America" msgstr "So you Start Amerika" -#: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:67 +#: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:70 msgid "Kimsufi Europe" msgstr "Kimsufi Europa" -#: core/sms_backends/ovh.py:30 core/sms_backends/ovh.py:68 +#: core/sms_backends/ovh.py:30 core/sms_backends/ovh.py:71 msgid "Kimsufi North America" msgstr "Kimsufi Nordamerika" -#: core/sms_backends/ovh.py:36 core/sms_backends/ovh.py:109 +#: core/sms_backends/ovh.py:37 core/sms_backends/ovh.py:107 msgid "Application key" msgstr "Applikationsschlüssel" -#: core/sms_backends/ovh.py:41 +#: core/sms_backends/ovh.py:44 msgid "Application secret" msgstr "Applikationsgeheimnis" -#: core/sms_backends/ovh.py:49 core/sms_backends/ovh.py:124 +#: core/sms_backends/ovh.py:52 core/sms_backends/ovh.py:116 msgid "Consumer key" msgstr "Verbraucherschlüssel" -#: core/sms_backends/ovh.py:116 +#: core/sms_backends/ovh.py:111 msgid "Appication secret" msgstr "Anwendungspasswort" @@ -2544,9 +2402,7 @@ msgstr "Neuste Nachrichten" msgid "" "Visit the official " "weblog for more information." -msgstr "" -"Besuchen Sie den offiziellen Weblog für weitere Informationen." +msgstr "Besuchen Sie den offiziellen Weblog für weitere Informationen." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2561,9 +2417,7 @@ msgstr "Verwalten Sie Ihren Zugriff auf die Modoboa API" msgid "" "A documentation of the API is available here." -msgstr "" -"Eine Dokumentation der API ist hier verfügbar." +msgstr "Eine Dokumentation der API ist hier verfügbar." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2574,7 +2428,7 @@ msgstr "API access token" msgid "Hello %(user)s." msgstr "Hallo %(user)s." -#: core/templates/core/information.html:2 core/templatetags/core_tags.py:58 +#: core/templates/core/information.html:2 core/templatetags/core_tags.py:62 msgid "Information" msgstr "Information" @@ -2588,9 +2442,7 @@ msgstr "Eine oder mehrere Aktualisierungen sind verfügbar!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "" -"Überprüfen Sie die folgende Liste auf Komponenten, die aktualisiert werden " -"können." +msgstr "Überprüfen Sie die folgende Liste auf Komponenten, die aktualisiert werden können." #: core/templates/core/information.html:10 msgid "Applications" @@ -2608,7 +2460,7 @@ msgstr "Aktuellste Version" msgid "Active users" msgstr "Aktive Benutzer" -#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:63 +#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:66 msgid "Logs" msgstr "Logs" @@ -2631,14 +2483,10 @@ msgid "" msgid_plural "" "\n" " The following updates are available:\n" -msgstr[0] "" -"\n" -"Die folgende Aktualisierung ist verfügbar:\n" -msgstr[1] "" -"\n" -"Die folgenden Aktualisierungen sind verfügbar:\n" +msgstr[0] "\nDie folgende Aktualisierung ist verfügbar:\n" +msgstr[1] "\nDie folgenden Aktualisierungen sind verfügbar:\n" -#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70 +#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71 msgid "Parameters" msgstr "Parameter" @@ -2655,12 +2503,12 @@ msgstr "Speichern" msgid "Modoboa settings" msgstr "Modoboa-Einstellungen" -#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:95 +#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:90 msgid "Settings" msgstr "Einstellungen" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:139 +#: core/templatetags/core_tags.py:120 msgid "Preferences" msgstr "Einstellungen" @@ -2680,7 +2528,7 @@ msgstr "Aktualisieren Sie Ihre persönlichen Daten" msgid "Click here to update your password" msgstr "Hier klicken um das Passwort zu aktualisieren" -#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:145 +#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:124 msgid "Security" msgstr "Sicherheit" @@ -2690,11 +2538,9 @@ msgstr "Zwei-Faktor-Authentifizierung" #: 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." -msgstr "" -"Installiere ein soft-token Authenticator, wie FreeOTP oder Google " -"Authenticator vom Appstore und scannen Sie den QR-Code." +"Install a soft token authenticator like FreeOTP or Google Authenticator from" +" your application repository and use that app to scan this QR code." +msgstr "Installiere ein soft-token Authenticator, wie FreeOTP oder Google Authenticator vom Appstore und scannen Sie den QR-Code." #: core/templates/core/user_security.html:25 msgid "Pin code" @@ -2707,9 +2553,7 @@ msgstr "Registrieren" #: core/templates/core/user_security.html:33 msgid "" "Congratulations! Two-Factor Authentication is now enabled for your account." -msgstr "" -"Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account " -"aktiviert." +msgstr "Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account aktiviert." #: core/templates/core/user_security.html:38 #: core/templates/core/user_security.html:89 @@ -2718,28 +2562,16 @@ msgid "" "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 "" -"Die folgenden Wiederherstellungscodes können einmalig benutzt werden, um den " -"Zugriff auf ihr Konto wiederherzustellen, wenn sie zum Beispiel ihr " -"Mobiltelefon verlieren. Achten sie darauf diese sicher aufzubewahren, sonst " -"werden sie keine Möglichkeit mehr haben auf den Account zuzugreifen" +msgstr "Die folgenden Wiederherstellungscodes können einmalig benutzt werden, um den Zugriff auf ihr Konto wiederherzustellen, wenn sie zum Beispiel ihr Mobiltelefon verlieren. Achten sie darauf diese sicher aufzubewahren, sonst werden sie keine Möglichkeit mehr haben auf den Account zuzugreifen" #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "Zwei-Faktor-Authentifizierung ist für diesen Account aktiviert." -#: 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 "Deaktiviere 2-Faktor-Authentifizierung" -#: 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 "Setze Wiederherstellungscodes zurück" @@ -2748,10 +2580,7 @@ msgstr "Setze Wiederherstellungscodes zurück" msgid "" "Two-Factor Authentication (2FA) is not yet activated for your account. " "Enabling this feature will increase your account's security." -msgstr "" -"Zwei-Faktor-Authentifizierung (2FA) ist noch nicht für diesen Account " -"aktiviert.\n" -"Aktiviere dieses Feature, um die Account-Sicherheit zu erhöhen." +msgstr "Zwei-Faktor-Authentifizierung (2FA) ist noch nicht für diesen Account aktiviert.\nAktiviere dieses Feature, um die Account-Sicherheit zu erhöhen." #: core/templates/core/user_security.html:73 msgid "Enable 2FA" @@ -2765,76 +2594,67 @@ msgstr "Neue Wiederherstellungscodes" msgid "Here are your new recovery codes. " msgstr "Hier sind Ihre neuen Wiederherstellungscodes." -#: core/templates/core/user_security.html:118 -#, fuzzy -#| msgid "Crypt passwords" -msgid "Confirm your password" -msgstr "Passwörter verschlüsseln" - #: core/templatetags/core_tags.py:34 msgid "Modoboa" msgstr "Modoboa" -#: core/templatetags/core_tags.py:110 +#: core/templatetags/core_tags.py:102 msgid "Logout" msgstr "Logout" -#: core/templatetags/core_tags.py:154 +#: core/templatetags/core_tags.py:131 msgid "API" msgstr "API" -#: core/utils.py:33 +#: core/utils.py:32 msgid "The core part of Modoboa" msgstr "Der Kern von Modoboa" -#: core/views/admin.py:42 +#: core/views/admin.py:43 msgid "Parameters saved" msgstr "Parameter gespeichert" -#: core/views/auth.py:101 +#: core/views/auth.py:100 msgid "Your username and password didn't match. Please try again." -msgstr "" -"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es " -"noch einmal." +msgstr "Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es noch einmal." -#: core/views/auth.py:144 +#: core/views/auth.py:135 msgid "User '{}' successfully logged out" msgstr "Benutzer '{}' erfolgreich abgemeldet" -#: core/views/user.py:55 +#: core/views/user.py:59 msgid "Profile updated" msgstr "Profil aktualisiert" -#: core/views/user.py:89 +#: core/views/user.py:88 msgid "Preferences saved" msgstr "Einstellungen gespeichert" -#: core/views/user.py:118 +#: core/views/user.py:110 msgid "Access updated" msgstr "Zugriff aktualisiert" -#: dmarc/forms.py:36 dmarc/forms.py:50 +#: dmarc/forms.py:38 dmarc/forms.py:51 msgid "DNS settings" msgstr "DNS Einstellungen" -#: dmarc/forms.py:39 dmarc/forms.py:56 +#: dmarc/forms.py:41 dmarc/forms.py:54 msgid "Enable reverse lookups" msgstr "Reverse-Lookups aktivieren" -#: dmarc/forms.py:41 dmarc/forms.py:58 +#: dmarc/forms.py:44 dmarc/forms.py:56 msgid "Enable reverse DNS lookups (reports will be longer to display)" -msgstr "" -"Reverse-DNS-Lookups aktivieren (Die Anzeige von Berichten dauert länger)" +msgstr "Reverse-DNS-Lookups aktivieren (Die Anzeige von Berichten dauert länger)" -#: dmarc/forms.py:74 dmarc/forms.py:78 +#: dmarc/forms.py:69 dmarc/forms.py:71 msgid "DMARC" msgstr "DMARC" -#: dmarc/handlers.py:21 +#: dmarc/handlers.py:20 msgid "Show DMARC report for {}" msgstr "DMARC-Bericht für {} anzeigen" -#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120 +#: dmarc/lib.py:299 dmarc/templatetags/dmarc_tags.py:59 dmarc/views.py:123 msgid "Not resolved" msgstr "Nicht aufgelöst" @@ -2870,11 +2690,11 @@ msgstr "Temporärer Fehler" msgid "Permanent error" msgstr "Permanenter Fehler" -#: dmarc/models.py:24 +#: dmarc/models.py:25 msgid "Policy" msgstr "Richtlinie" -#: dmarc/models.py:26 +#: dmarc/models.py:29 msgid "Soft failure" msgstr "Schwacher Fehler" @@ -2946,95 +2766,95 @@ msgstr "Weiterleitungen mit ARC" msgid "Unknown sources / Threats" msgstr "Unbekannte Quellen / Bedrohungen" -#: dnstools/lib.py:82 +#: dnstools/lib.py:78 msgid "Wrong ip4 mechanism syntax" msgstr "Falsche Syntax des IP4-Mechanismus" -#: dnstools/lib.py:86 +#: dnstools/lib.py:82 msgid "Wrong IPv4 address format" msgstr "Falsches IPv4-Adressformat" -#: dnstools/lib.py:92 +#: dnstools/lib.py:88 msgid "Wrong ip6 mechanism syntax" msgstr "Falsche Syntax des IP6-Mechanismus" -#: dnstools/lib.py:97 +#: dnstools/lib.py:93 msgid "Wrong IPv6 address format" msgstr "Falsches IPv6-Adressformat" -#: dnstools/lib.py:111 dnstools/lib.py:136 +#: dnstools/lib.py:108 dnstools/lib.py:134 msgid "Invalid syntax for {} mechanism" msgstr "Ungültige Syntax für {}-Mechanismus" -#: dnstools/lib.py:113 +#: dnstools/lib.py:110 msgid "Invalid mask found {}" msgstr "Ungültige Maske gefunden {}" -#: dnstools/lib.py:157 +#: dnstools/lib.py:155 msgid "Not an SPF record" msgstr "Kein SPF-Eintrag" -#: dnstools/lib.py:179 +#: dnstools/lib.py:177 msgid "Unknown mechanism {}" msgstr "Unbekannter Mechanismus {}" -#: dnstools/lib.py:181 +#: dnstools/lib.py:179 msgid "Unknown modifier {}" msgstr "Unbekannter Modifikator {}" -#: dnstools/lib.py:184 +#: dnstools/lib.py:182 msgid "Duplicate modifier {} found" msgstr "Doppelter Modifikator {} gefunden" -#: dnstools/lib.py:188 +#: dnstools/lib.py:186 msgid "No mechanism found" msgstr "Kein Mechanismus gefunden" -#: dnstools/lib.py:195 +#: dnstools/lib.py:193 msgid "Not a valid DKIM record" msgstr "Kein gültiger DKIM-Eintrag" -#: dnstools/lib.py:203 dnstools/lib.py:256 +#: dnstools/lib.py:201 dnstools/lib.py:254 msgid "Invalid tag {}" msgstr "Ungültiger Tag {}" -#: dnstools/lib.py:208 +#: dnstools/lib.py:206 msgid "No key found in record" msgstr "Kein Schlüssel im Datensatz gefunden" -#: dnstools/lib.py:215 +#: dnstools/lib.py:213 msgid "Wrong value {} for tag {}" msgstr "Falscher Wert {} für Tag {}" -#: dnstools/lib.py:230 +#: dnstools/lib.py:228 msgid "Wrong value {} for tag {}:" msgstr "Falscher Wert {} für Tag {}:" -#: dnstools/lib.py:234 +#: dnstools/lib.py:232 msgid " not an integer" msgstr "Keine ganze Zahl" -#: dnstools/lib.py:236 +#: dnstools/lib.py:235 msgid " less than {}" msgstr "kleiner als {}" -#: dnstools/lib.py:239 +#: dnstools/lib.py:238 msgid " greater than {}" msgstr "größer als {}" -#: dnstools/lib.py:248 +#: dnstools/lib.py:246 msgid "Not a valid DMARC record" msgstr "Kein gültiger DMARC-Eintrag" -#: dnstools/lib.py:259 +#: dnstools/lib.py:257 msgid "Unknown tag {}" msgstr "Unbekanntes Tag {}" -#: dnstools/lib.py:264 +#: dnstools/lib.py:262 msgid "Missing required p tag" msgstr "Erforderliches p-Tag fehlt" -#: dnstools/models.py:78 +#: dnstools/models.py:75 msgid "Public key mismatchs" msgstr "Öffentlicher Schlüssel stimmt nicht überein" @@ -3064,11 +2884,9 @@ msgstr "Ein DNS-Eintrag wurde gefunden, aber seine Syntax ist ungültig:" #: 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." -msgstr "" -"Hier ist ein Beispiel für die DNS-Konfiguration (Bind-Format). Ersetzen Sie " -"den Wert zwischen [ ] durch die entsprechenden Werte." +"Here is an example of DNS configuration (bind format). Replace value between" +" [ ] by the appropriate ones." +msgstr "Hier ist ein Beispiel für die DNS-Konfiguration (Bind-Format). Ersetzen Sie den Wert zwischen [ ] durch die entsprechenden Werte." #: dnstools/templates/dnstools/domain_dns_configuration.html:15 msgid "IP address of your Modoboa server" @@ -3083,7 +2901,7 @@ msgstr "Automatische Konfiguration" msgid "hostname of your automx server" msgstr "Hostname Ihres Automx-Servers" -#: dnstools/views.py:35 +#: dnstools/views.py:36 msgid "{} record of {}" msgstr "{} Eintrag von {}" @@ -3091,154 +2909,144 @@ msgstr "{} Eintrag von {}" msgid "Auto configuration records for {}" msgstr "Automatische Konfigurationseinträge für {}" -#: dnstools/views.py:80 +#: dnstools/views.py:84 msgid "DNS configuration for {}" msgstr "DNS-Konfiguration für {}" -#: imap_migration/api/v2/serializers.py:117 +#: imap_migration/api/v2/serializers.py:52 msgid "Access denied" msgstr "Zugriff verweigert" -#: imap_migration/app_settings.py:23 imap_migration/app_settings.py:102 +#: imap_migration/app_settings.py:17 imap_migration/app_settings.py:67 msgid "Enable IMAP Migration" msgstr "IMAP-Migration aktivieren" -#: imap_migration/app_settings.py:24 imap_migration/app_settings.py:104 +#: imap_migration/app_settings.py:19 imap_migration/app_settings.py:69 msgid "Enable IMAP Migration." msgstr "IMAP-Migration aktivieren." -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:24 msgid "OfflineIMAP" msgstr "OfflineIMAP" -#: imap_migration/app_settings.py:40 imap_migration/app_settings.py:110 +#: imap_migration/app_settings.py:27 imap_migration/app_settings.py:75 msgid "Concurrent sync jobs" msgstr "Gleichzeitige Synchronisierungsaufgaben" -#: imap_migration/app_settings.py:42 imap_migration/app_settings.py:112 +#: imap_migration/app_settings.py:29 imap_migration/app_settings.py:77 msgid "The maximum number of concurrent synchronization jobs" msgstr "Die maximale Anzahl von gleichzeitigen Synchronisierungsaufgaben" -#: imap_migration/app_settings.py:53 +#: imap_migration/app_settings.py:34 msgid "OfflineIMAP Filter" msgstr "OfflineIMAP Filter" -#: imap_migration/app_settings.py:59 imap_migration/app_settings.py:118 +#: imap_migration/app_settings.py:37 imap_migration/app_settings.py:83 msgid "Create Folders" msgstr "Erstelle Ordner" -#: imap_migration/app_settings.py:61 imap_migration/app_settings.py:120 +#: imap_migration/app_settings.py:39 imap_migration/app_settings.py:85 msgid "Allow Creation of missing folders during sync" -msgstr "" -"Erlaube die Erstellung von fehlenden Ordnern während der Synchronisation" +msgstr "Erlaube die Erstellung von fehlenden Ordnern während der Synchronisation" -#: imap_migration/app_settings.py:68 imap_migration/app_settings.py:125 +#: imap_migration/app_settings.py:42 imap_migration/app_settings.py:90 msgid "Folder Filter Exclusions" msgstr "Ordnerfilter Ausschlüsse" -#: imap_migration/app_settings.py:70 imap_migration/app_settings.py:128 +#: 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" -msgstr "" -"Benutze eine RegExp, um explizit Odner in die Synchronisation einzubeziehen. " -"Beispiel: ^Trash$|Del" +msgstr "Benutze eine RegExp, um explizit Odner in die Synchronisation einzubeziehen. Beispiel: ^Trash$|Del" -#: imap_migration/app_settings.py:78 imap_migration/app_settings.py:135 +#: imap_migration/app_settings.py:48 imap_migration/app_settings.py:100 msgid "Folder Filter Inclusions" msgstr "Ordnerfilter einbeziehen" -#: imap_migration/app_settings.py:80 imap_migration/app_settings.py:138 +#: 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 " -msgstr "" -"Eine kommaseparierte Liste von Ordnern, die explizit in die Synchronisierung " -"einbezogen werden sollen, auch wenn sie durch die Ordnerfilter-Ausschlüsse " -"gefiltert wurden. Beispiel: debian.user, debian.personal " +"filtered by the Folder Filter Exclusions. Example: debian.user, " +"debian.personal " +msgstr "Eine kommaseparierte Liste von Ordnern, die explizit in die Synchronisierung einbezogen werden sollen, auch wenn sie durch die Ordnerfilter-Ausschlüsse gefiltert wurden. Beispiel: debian.user, debian.personal " -#: imap_migration/app_settings.py:107 +#: imap_migration/app_settings.py:72 msgid "OfflineIMAP settings" msgstr "OfflineIMAP-Einstellungen" -#: imap_migration/app_settings.py:115 +#: imap_migration/app_settings.py:80 msgid "OfflineIMAP Filter settings" msgstr "OfflineIMAP Filter Einstellungen" -#: imap_migration/apps.py:18 imap_migration/apps.py:23 +#: imap_migration/apps.py:18 imap_migration/apps.py:20 msgid "IMAP Migration" msgstr "IMAP-Migration" -#: imap_migration/auth_backends.py:49 +#: imap_migration/auth_backends.py:46 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "Verbindung zu IMAP-Server fehlgeschlagen: %s" -#: imap_migration/checks.py:12 +#: imap_migration/checks.py:11 msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." -msgstr "" -"Automatische Domain/Mailbox-Erstellung ist deaktiviert, daher funktioniert " -"die IMAP-Authentifizierung nicht." +msgstr "Automatische Domain/Mailbox-Erstellung ist deaktiviert, daher funktioniert die IMAP-Authentifizierung nicht." -#: imap_migration/checks.py:16 +#: imap_migration/checks.py:13 msgid "" "Go to the online parameters panel (admin tab) and activate this feature." -msgstr "" -"Wechseln Sie zu den Online Parametern (Admin Tab) und aktivieren Sie diese " -"Funktion." +msgstr "Wechseln Sie zu den Online Parametern (Admin Tab) und aktivieren Sie diese Funktion." #: imap_migration/templates/imap_migration/index.html:6 msgid "IMAP migration" msgstr "IMAP-Migration" -#: ldapsync/lib.py:82 +#: ldapsync/lib.py:84 msgid "Failed to create LDAP account: {}" msgstr "LDAP-Account konnte nicht angelegt werden: {}" -#: ldapsync/lib.py:121 +#: ldapsync/lib.py:124 msgid "Failed to update LDAP account: {}" msgstr "LDAP-Account konnte nicht aktualisiert werden: {}" -#: ldapsync/lib.py:134 +#: ldapsync/lib.py:138 msgid "Failed to delete LDAP account: {}" msgstr "LDAP-Account konnte nicht gelöscht werden: {}" -#: ldapsync/lib.py:141 +#: ldapsync/lib.py:149 msgid "Failed to disable LDAP account: {}" msgstr "LDAP-Account konnte nicht deaktiviert werden: {}" -#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83 -#: lib/api_client.py:87 +#: lib/api_client.py:36 lib/api_client.py:72 lib/api_client.py:87 +#: lib/api_client.py:92 #, python-format msgid "Failed to communicate with public API: %s" msgstr "Die Kommunikation mit der öffentlichen API ist fehlgeschlagen: %s" -#: lib/db_utils.py:22 +#: lib/db_utils.py:23 #, python-format msgid "Connection to database %s not configured" msgstr "Verbindung zu Datenbank %s nicht konfiguriert" -#: lib/email_utils.py:139 lib/email_utils.py:350 +#: lib/email_utils.py:143 lib/email_utils.py:363 msgid "unable to determine encoding of string" msgstr "Kodierung der Zeichenkette konnte nicht bestimmt werden" -#: lib/exceptions.py:83 +#: lib/exceptions.py:67 #, python-format msgid "Permission denied: %s" msgstr "Zugriff verweigert: %s" -#: lib/exceptions.py:84 +#: lib/exceptions.py:68 msgid "Permission denied" msgstr "Zugriff verweigert" -#: lib/fields.py:14 lib/validators.py:13 +#: lib/fields.py:15 lib/validators.py:14 msgid "Enter a valid domain name" msgstr "Geben Sie einen gültigen Domain-Namen an" -#: lib/fields.py:41 lib/fields.py:54 +#: lib/fields.py:44 lib/fields.py:58 msgid "Enter a valid email address." msgstr "Geben Sie eine gültige E-Mail-Adresse ein." @@ -3248,176 +3056,153 @@ msgstr "Geben Sie eine gültige E-Mail-Adresse ein." msgid "Submit" msgstr "Abschicken" -#: lib/ldap_utils.py:126 +#: lib/ldap_utils.py:129 msgid "Failed to update password: {}" msgstr "Ändern des Passworts fehlgeschlagen: {}" -#: lib/templatetags/lib_tags.py:120 templates/common/email_searchbar.html:17 +#: lib/templatetags/lib_tags.py:107 templates/common/email_searchbar.html:17 msgid "Subject" msgstr "Betreff" -#: limits/app_settings.py:17 limits/app_settings.py:147 +#: limits/app_settings.py:17 limits/app_settings.py:154 msgid "Default per-admin limits" msgstr "Standardgrenzen je Admin" -#: limits/app_settings.py:20 limits/app_settings.py:153 +#: limits/app_settings.py:20 limits/app_settings.py:157 msgid "Enable per-admin limits" msgstr "Aktiviere Grenzen je Admin" -#: limits/app_settings.py:22 limits/app_settings.py:154 +#: limits/app_settings.py:22 limits/app_settings.py:158 msgid "Enable or disable per-admin limits" msgstr "Aktiviere oder deaktiviere Grenzen je Admin" -#: 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 +#: 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 msgid "Domain admins" msgstr "Domain-Administratoren" -#: limits/app_settings.py:29 limits/app_settings.py:163 +#: 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 "" -"Maximale Anzahl Domänenadministratoren, die ein neuer Administrator " -"erstellen darf. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" +msgstr "Maximale Anzahl Domänenadministratoren, die ein neuer Administrator erstellen darf. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:39 limits/app_settings.py:175 +#: 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 "" -"Maximale Anzahl an erlaubten Domänen für einen neuen Administrator. (0 für " -"generelles Verbieten, -1 für unbeschränktes Erstellen)" +msgstr "Maximale Anzahl an erlaubten Domänen für einen neuen Administrator. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:48 limits/app_settings.py:186 +#: 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 "" -"Maximale Anzahl an erlaubten Domänen-Alias für einen neuen Administrator. (0 " -"für generelles Verbieten, -1 für unbeschränktes Erstellen)" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "Maximale Anzahl an erlaubten Domänen-Alias für einen neuen Administrator. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:58 limits/app_settings.py:198 +#: 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 "" -"Maximale Anzahl an erlaubten Postfächern für einen neuen Administrator. (0 " -"für generelles Verbieten, -1 für unbeschränktes Erstellen)" +msgstr "Maximale Anzahl an erlaubten Postfächern für einen neuen Administrator. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:67 limits/app_settings.py:210 +#: 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 "" -"Maximale Anzahl an erlaubten Alias für einen neuen Administrator. (0 für " -"generelles Verbieten, -1 für unbeschränktes Erstellen)" +msgstr "Maximale Anzahl an erlaubten Alias für einen neuen Administrator. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:76 limits/app_settings.py:220 +#: 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 "" -"Das Kontingent, das ein Wiederverkäufer zwischen den von ihm erstellten " -"Domänen aufteilen kann. (0 bedeutet kein Kontingent)" +msgstr "Das Kontingent, das ein Wiederverkäufer zwischen den von ihm erstellten Domänen aufteilen kann. (0 bedeutet kein Kontingent)" -#: limits/app_settings.py:82 limits/app_settings.py:232 +#: limits/app_settings.py:88 limits/app_settings.py:213 msgid "Default per-domain limits" msgstr "Standardgrenzen je Domäne" -#: limits/app_settings.py:85 limits/app_settings.py:238 +#: limits/app_settings.py:91 limits/app_settings.py:216 msgid "Enable per-domain limits" msgstr "Aktiviere Grenzen je Domäne" -#: limits/app_settings.py:87 limits/app_settings.py:239 +#: limits/app_settings.py:93 limits/app_settings.py:217 msgid "Enable or disable per-domain limits" msgstr "Aktiviere oder deaktiviere Grenzen je Domäne" -#: limits/app_settings.py:94 limits/app_settings.py:248 +#: 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 "" -"Maximale Anzahl der zulässigen Domänenadministratoren für eine neue Domäne. " -"(0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "Maximale Anzahl der zulässigen Domänenadministratoren für eine neue Domäne. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:104 limits/app_settings.py:260 +#: 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 "" -"Maximale Anzahl der erlaubten Domänen-Aliase für eine neue Domain. (0 für " -"generelles Verbieten, -1 für unbeschränktes Erstellen)" +msgstr "Maximale Anzahl der erlaubten Domänen-Aliase für eine neue Domain. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:114 limits/app_settings.py:272 +#: 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 "" -"Maximale Anzahl der zulässigen Postfächer für eine neue Domäne. (0 für " -"generelles Verbieten, -1 für unbeschränktes Erstellen)" +msgstr "Maximale Anzahl der zulässigen Postfächer für eine neue Domäne. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/app_settings.py:123 limits/app_settings.py:283 +#: 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 "" -"Maximale Anzahl der erlaubten Aliase für eine neue Domäne. (0 für generelles " -"Verbieten, -1 für unbeschränktes Erstellen)" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" +msgstr "Maximale Anzahl der erlaubten Aliase für eine neue Domäne. (0 für generelles Verbieten, -1 für unbeschränktes Erstellen)" -#: limits/apps.py:13 limits/apps.py:17 +#: limits/apps.py:13 limits/apps.py:15 msgid "Limits" msgstr "Grenzwerte" -#: limits/constants.py:14 +#: limits/constants.py:10 msgid "Maximum number of domains this user can create" msgstr "Maximale Anzahl Domains, die dieser Benutzer erstellen darf" -#: limits/constants.py:23 +#: limits/constants.py:14 msgid "Maximum number of domain aliases this user can create" msgstr "Maximale Anzahl Domain Aliase, die dieser Benutzer erstellen darf" -#: limits/constants.py:32 +#: limits/constants.py:18 msgid "Maximum number of mailboxes this user can create" msgstr "Maximale Anzahl Mailboxen, die dieser Benutzer erstellen darf" -#: limits/constants.py:40 +#: limits/constants.py:21 msgid "Maximum number of mailbox aliases this user can create" msgstr "Maximale Anzahl Mailbox-Aliase, die dieser Benutzer erstellen darf" -#: limits/constants.py:49 +#: limits/constants.py:25 msgid "Maximum number of domain administrators this user can create" msgstr "Maximale Anzahl Domains, die ein Administrator erstellen darf" -#: limits/constants.py:60 +#: limits/constants.py:31 msgid "Quota shared between domains of this reseller" -msgstr "" -"Gemeinsame Nutzung des Kontingents durch die Domänen dieses Wiederverkäufers" +msgstr "Gemeinsame Nutzung des Kontingents durch die Domänen dieses Wiederverkäufers" -#: limits/constants.py:77 +#: limits/constants.py:42 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Maximale Anzahl der für diese Domäne zulässigen Domänen-Aliase." -#: limits/constants.py:85 +#: limits/constants.py:46 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Maximale Anzahl von Postfächern, die für diese Domäne zulässig sind." -#: limits/constants.py:93 +#: limits/constants.py:50 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Maximale Anzahl der für diese Domäne zulässigen Mailbox-Aliase." -#: limits/constants.py:102 +#: limits/constants.py:55 msgid "Maximum number of domain admins allowed for this domain." -msgstr "" -"Maximale Anzahl von Domänenadministratoren, die für diese Domäne zugelassen " -"sind." +msgstr "Maximale Anzahl von Domänenadministratoren, die für diese Domäne zugelassen sind." -#: limits/forms.py:38 limits/forms.py:88 +#: limits/forms.py:38 limits/forms.py:87 msgid "Invalid limit" msgstr "Ungültiger Grenzwert" -#: limits/handlers.py:118 limits/handlers.py:151 +#: limits/handlers.py:118 limits/handlers.py:154 msgid "Resources" msgstr "Ressourcen" @@ -3430,13 +3215,11 @@ msgstr "%s: Grenze erreicht" msgid "Not enough resources" msgstr "Nicht ausreichend Ressourcen" -#: limits/lib.py:46 limits/models.py:46 +#: limits/lib.py:47 limits/models.py:47 msgid "You're not allowed to define unlimited values" -msgstr "" -"Sie verfügen nicht über die erforderlichen Rechte, um unbegrenzte Werte " -"anzugeben" +msgstr "Sie verfügen nicht über die erforderlichen Rechte, um unbegrenzte Werte anzugeben" -#: limits/models.py:56 limits/models.py:119 +#: limits/models.py:57 limits/models.py:121 msgid "unlimited" msgstr "unbegrenzt" @@ -3445,93 +3228,91 @@ msgstr "unbegrenzt" msgid "Resources usage" msgstr "Ressourcen-Verbrauch" -#: maillog/api/v2/serializers.py:35 +#: maillog/api/v2/serializers.py:36 msgid "You must provide start and end dates when period is custom" -msgstr "" -"Sie müssen Anfangs- und Enddatum angeben, wenn der Zeitraum " -"benutzerdefiniert ist." +msgstr "Sie müssen Anfangs- und Enddatum angeben, wenn der Zeitraum benutzerdefiniert ist." -#: maillog/apps.py:20 maillog/forms.py:23 +#: maillog/forms.py:23 msgid "Path to the log file" msgstr "Pfad zur Log-Datei" -#: maillog/apps.py:22 maillog/forms.py:25 +#: maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "Pfad zur Log-Datei, um Statistiken zu sammeln" -#: maillog/apps.py:29 maillog/forms.py:30 +#: maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "Ablageverzeichnis für RRD-Dateien" -#: maillog/apps.py:31 maillog/forms.py:32 +#: maillog/forms.py:33 msgid "Path to directory where RRD files are stored" msgstr "Pfad zum Verzeichnis in dem die RRD-Dateien abgelegt werden" -#: maillog/apps.py:38 maillog/forms.py:37 +#: maillog/forms.py:38 msgid "Show greylisted messages" msgstr "Grey-gelistete E-Mails anzeigen" -#: maillog/apps.py:40 maillog/forms.py:40 +#: maillog/forms.py:41 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "Unterscheidung zwischen Hard- und Soft-Rejects (Greylisting)" -#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 +#: maillog/forms.py:59 maillog/handlers.py:22 msgid "Statistics" msgstr "Statistiken" -#: maillog/graphics.py:91 +#: maillog/graphics.py:93 msgid "Failed to locate rrdtool binary." msgstr "RRDTool Binary konnte nicht gefunden werden" -#: maillog/graphics.py:168 +#: maillog/graphics.py:170 msgid "Average traffic (msgs/min)" msgstr "Durchschnittlicher Traffic (Nachrichten/min)" -#: maillog/graphics.py:171 +#: maillog/graphics.py:173 msgid "sent messages" msgstr "Gesendete Nachrichten" -#: maillog/graphics.py:172 +#: maillog/graphics.py:174 msgid "received messages" msgstr "Empfangene Nachrichten" -#: maillog/graphics.py:173 +#: maillog/graphics.py:175 msgid "bounced messages" msgstr "Zurückgeworfene Nachrichten" -#: maillog/graphics.py:174 +#: maillog/graphics.py:176 msgid "rejected messages" msgstr "Abgewiesene Nachrichten" -#: maillog/graphics.py:175 +#: maillog/graphics.py:177 msgid "virus messages" msgstr "Virus E-Mails" -#: maillog/graphics.py:176 +#: maillog/graphics.py:178 msgid "spam messages" msgstr "Spam E-Mails" -#: maillog/graphics.py:183 +#: maillog/graphics.py:185 msgid "greylisted messages" msgstr "Grey-gelistete E-Mails" -#: maillog/graphics.py:200 +#: maillog/graphics.py:196 msgid "Average normal traffic size (bytes/min)" msgstr "Durchschnittliche Traffic-Menge (Bytes/min)" -#: maillog/graphics.py:203 +#: maillog/graphics.py:199 msgid "received size" msgstr "Empfangsgröße" -#: maillog/graphics.py:204 +#: maillog/graphics.py:201 msgid "sent size" msgstr "Versendegröße" -#: maillog/graphics.py:211 +#: maillog/graphics.py:209 msgid "Mail traffic" msgstr "Mailverkehr" -#: maillog/graphics.py:254 +#: maillog/graphics.py:253 msgid "Average account creation (account/hour)" msgstr "Durchschnittlich erstelle Konten (Konten/Stunde)" @@ -3559,190 +3340,181 @@ msgstr "Antworten" msgid "No statistics available" msgstr "Keine Statistik-Daten verfügbar" -#: maillog/views.py:39 +#: maillog/views.py:40 msgid "Day" msgstr "Tag" -#: maillog/views.py:40 +#: maillog/views.py:41 msgid "Week" msgstr "Woche" -#: maillog/views.py:41 +#: maillog/views.py:42 msgid "Month" msgstr "Monat" -#: maillog/views.py:42 +#: maillog/views.py:43 msgid "Year" msgstr "Jahr" -#: maillog/views.py:43 +#: maillog/views.py:44 msgid "Custom" msgstr "Benutzerdefiniert" -#: maillog/views.py:66 +#: maillog/views.py:64 msgid "Unknown graphic set" msgstr "Unbekanntes graphisches Set" -#: maillog/views.py:71 +#: maillog/views.py:69 msgid "Unknown domain" msgstr "Unbekannte Domäne" -#: maillog/views.py:76 +#: maillog/views.py:74 msgid "Bad custom period" msgstr "Ungültiger individueller Zeitraum" -#: pdfcredentials/api/v2/serializers.py:31 pdfcredentials/app_settings.py:236 -#: pdfcredentials/documents.py:60 +#: pdfcredentials/api/v2/serializers.py:31 pdfcredentials/app_settings.py:164 +#: pdfcredentials/documents.py:52 msgid "Personal account information" msgstr "Persönliche Kontoinformationen" -#: pdfcredentials/api/v2/serializers.py:61 +#: pdfcredentials/api/v2/serializers.py:54 msgid "Directory is not writable" msgstr "Verzeichnis ist nicht beschreibbar" -#: pdfcredentials/api/v2/serializers.py:82 pdfcredentials/views.py:26 +#: pdfcredentials/api/v2/serializers.py:76 pdfcredentials/views.py:28 msgid "No document available for this user" msgstr "Kein Dokument für diesen Benutzer verfügbar" -#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 +#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 msgid "Enable PDF credentials" msgstr "PDF-Anmeldeinformationen aktivieren" -#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 +#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 msgid "Enabled PDF credentials document generation on account creation." -msgstr "" -"Die Erstellung von PDF-Anmeldedokumenten bei der Kontoerstellung wurde " -"aktiviert." +msgstr "Die Erstellung von PDF-Anmeldedokumenten bei der Kontoerstellung wurde aktiviert." -#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 +#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 msgid "Documents storage" msgstr "Dokumentenablage" -#: pdfcredentials/app_settings.py:48 pdfcredentials/app_settings.py:206 +#: pdfcredentials/app_settings.py:33 pdfcredentials/app_settings.py:134 msgid "Directory to save documents into" msgstr "Speicherpfad für Dokumente" -#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 +#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 msgid "Path to a directory where PDF documents will be saved" msgstr "Dateipfad in dem die PDF-Dokumente abgelegt werden" -#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 +#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 msgid "Security options" msgstr "Sicherheitseinstellungen" -#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:214 +#: pdfcredentials/app_settings.py:43 pdfcredentials/app_settings.py:142 msgid "Delete documents after the first download" msgstr "Lösche Dokumente nach dem ersten Download" -#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 msgid "" "Automatically delete a document just after its first download from this " "interface" -msgstr "" -"Löscht automatisch das Dokument, wenn es das erste Mal über dieses " -"Oberfläche heruntergeladen wurde" +msgstr "Löscht automatisch das Dokument, wenn es das erste Mal über dieses Oberfläche heruntergeladen wurde" -#: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:151 msgid "Generate documents only at account creation" msgstr "Erzeuge Dokumente nur wenn ein Konto angelegt wurde" -#: pdfcredentials/app_settings.py:81 pdfcredentials/app_settings.py:226 +#: 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." -msgstr "" -"Erzeuge ein neues Dokument nur wenn ein neues Konto erstellt wurde. Wenn die " -"Option auf Nein steht wird jedes Mal ein neues Dokument erstellt, wenn ein " -"Passwort aktualisiert wurde." +msgstr "Erzeuge ein neues Dokument nur wenn ein neues Konto erstellt wurde. Wenn die Option auf Nein steht wird jedes Mal ein neues Dokument erstellt, wenn ein Passwort aktualisiert wurde." -#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 +#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 msgid "Customization options" msgstr "Individuell angepasste Optionen" -#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 +#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 msgid "Title" msgstr "Titel" -#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:237 +#: pdfcredentials/app_settings.py:64 pdfcredentials/app_settings.py:165 msgid "The document's title" msgstr "Titel des Dokuments" -#: pdfcredentials/app_settings.py:107 pdfcredentials/app_settings.py:241 +#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:169 msgid "Web panel url" msgstr "URL der Webanwendung" -#: pdfcredentials/app_settings.py:108 pdfcredentials/app_settings.py:241 +#: pdfcredentials/app_settings.py:68 pdfcredentials/app_settings.py:170 msgid "URL of the Modoboa web panel" msgstr "URL der Modoboa Webanwendung" -#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 +#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 msgid "Custom message" msgstr "Eigener Nachrichtentext" -#: pdfcredentials/app_settings.py:116 pdfcredentials/app_settings.py:246 +#: pdfcredentials/app_settings.py:73 pdfcredentials/app_settings.py:176 msgid "A custom message that will appear at the end of documents" msgstr "Eine eigene Nachricht, die am Ende des Dokuments angezeigt wird" -#: pdfcredentials/app_settings.py:123 pdfcredentials/app_settings.py:251 +#: pdfcredentials/app_settings.py:77 pdfcredentials/app_settings.py:181 msgid "Include mail client connection settings" msgstr "Verbindungseinstellungen für Mailprogramme einschließen" -#: pdfcredentials/app_settings.py:125 pdfcredentials/app_settings.py:254 +#: 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" -msgstr "" -"Erforderliche SMTP und IMAP Einstellungen zur Konfiguration von " -"Mailprogramme, Tablets oder Telefonen" +msgstr "Erforderliche SMTP und IMAP Einstellungen zur Konfiguration von Mailprogramme, Tablets oder Telefonen" -#: pdfcredentials/app_settings.py:133 pdfcredentials/app_settings.py:260 -#: pdfcredentials/documents.py:133 +#: pdfcredentials/app_settings.py:84 pdfcredentials/app_settings.py:190 +#: pdfcredentials/documents.py:107 msgid "SMTP server address" msgstr "SMTP Serveradresse" -#: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261 +#: pdfcredentials/app_settings.py:86 pdfcredentials/app_settings.py:191 msgid "Address of the SMTP server (hostname or IP)" msgstr "Adresse des SMTP-Servers (Hostname oder IP)" -#: pdfcredentials/app_settings.py:143 pdfcredentials/app_settings.py:265 -#: pdfcredentials/documents.py:134 +#: pdfcredentials/app_settings.py:89 pdfcredentials/app_settings.py:195 +#: pdfcredentials/documents.py:108 msgid "SMTP server port" msgstr "SMTP Server-Port" -#: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267 +#: pdfcredentials/app_settings.py:91 pdfcredentials/app_settings.py:197 msgid "Listening port of the SMTP server" msgstr "Port, auf dem der SMTP-Server erreicht werden kann" -#: pdfcredentials/app_settings.py:151 pdfcredentials/app_settings.py:271 -#: pdfcredentials/documents.py:135 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:201 +#: pdfcredentials/documents.py:109 msgid "SMTP connection security" msgstr "SMTP-Verbindungssicherheit" -#: pdfcredentials/app_settings.py:153 pdfcredentials/app_settings.py:179 -#: pdfcredentials/app_settings.py:274 pdfcredentials/app_settings.py:292 +#: pdfcredentials/app_settings.py:96 pdfcredentials/app_settings.py:111 +#: pdfcredentials/app_settings.py:204 pdfcredentials/app_settings.py:222 msgid "Connection security mechanism" msgstr "Mechanismus zur Verbindungssicherung" -#: pdfcredentials/app_settings.py:159 pdfcredentials/app_settings.py:278 -#: pdfcredentials/documents.py:136 +#: pdfcredentials/app_settings.py:99 pdfcredentials/app_settings.py:208 +#: pdfcredentials/documents.py:110 msgid "IMAP server address" msgstr "IMAP Serveradresse" -#: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279 +#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:209 msgid "Address of the IMAP server (hostname or IP)" msgstr "Adresse des IMAP-Servers (Hostname oder IP)" -#: pdfcredentials/app_settings.py:169 pdfcredentials/app_settings.py:283 -#: pdfcredentials/documents.py:137 +#: pdfcredentials/app_settings.py:104 pdfcredentials/app_settings.py:213 +#: pdfcredentials/documents.py:111 msgid "IMAP server port" msgstr "IMAP Server-Port" -#: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285 +#: pdfcredentials/app_settings.py:106 pdfcredentials/app_settings.py:215 msgid "Listening port of the IMAP server" msgstr "Port, auf dem der IMAP-Servier erreicht werden kann" -#: pdfcredentials/app_settings.py:177 pdfcredentials/app_settings.py:289 -#: pdfcredentials/documents.py:138 +#: pdfcredentials/app_settings.py:109 pdfcredentials/app_settings.py:219 +#: pdfcredentials/documents.py:112 msgid "IMAP connection security" msgstr "IMAP Verbindungssicherheit" @@ -3750,244 +3522,84 @@ msgstr "IMAP Verbindungssicherheit" msgid "PDF credentials" msgstr "PDF Anmeldeinformationen" -#: pdfcredentials/apps.py:24 +#: pdfcredentials/apps.py:21 msgid "PDF Credentials" msgstr "PDF-Anmeldeinformationen" -#: pdfcredentials/documents.py:65 +#: pdfcredentials/documents.py:55 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "Powered by Modoboa - Mail hosting made simple" -#: pdfcredentials/documents.py:84 +#: pdfcredentials/documents.py:71 #, python-format msgid "" "\n" "Dear %s, this document contains the credentials you will need\n" "to connect to Modoboa. Learn the content and destroy\n" "the document as soon as possible.\n" -msgstr "" -"\n" -"Liebe/r %s, dieses Dokument enthält die Anmeldeinformationen, die Du " -"benötigst um Dich mit Modoboa zu verbinden. Präge Dir bitte die " -"Informationen ein und lösche anschliessend dieses Dokument.\n" +msgstr "\nLiebe/r %s, dieses Dokument enthält die Anmeldeinformationen, die Du benötigst um Dich mit Modoboa zu verbinden. Präge Dir bitte die Informationen ein und lösche anschliessend dieses Dokument.\n" -#: pdfcredentials/documents.py:95 +#: pdfcredentials/documents.py:77 msgid "Web panel:" msgstr "Webanwendung:" -#: pdfcredentials/documents.py:116 +#: pdfcredentials/documents.py:91 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" "your contacts.\n" -msgstr "" -"\n" -"Hier können Sie Ihre Emails online ansehen, Filter oder Kontakte erstellen.\n" +msgstr "\nHier können Sie Ihre Emails online ansehen, Filter oder Kontakte erstellen.\n" -#: pdfcredentials/documents.py:126 +#: pdfcredentials/documents.py:98 msgid "Please change your password!" msgstr "Bitte ändern Sie Ihr Passwort!" -#: pdfcredentials/documents.py:130 +#: pdfcredentials/documents.py:104 msgid "PC/Tablet/Smartphone configuration:" msgstr "PC/Tablet/Smartphone Konfiguration:" -#: pdfcredentials/documents.py:153 +#: pdfcredentials/documents.py:122 msgid "Use those settings for your computer, tablet or phone." -msgstr "" -"Verwenden Sie diese Einstellungen für Ihren Computer, Ihr Tablet oder Telefon" +msgstr "Verwenden Sie diese Einstellungen für Ihren Computer, Ihr Tablet oder Telefon" -#: pdfcredentials/handlers.py:35 -msgid "" -"Failed to create PDF_credentials directory. Please check the permissions or " -"the path." -msgstr "" - -#: pdfcredentials/handlers.py:61 +#: pdfcredentials/handlers.py:51 msgid "Retrieve user's credentials as a PDF document" msgstr "Erhalte die Anmeldeinformationen des Benutzer als ein PDF-Dokument" -#: pdfcredentials/handlers.py:82 +#: pdfcredentials/handlers.py:71 msgid "Download PDF credentials" msgstr "PDF-Anmeldeinformationen herunterladen" -#: pdfcredentials/lib.py:28 +#: pdfcredentials/lib.py:27 msgid "Can't write to selected directory to store PDF documents" -msgstr "" -"Es kann nicht in das ausgewählte Verzeichnis zum Speichern von PDF-" -"Dokumenten geschrieben werden." +msgstr "Es kann nicht in das ausgewählte Verzeichnis zum Speichern von PDF-Dokumenten geschrieben werden." #: pdfcredentials/lib.py:34 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" -msgstr "" -"Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) " -"enthält, aufgetreten. " +msgstr "Ein Fehler ist bei der Erstellung des Pfades, der die PDF Dokumente (%s) enthält, aufgetreten. " -#: 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: Grenze erreicht" - -#: 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:27 postfix_autoreply/forms.py:88 -#, fuzzy -#| msgid "This code is invalid" -msgid "This date is over" -msgstr "Dieser Code ist Falsch" - -#: postfix_autoreply/api/v2/serializers.py:30 postfix_autoreply/forms.py:90 -#, fuzzy -#| msgid "Cannot be greater than domain quota" -msgid "Must be greater than start date" -msgstr "Kann nicht größer als Domain Kontingent sein" - -#: postfix_autoreply/apps.py:12 postfix_autoreply/forms.py:163 -#, fuzzy -#| msgid "Automatic account removal" -msgid "Automatic replies" -msgstr "Automatische Konto-Entfernung" - -#: 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:28 -msgid "Until" -msgstr "" - -#: postfix_autoreply/forms.py:31 -msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" -msgstr "" - -#: postfix_autoreply/forms.py:39 -#, 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:110 -msgid "Automatic reply timeout" -msgstr "" - -#: postfix_autoreply/forms.py:113 -msgid "Timeout in seconds between two auto-replies to the same recipient" -msgstr "" - -#: postfix_autoreply/forms.py:119 -msgid "Default subject" -msgstr "" - -#: postfix_autoreply/forms.py:120 -msgid "I'm off" -msgstr "" - -#: postfix_autoreply/forms.py:122 -msgid "" -"Default subject used when an auto-reply message is created automatically" -msgstr "" - -#: postfix_autoreply/forms.py:129 -#, fuzzy -#| msgid "Default domain quota" -msgid "Default content" -msgstr "Standard-Domainquota" - -#: postfix_autoreply/forms.py:131 -#, 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:138 -#, 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:118 -#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 -#, fuzzy -#| msgid "Custom message" -msgid "Auto-reply message" -msgstr "Eigener Nachrichtentext" - -#: postfix_autoreply/handlers.py:131 -msgid "Auto reply" -msgstr "" - -#: postfix_autoreply/models.py:15 -#, fuzzy -#| msgid "Subject" -msgid "subject" -msgstr "Betreff" - -#: postfix_autoreply/models.py:17 -msgid "The subject that will appear in sent emails" -msgstr "" - -#: postfix_autoreply/models.py:20 -msgid "content" -msgstr "" - -#: postfix_autoreply/models.py:20 -msgid "The content that will appear in sent emails" -msgstr "" - -#: postfix_autoreply/models.py:23 -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 +#: relaydomains/api/v1/serializers.py:25 msgid "Unsupported service" msgstr "Dienst wird nicht unterstützt" -#: relaydomains/handlers.py:64 +#: relaydomains/handlers.py:61 msgid "Transport settings" msgstr "Transport Einstellungen" -#: relaydomains/handlers.py:89 +#: relaydomains/handlers.py:85 msgid "Transport" msgstr "Transport" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:14 msgid "target host address" msgstr "Ziel-Host Adresse" -#: relaydomains/transport.py:21 +#: relaydomains/transport.py:16 msgid "target host port" msgstr "Ziel-Host Port" -#: relaydomains/transport.py:27 +#: relaydomains/transport.py:18 msgid "verify recipients" msgstr "Empfänger verifizieren" @@ -4058,9 +3670,7 @@ msgstr "Passwort vergessen?" msgid "" "Your password has been set. You may go ahead and sign " "in now." -msgstr "" -"Ihr Passwort wurde geändert. Sie können sich jetzt anmelden ." +msgstr "Ihr Passwort wurde geändert. Sie können sich jetzt anmelden ." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" @@ -4070,9 +3680,7 @@ msgstr "Passwort ändern" msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." -msgstr "" -"Der Link zum Zurücksetzen des Passwortes war ungültig, möglicherweise wurde " -"er schon verwendet. Bitte fordern Sie einen neuen Link an." +msgstr "Der Link zum Zurücksetzen des Passwortes war ungültig, möglicherweise wurde er schon verwendet. Bitte fordern Sie einen neuen Link an." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -4088,12 +3696,7 @@ msgid "" "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 "" -"

      Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts " -"geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse " -"vorhanden ist. Sie sollten sie in Kürze erhalten.

      Wenn Sie keine E-" -"Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse " -"eingegeben haben und überprüfen Sie Ihren Spamordner.

      " +msgstr "

      Wir haben Ihnen eine E-Mail mit Anweisungen zum Festlegen Ihres Passworts geschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail-Adresse vorhanden ist. Sie sollten sie in Kürze erhalten.

      Wenn Sie keine E-Mail erhalten, vergewissern Sie sich, dass Sie Ihre primäre Adresse eingegeben haben und überprüfen Sie Ihren Spamordner.

      " #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 @@ -4101,18 +3704,14 @@ msgstr "" msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" -msgstr "" -"Um das Passwort für Ihr %(username)s Modoboa Konto zurück zu setzen, klicken " -"Sie bitte auf den folgenden Link:" +msgstr "Um das Passwort für Ihr %(username)s Modoboa Konto zurück zu setzen, klicken Sie bitte auf den folgenden Link:" #: 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 "" -"Falls der Link oben nicht funktioniert, kopieren Sie diesen bitte in ein " -"neues Browser-Fenster." +msgstr "Falls der Link oben nicht funktioniert, kopieren Sie diesen bitte in ein neues Browser-Fenster." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -4131,32 +3730,14 @@ msgstr "Modoboa Passwort zurücksetzen" msgid "Invalid value" msgstr "Ungültiger Wert" -#: transport/models.py:15 +#: transport/models.py:16 msgid "pattern" msgstr "Muster" -#: transport/models.py:16 +#: transport/models.py:17 msgid "service" msgstr "Dienst" -#: transport/models.py:17 +#: transport/models.py:18 msgid "next hop" msgstr "nächster Hop" - -#~ msgid "An alias with this name already exists." -#~ msgstr "Ein Alias mit diesem Namen existiert bereits." - -#~ msgid "md5crypt (weak)" -#~ msgstr "md5crypt (schwach)" - -#~ msgid "sha256 (weak)" -#~ msgstr "sha256 (schwach)" - -#~ msgid "md5 (weak)" -#~ msgstr "md5 (schwach)" - -#~ msgid "crypt (weak)" -#~ msgstr "crypt (schwach)" - -#~ msgid "plain (weak)" -#~ msgstr "plain (schwach)"