diff --git a/frontend/src/locale/br/app.po b/frontend/src/locale/br/app.po
index fa9cfda36..9af98af06 100644
--- a/frontend/src/locale/br/app.po
+++ b/frontend/src/locale/br/app.po
@@ -177,6 +177,11 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Aozañ an darempred"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -290,8 +295,8 @@ msgstr "Alias krouet"
#: src/components/admin/identities/form_steps/AccountAliasForm.vue:8
#: src/components/admin/identities/form_steps/AliasRecipientForm.vue:8
msgid ""
-"Alias(es) of this mailbox. To create a catchall alias, just enter the domain"
-" name (@domain.tld)."
+"Alias(es) of this mailbox. To create a catchall alias, just enter the domain "
+"name (@domain.tld)."
msgstr ""
#: src/components/admin/domains/DomainList.vue:206
@@ -368,6 +373,15 @@ msgstr "Domanioù meret"
msgid "Associated domains"
msgstr "Domanioù meret"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -422,6 +436,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Stumm Ereet/anvet"
@@ -483,6 +502,11 @@ msgstr "Rummadoù"
msgid "Category deleted"
msgstr "Deiziad krouidigezh"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -545,7 +569,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Serriñ"
@@ -566,6 +592,14 @@ msgstr ""
msgid "Company"
msgstr "Embregerezh"
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -585,6 +619,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr "Darempredoù"
@@ -615,7 +653,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -626,6 +664,7 @@ msgstr "Bro"
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Deiziad krouidigezh"
@@ -643,11 +682,21 @@ msgstr "Krouiñ ur voest-posteloù evit ar merour."
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Gant ur voest-posteloù"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Krouiñ aliasoù"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Gant ur voest-posteloù"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -727,6 +776,15 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Gant ur voest-posteloù"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -753,6 +811,11 @@ msgstr "Lazhet"
msgid "Disable 2FA"
msgstr "Lazhet"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Lazhet"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -772,6 +835,11 @@ msgstr ""
msgid "Display name"
msgstr "Diskouez an anv"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Diskouez an anv"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "Alc'hwez DKIM"
@@ -797,8 +865,7 @@ msgid "DKIM key selector"
msgstr ""
#: src/components/admin/domains/DNSDetail.vue:238
-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 ""
#: src/components/admin/domains/DomainDKIMKey.vue:5
@@ -1000,11 +1067,21 @@ msgstr "Kont nevez"
msgid "Edit filter"
msgstr "Chomlec'h postel"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Gant ur voest-posteloù"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "Chomlec'h postel"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Gant ur voest-posteloù"
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1028,10 +1105,20 @@ msgstr "Chomlec'h postel"
msgid "Email providers"
msgstr "Chomlec'h postel"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "Postel"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Gant ur voest-posteloù"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1047,6 +1134,11 @@ msgstr "Enaouiñ ar sinadur DKIM"
msgid "Enable DNS checks"
msgstr "Enaouiñ ar gwiriañ DNS"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Enaouet"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1157,7 +1249,7 @@ msgstr "Profil hizivaet"
msgid "Filter updated"
msgstr "Profil hizivaet"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1169,15 +1261,14 @@ msgstr ""
msgid "First name"
msgstr "Anv bihan"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Treuzkas"
#: src/components/account/ForwardForm.vue:18
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
-"Treuzkas kemennadennoù ha stokiñ eiladennoù e-barzh ar voest-posteloù "
-"lec'hel"
+"Treuzkas kemennadennoù ha stokiñ eiladennoù e-barzh ar voest-posteloù lec'hel"
#: src/components/account/ForwardForm.vue:49
msgid "Forward updated"
@@ -1197,6 +1288,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1361,8 +1453,8 @@ msgstr "Titouroù"
#: src/components/account/TotpAuthForm.vue:34
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 ""
#: src/views/admin/InformationView.vue:92
@@ -1476,6 +1568,26 @@ msgstr "Boest-posteloù"
msgid "Mailbox aliases:"
msgstr "Boest-posteloù"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Boest-posteloù"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Domani krouet"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Deiziad krouidigezh"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Boest-posteloù"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1490,6 +1602,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1500,6 +1628,11 @@ msgstr ""
msgid "Message"
msgstr "Implij"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Implij"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1510,12 +1643,38 @@ msgstr "Implij"
msgid "Message history"
msgstr "Implij"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Implij"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Implij"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1598,6 +1757,7 @@ msgstr "Anv implier"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1686,7 +1846,7 @@ msgstr ""
msgid "Next"
msgstr "Da-heul"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1697,6 +1857,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1713,6 +1874,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1774,6 +1939,10 @@ msgstr ""
msgid "Old account"
msgstr "Kont nevez"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Hegerz ez eus un hizivadenn pe muioc'h"
@@ -1800,11 +1969,16 @@ msgstr "Dibarzhioù"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
#, fuzzy
msgid "Parameters updated"
msgstr "Profil hizivaet"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Gant ur voest-posteloù"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1906,6 +2080,13 @@ msgstr "Profil hizivaet"
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Chomlec'hioù ar c'haser"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -1952,9 +2133,9 @@ msgstr "Kota"
#: src/components/admin/identities/form_steps/AccountMailboxForm.vue:15
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 ""
"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 "
@@ -2063,6 +2244,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr "Serriñ"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Eilgwerzher"
@@ -2111,6 +2300,11 @@ msgstr ""
msgid "Search"
msgstr "Klask"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "Emporzhiañ domanioù"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2143,6 +2337,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Kont nevez"
@@ -2193,7 +2388,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Arventennoù"
@@ -2244,6 +2439,7 @@ msgid "Status"
msgstr "Statud"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2283,8 +2479,7 @@ msgstr ""
#: src/components/contacts/AddressBookInfo.vue:19
msgid "The credentials are the same than the ones you use to access Modoboa."
msgstr ""
-"An titouroù anaout a vez ar memes re hag ar re a implijit da dizhout "
-"Modoboa."
+"An titouroù anaout a vez ar memes re hag ar re a implijit da dizhout Modoboa."
#: src/components/tools/ImportForm.vue:16
msgid ""
@@ -2303,9 +2498,9 @@ msgstr ""
#: src/views/admin/InformationView.vue:22
msgid ""
-"The password scheme you are using has been deprecated and will be removed in"
-" the next minor version. The procedure to upgrade to a stronger scheme is as"
-" follows:"
+"The password scheme you are using has been deprecated and will be removed in "
+"the next minor version. The procedure to upgrade to a stronger scheme is as "
+"follows:"
msgstr ""
#: src/components/account/ProfileForm.vue:34
@@ -2323,13 +2518,15 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
#: src/components/contacts/AddressBookInfo.vue:9
msgid ""
-"To access this address book from the outside (such as Mozilla Thunderbird or"
-" your smartphone), use the following URL:"
+"To access this address book from the outside (such as Mozilla Thunderbird or "
+"your smartphone), use the following URL:"
msgstr ""
"Evit tizhoù al levr chomlec'hioù-mañ adalek an diavaez (evel da skouer "
"Mozilla Thunderbird war ho poellgomzer), implijit an URL da-heul:"
@@ -2417,6 +2614,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Hizivaat"
@@ -2425,6 +2623,11 @@ msgstr "Hizivaat"
msgid "Update auto-reply"
msgstr "Ger-tremen"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Aozañ an darempred"
+
#: src/components/account/ProfileForm.vue:75
#, fuzzy
msgid "Update Password"
@@ -2478,6 +2681,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2486,6 +2690,11 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "Postel"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2511,7 +2720,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2522,6 +2731,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/cs/app.po b/frontend/src/locale/cs/app.po
index 66dea6f8f..3dddf64d3 100644
--- a/frontend/src/locale/cs/app.po
+++ b/frontend/src/locale/cs/app.po
@@ -171,6 +171,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -350,6 +354,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -404,6 +417,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -459,6 +477,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -518,7 +541,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -538,6 +563,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -556,6 +589,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -586,7 +623,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -597,6 +634,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -613,11 +651,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -694,6 +740,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -718,6 +772,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -735,6 +793,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -952,10 +1014,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -976,10 +1046,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -994,6 +1072,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1097,7 +1179,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1108,7 +1190,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1133,6 +1215,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1400,6 +1483,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1413,6 +1512,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1423,6 +1538,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1431,12 +1550,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1516,6 +1659,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1597,7 +1741,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1608,6 +1752,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1623,6 +1768,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1681,6 +1830,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1706,10 +1859,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1808,6 +1965,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1949,6 +2112,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1997,6 +2168,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2029,6 +2204,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2074,7 +2250,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2124,6 +2300,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2201,6 +2378,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2289,6 +2468,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2296,6 +2476,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2345,6 +2529,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2353,6 +2538,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2378,7 +2567,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2389,6 +2578,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/de/app.po b/frontend/src/locale/de/app.po
index c1c104327..b07562204 100644
--- a/frontend/src/locale/de/app.po
+++ b/frontend/src/locale/de/app.po
@@ -178,6 +178,11 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Neues Konto"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -369,6 +374,15 @@ msgstr "Administrierte Domains"
msgid "Associated domains"
msgstr "Administrierte Domains"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -423,6 +437,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Gebundenes Format"
@@ -484,6 +503,11 @@ msgstr ""
msgid "Category deleted"
msgstr "Erstellungsdatum"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -544,7 +568,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Schließen"
@@ -565,6 +591,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -587,6 +621,10 @@ msgstr ""
"Glückwunsch! Die Zwei-Faktor-Authentifizierung ist nun für diesen Account "
"aktiviert."
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -617,7 +655,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -628,6 +666,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Erstellungsdatum"
@@ -645,11 +684,21 @@ msgstr "Erzeuge Postfach für den Administrator."
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Mit einem Postfach"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Aliase erstellen"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Mit einem Postfach"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -729,6 +778,15 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Mit einem Postfach"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -754,6 +812,11 @@ msgstr "Deaktiviert"
msgid "Disable 2FA"
msgstr "Deaktiviere 2-Faktor-Authentifizierung"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Deaktiviert"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -773,6 +836,11 @@ msgstr ""
msgid "Display name"
msgstr "Vollständiger Name"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Vollständiger Name"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "DKIM Schlüssel"
@@ -1000,11 +1068,21 @@ msgstr "Neues Konto"
msgid "Edit filter"
msgstr "E-Mail Adresse"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Mit einem Postfach"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "E-Mail Adresse"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Mit einem Postfach"
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1028,10 +1106,20 @@ msgstr "E-Mail Adresse"
msgid "Email providers"
msgstr "E-Mail Adresse"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "E-Mail Adresse"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Mit einem Postfach"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1047,6 +1135,11 @@ msgstr "Aktiviere DKIM Signierung"
msgid "Enable DNS checks"
msgstr "Aktiviere DNS Prüfungen"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Aktiviert"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1156,7 +1249,7 @@ msgstr "Profil aktualisiert"
msgid "Filter updated"
msgstr "Profil aktualisiert"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1168,7 +1261,7 @@ msgstr ""
msgid "First name"
msgstr "Vollständiger Name"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Weiterleiten"
@@ -1194,6 +1287,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr "Von"
@@ -1473,6 +1567,26 @@ msgstr "Postfächer"
msgid "Mailbox aliases:"
msgstr "Mailboxen"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Mailboxen"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Domain erstellt."
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Erstellungsdatum"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Mailboxen"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1487,6 +1601,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1497,6 +1627,11 @@ msgstr ""
msgid "Message"
msgstr "Verwendung"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Verwendung"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1507,12 +1642,38 @@ msgstr "Verwendung"
msgid "Message history"
msgstr "Verwendung"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Verwendung"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Verwendung"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1595,6 +1756,7 @@ msgstr "Benutzername"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1683,7 +1845,7 @@ msgstr "Neue Wiederherstellungscodes"
msgid "Next"
msgstr "Weiter"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1694,6 +1856,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1710,6 +1873,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1774,6 +1941,10 @@ msgstr ""
msgid "Old account"
msgstr "Neues Konto"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Eine oder mehrere Aktualisierungen sind verfügbar"
@@ -1800,11 +1971,16 @@ msgstr "Optionen"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
#, fuzzy
msgid "Parameters updated"
msgstr "Profil aktualisiert"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Mit einem Postfach"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1906,6 +2082,13 @@ msgstr "Profil aktualisiert"
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Absenderadressen "
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -2063,6 +2246,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr "Schließen"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Reseller"
@@ -2111,6 +2302,11 @@ msgstr ""
msgid "Search"
msgstr "Suchen"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "Domains importieren"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2144,6 +2340,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Neues Konto"
@@ -2194,7 +2391,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Einstellungen"
@@ -2245,6 +2442,7 @@ msgid "Status"
msgstr "Status"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2322,6 +2520,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr "Bis"
@@ -2420,6 +2620,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Aktualisieren"
@@ -2428,6 +2629,11 @@ msgstr "Aktualisieren"
msgid "Update auto-reply"
msgstr "Passwort"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Neues Konto"
+
#: src/components/account/ProfileForm.vue:75
#, fuzzy
msgid "Update Password"
@@ -2481,6 +2687,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2489,6 +2696,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Woche"
@@ -2514,7 +2725,7 @@ msgstr ""
msgid "Year"
msgstr "Jahr"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2525,6 +2736,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/el/app.po b/frontend/src/locale/el/app.po
index c08eea4f8..f1c408e95 100644
--- a/frontend/src/locale/el/app.po
+++ b/frontend/src/locale/el/app.po
@@ -170,6 +170,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -349,6 +353,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -403,6 +416,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -458,6 +476,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -517,7 +540,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -537,6 +562,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -555,6 +588,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -585,7 +622,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -596,6 +633,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -612,11 +650,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -693,6 +739,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -717,6 +771,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -734,6 +792,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -951,10 +1013,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -975,10 +1045,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -993,6 +1071,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1096,7 +1178,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1107,7 +1189,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1132,6 +1214,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1399,6 +1482,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1412,6 +1511,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1422,6 +1537,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1430,12 +1549,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1515,6 +1658,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1596,7 +1740,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1607,6 +1751,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1622,6 +1767,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1680,6 +1829,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1705,10 +1858,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1807,6 +1964,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1948,6 +2111,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1996,6 +2167,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2028,6 +2203,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2073,7 +2249,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2123,6 +2299,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2200,6 +2377,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2288,6 +2467,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2295,6 +2475,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2344,6 +2528,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2352,6 +2537,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2377,7 +2566,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2388,6 +2577,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/en/app.po b/frontend/src/locale/en/app.po
index c4bef501e..c0cd4abf3 100644
--- a/frontend/src/locale/en/app.po
+++ b/frontend/src/locale/en/app.po
@@ -162,6 +162,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -341,6 +345,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -395,6 +408,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -450,6 +468,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -509,7 +532,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -529,6 +554,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -547,6 +580,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -577,7 +614,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -588,6 +625,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -604,11 +642,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -685,6 +731,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -709,6 +763,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -726,6 +784,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -943,10 +1005,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -967,10 +1037,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -985,6 +1063,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1088,7 +1170,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1099,7 +1181,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1124,6 +1206,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1391,6 +1474,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1404,6 +1503,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1414,6 +1529,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1422,12 +1541,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1507,6 +1650,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1588,7 +1732,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1599,6 +1743,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1614,6 +1759,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1672,6 +1821,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1697,10 +1850,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1799,6 +1956,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1940,6 +2103,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1988,6 +2159,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2020,6 +2195,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2065,7 +2241,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2115,6 +2291,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2192,6 +2369,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2280,6 +2459,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2287,6 +2467,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2336,6 +2520,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2344,6 +2529,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2369,7 +2558,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2380,6 +2569,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/es/app.po b/frontend/src/locale/es/app.po
index 8f058a990..0c4c750ad 100644
--- a/frontend/src/locale/es/app.po
+++ b/frontend/src/locale/es/app.po
@@ -178,6 +178,11 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Editar contacto"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -291,8 +296,8 @@ msgstr "Alias creado"
#: src/components/admin/identities/form_steps/AccountAliasForm.vue:8
#: src/components/admin/identities/form_steps/AliasRecipientForm.vue:8
msgid ""
-"Alias(es) of this mailbox. To create a catchall alias, just enter the domain"
-" name (@domain.tld)."
+"Alias(es) of this mailbox. To create a catchall alias, just enter the domain "
+"name (@domain.tld)."
msgstr ""
#: src/components/admin/domains/DomainList.vue:206
@@ -369,6 +374,15 @@ msgstr "Dominios administrados"
msgid "Associated domains"
msgstr "Dominios administrados"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -423,6 +437,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Formato inválido"
@@ -484,6 +503,11 @@ msgstr "Categorías"
msgid "Category deleted"
msgstr "Fecha de creación"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -545,7 +569,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Cerrar"
@@ -565,6 +591,14 @@ msgstr ""
msgid "Company"
msgstr "Compañía"
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -584,6 +618,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr "Contactos"
@@ -614,7 +652,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -625,6 +663,7 @@ msgstr "País"
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Fecha de creación"
@@ -642,11 +681,21 @@ msgstr "Crear mailbox para el administrador."
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Con una mailbox"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Crear alias"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Con una mailbox"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -725,6 +774,15 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Con una mailbox"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -751,6 +809,11 @@ msgstr "Deshabilitado"
msgid "Disable 2FA"
msgstr "Deshabilitado"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Deshabilitado"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -770,6 +833,11 @@ msgstr ""
msgid "Display name"
msgstr "Nombre a mostrar"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Nombre a mostrar"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -795,8 +863,7 @@ msgid "DKIM key selector"
msgstr ""
#: src/components/admin/domains/DNSDetail.vue:238
-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 ""
#: src/components/admin/domains/DomainDKIMKey.vue:5
@@ -998,11 +1065,21 @@ msgstr "Nueva cuenta"
msgid "Edit filter"
msgstr "Dirección de email"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Con una mailbox"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "Dirección de email"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Con una mailbox"
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1026,10 +1103,20 @@ msgstr "Dirección de email"
msgid "Email providers"
msgstr "Dirección de email"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "Correo-e"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Con una mailbox"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1045,6 +1132,11 @@ msgstr ""
msgid "Enable DNS checks"
msgstr "Activar comprobación de DNS"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Activado"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1154,7 +1246,7 @@ msgstr "Perfil actualizado"
msgid "Filter updated"
msgstr "Perfil actualizado"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1166,7 +1258,7 @@ msgstr ""
msgid "First name"
msgstr "Nombre"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Siguiente"
@@ -1192,6 +1284,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1356,8 +1449,8 @@ msgstr "Información"
#: src/components/account/TotpAuthForm.vue:34
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 ""
#: src/views/admin/InformationView.vue:92
@@ -1471,6 +1564,26 @@ msgstr "Mailboxes"
msgid "Mailbox aliases:"
msgstr "Mailboxes"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Mailboxes"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Dominio creado"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Fecha de creación"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Mailboxes"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1485,6 +1598,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1495,6 +1624,11 @@ msgstr ""
msgid "Message"
msgstr "Uso"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Uso"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1505,12 +1639,38 @@ msgstr "Uso"
msgid "Message history"
msgstr "Uso"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Uso"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Uso"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1593,6 +1753,7 @@ msgstr "Nombre de usuario"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1681,7 +1842,7 @@ msgstr ""
msgid "Next"
msgstr "Siguiente"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1692,6 +1853,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1708,6 +1870,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1769,6 +1935,10 @@ msgstr ""
msgid "Old account"
msgstr "Nueva cuenta"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Una o más actualizaciones están disponibles"
@@ -1795,11 +1965,16 @@ msgstr "Opciones"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
#, fuzzy
msgid "Parameters updated"
msgstr "Perfil actualizado"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Con una mailbox"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1901,6 +2076,13 @@ msgstr "Perfil actualizado"
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Direcciónes de remitente"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -1947,9 +2129,9 @@ msgstr ""
#: src/components/admin/identities/form_steps/AccountMailboxForm.vue:15
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 ""
"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 "
@@ -2054,6 +2236,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Revendedor"
@@ -2102,6 +2292,11 @@ msgstr ""
msgid "Search"
msgstr "Buscar"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "Importar dominios"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2134,6 +2329,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Nueva cuenta"
@@ -2184,7 +2380,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Configuración"
@@ -2235,6 +2431,7 @@ msgid "Status"
msgstr "Estatus"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2274,8 +2471,8 @@ msgstr ""
#: src/components/contacts/AddressBookInfo.vue:19
msgid "The credentials are the same than the ones you use to access Modoboa."
msgstr ""
-"Las credenciales para acceder a este libro de direcciones son las mismas que"
-" usa para acceder a Modoboa."
+"Las credenciales para acceder a este libro de direcciones son las mismas que "
+"usa para acceder a Modoboa."
#: src/components/tools/ImportForm.vue:16
msgid ""
@@ -2294,9 +2491,9 @@ msgstr ""
#: src/views/admin/InformationView.vue:22
msgid ""
-"The password scheme you are using has been deprecated and will be removed in"
-" the next minor version. The procedure to upgrade to a stronger scheme is as"
-" follows:"
+"The password scheme you are using has been deprecated and will be removed in "
+"the next minor version. The procedure to upgrade to a stronger scheme is as "
+"follows:"
msgstr ""
#: src/components/account/ProfileForm.vue:34
@@ -2314,13 +2511,15 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
#: src/components/contacts/AddressBookInfo.vue:9
msgid ""
-"To access this address book from the outside (such as Mozilla Thunderbird or"
-" your smartphone), use the following URL:"
+"To access this address book from the outside (such as Mozilla Thunderbird or "
+"your smartphone), use the following URL:"
msgstr ""
"Para acceder remotamente a este libro de direcciones (como con Mozilla "
"Thunderbird o desde su smartphone), use la siguiente URL:"
@@ -2408,6 +2607,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Actualizar"
@@ -2416,6 +2616,11 @@ msgstr "Actualizar"
msgid "Update auto-reply"
msgstr "Contraseña"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Editar contacto"
+
#: src/components/account/ProfileForm.vue:75
#, fuzzy
msgid "Update Password"
@@ -2469,6 +2674,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2477,6 +2683,11 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "Correo-e"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Semana"
@@ -2502,7 +2713,7 @@ msgstr ""
msgid "Year"
msgstr "Año"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2513,6 +2724,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/fi/app.po b/frontend/src/locale/fi/app.po
index 8c8b09cfa..b3a4f27a0 100644
--- a/frontend/src/locale/fi/app.po
+++ b/frontend/src/locale/fi/app.po
@@ -185,6 +185,11 @@ msgstr ""
msgid "Add sender address"
msgstr "Lisää lähettäjän osoite"
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Muokkaa tiliä"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
#, fuzzy
msgid "Add/Remove from the domain page"
@@ -383,6 +388,15 @@ msgstr "Hallinnoidut verkkotunnukset"
msgid "Associated domains"
msgstr "Hallinnoidut verkkotunnukset"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -437,6 +451,11 @@ msgstr "Takaisin"
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Bind/nimetty muoto. Kopioi klikkaamalla"
@@ -498,6 +517,11 @@ msgstr ""
msgid "Category deleted"
msgstr "Verkkotunnuksen alias poistettu"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -562,7 +586,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Sulje"
@@ -584,6 +610,15 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+#, fuzzy
+msgid "Compress this mailbox"
+msgstr "Postilaatikolla"
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -604,6 +639,10 @@ msgid ""
"enabled for your account."
msgstr "Onnittelut! Kaksivaiheinen tunnistus on nyt käytössä tililläsi."
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -635,7 +674,7 @@ msgstr "Kopioi leikepöydälle"
msgid "Copy token to clipboard"
msgstr "Kopioi turvatunnus leikepöydälle"
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -646,6 +685,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Luontipäivä"
@@ -663,11 +703,21 @@ msgstr "Luo ylläpitäjän postilaatikko."
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Postilaatikolla"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Luo aliaksia"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Postilaatikolla"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr "Luo verkkotunnuksen tavanomaiset aliakset."
@@ -747,6 +797,16 @@ msgstr "Poista"
msgid "Delete filter set"
msgstr "Valitse tiedosto"
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Postilaatikolla"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+#, fuzzy
+msgid "Delete this mailbox?"
+msgstr "Postilaatikolla"
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr "Poista avain"
@@ -772,6 +832,11 @@ msgstr "Pois käytöstä"
msgid "Disable 2FA"
msgstr "Poista kaksivaiheinen tunnistautuminen (2FA) käytöstä"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Pois käytöstä"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -791,6 +856,11 @@ msgstr ""
msgid "Display name"
msgstr "Etunimi"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Etunimi"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "DKIM-avain"
@@ -1023,11 +1093,21 @@ msgstr "Muokkaa tiliä"
msgid "Edit filter"
msgstr "Sähköpostiosoite"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Postilaatikolla"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "Sähköpostiosoite"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Postilaatikolla"
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1051,10 +1131,20 @@ msgstr "Sähköpostiosoite"
msgid "Email providers"
msgstr "Sähköpostiosoite"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "Sähköposti"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr "Tyhjä"
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Postilaatikolla"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1070,6 +1160,11 @@ msgstr "Ota DKIM-allekirjoitus käyttöön"
msgid "Enable DNS checks"
msgstr "Ota DNS-tarkistukset käyttöön"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Käytössä"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1181,7 +1276,7 @@ msgstr "Parametrit päivitetty"
msgid "Filter updated"
msgstr "Profiili päivitetty"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1192,7 +1287,7 @@ msgstr ""
msgid "First name"
msgstr "Etunimi"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Välitä"
@@ -1218,6 +1313,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr "Lähde"
@@ -1508,6 +1604,26 @@ msgstr "Postilaatikko"
msgid "Mailbox aliases:"
msgstr "Postilaatikot"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Postilaatikot"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Verkkotunnus luotu"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Luontipäivä"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Postilaatikot"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1522,6 +1638,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1532,6 +1664,11 @@ msgstr ""
msgid "Message"
msgstr "Viesti"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Viestien historia"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1541,12 +1678,38 @@ msgstr "Viestien historia"
msgid "Message history"
msgstr "Viestien historia"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr "Viestien lähetysraja"
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Viestien historia"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Viestien historia"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr "viestit"
@@ -1629,6 +1792,7 @@ msgstr "Käyttäjätunnus"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1718,7 +1882,7 @@ msgstr "Uudet palautuskoodit"
msgid "Next"
msgstr "Seuraava"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr "ei"
@@ -1729,6 +1893,7 @@ msgstr "ei"
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr "Ei"
@@ -1745,6 +1910,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: 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"
@@ -1811,6 +1980,10 @@ msgstr "OK"
msgid "Old account"
msgstr "Muokkaa tiliä"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Yksi tai useampi päivitys on saatavilla"
@@ -1838,10 +2011,15 @@ msgstr "Vaihtoehdot"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr "Parametrit päivitetty"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Postilaatikolla"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1942,6 +2120,13 @@ 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/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Lähettäjän osoitteet"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -2100,6 +2285,14 @@ msgstr "Poista tämä ylläpitäjä"
msgid "Reopen alarm"
msgstr "Avatut hälytykset"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Jälleenmyyjä"
@@ -2149,6 +2342,11 @@ msgstr ""
msgid "Search"
msgstr "Hae"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "viestit"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2184,6 +2382,7 @@ msgid "Select file"
msgstr "Valitse tiedosto"
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Valitse tili"
@@ -2234,7 +2433,7 @@ msgstr "Palvelu"
msgid "Service: "
msgstr "Palvelu:"
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Asetukset"
@@ -2286,6 +2485,7 @@ msgid "Status"
msgstr "Tila"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2371,6 +2571,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr "Vastaanottaja"
@@ -2465,6 +2667,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Päivitä"
@@ -2473,6 +2676,11 @@ msgstr "Päivitä"
msgid "Update auto-reply"
msgstr "Vaihda salasana"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Muokkaa tiliä"
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr "Vaihda salasana"
@@ -2524,6 +2732,7 @@ msgstr "Varoitus"
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr "Varoitus"
@@ -2532,6 +2741,11 @@ msgstr "Varoitus"
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "Sähköposti"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Viikko"
@@ -2557,7 +2771,7 @@ msgstr ""
msgid "Year"
msgstr "Vuosi"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr "kyllä"
@@ -2568,6 +2782,7 @@ msgstr "kyllä"
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr "Kyllä"
diff --git a/frontend/src/locale/fr/app.po b/frontend/src/locale/fr/app.po
index 1a2779f4b..251ad7f21 100644
--- a/frontend/src/locale/fr/app.po
+++ b/frontend/src/locale/fr/app.po
@@ -12,7 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\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)"
@@ -41,8 +42,8 @@ msgid ""
"A user with all privileges, can do anything. By default, such a user does "
"not have a mailbox so he can't access end-user features."
msgstr ""
-"Un utilisateur ayant tous les privilège, peut tout faire. Par défaut, il n'a"
-" pas de boîte mail et ne peut donc pas accéder aux fonctionnalités d'un "
+"Un utilisateur ayant tous les privilège, peut tout faire. Par défaut, il n'a "
+"pas de boîte mail et ne peut donc pas accéder aux fonctionnalités d'un "
"utilisateur final."
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:82
@@ -50,8 +51,8 @@ msgid ""
"A user with no privileges but with a mailbox. He will be allowed to use all "
"end-user features: webmail, calendar, contacts, filters."
msgstr ""
-"Un utilisateur sans privilèges mais ayant une boîte mail. Il sera autorisé à"
-" utiliser toutes les fonctionnalités de l'utilisateur final : webmail, "
+"Un utilisateur sans privilèges mais ayant une boîte mail. Il sera autorisé à "
+"utiliser toutes les fonctionnalités de l'utilisateur final : webmail, "
"calendrier, contacts, filtres."
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:92
@@ -181,6 +182,11 @@ msgstr "Ajouter un nouveau filtre"
msgid "Add sender address"
msgstr "Ajouter l'adresse de l'expéditeur"
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Editer le contact"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr "Ajouter/Supprimer depuis la page du domaine"
@@ -289,11 +295,11 @@ msgstr "Alias mis à jour"
#: src/components/admin/identities/form_steps/AccountAliasForm.vue:8
#: src/components/admin/identities/form_steps/AliasRecipientForm.vue:8
msgid ""
-"Alias(es) of this mailbox. To create a catchall alias, just enter the domain"
-" name (@domain.tld)."
+"Alias(es) of this mailbox. To create a catchall alias, just enter the domain "
+"name (@domain.tld)."
msgstr ""
-"Alias(s) de cette boîte aux lettres. Pour créer un alias fourre-tout, entrer"
-" uniquement le nom du domaine (@domain.tld)."
+"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:206
#: src/components/admin/domains/DomainSummary.vue:40
@@ -363,6 +369,15 @@ msgstr "Domaine associé"
msgid "Associated domains"
msgstr "Domaines associés"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr "Tentative de connexion."
@@ -417,6 +432,11 @@ msgstr "Retour"
msgid "Backup codes"
msgstr "Codes de récupération"
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Format bind/named. Cliquez pour copier"
@@ -478,6 +498,11 @@ msgstr "Catégories"
msgid "Category deleted"
msgstr "Alarme supprimée"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -494,8 +519,8 @@ msgstr "Consulter la liste suivante pour trouver des composants associés"
#: src/views/admin/identities/IdentitiesView.vue:89
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-"Cochez cette option si les mots de passe contenus dans votre fichier ne sont"
-" pas chiffrés"
+"Cochez cette option si les mots de passe contenus dans votre fichier ne sont "
+"pas chiffrés"
#: src/components/admin/domains/DomainAliasForm.vue:15
msgid "Choose a domain"
@@ -540,7 +565,9 @@ msgstr "Cliquer ici pour copier la clé"
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Fermer"
@@ -560,6 +587,15 @@ msgstr ""
msgid "Company"
msgstr "Société"
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+#, fuzzy
+msgid "Compress this mailbox"
+msgstr "Avec boîte aux lettres"
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr "Conditions"
@@ -580,6 +616,10 @@ msgstr ""
"Félicitations ! L'authentification à deux facteurs utilisant des mots de "
"passe jetable est désormais active pour votre compte."
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
#, fuzzy
msgid "Contacts"
@@ -612,7 +652,7 @@ msgstr "Copier dans le presse-papiers"
msgid "Copy token to clipboard"
msgstr "Copier le jeton dans la presse-papiers"
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr "Impossible de sauvegarder les paramètres"
@@ -623,6 +663,7 @@ msgstr "Pays"
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr "Créer"
@@ -639,11 +680,21 @@ msgstr "Créer une boite aux lettres pour l'administrateur"
msgid "Create a new filter set"
msgstr "Créer un nouveau jeu de filtre"
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Créer un nouveau jeu de filtre"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Créer des alias"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Créer un nouveau jeu de filtre"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr "Créer des aliases standard pour le domaine"
@@ -722,6 +773,16 @@ msgstr "Supprimer"
msgid "Delete filter set"
msgstr "Supprimer le jeu de filtre"
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Avec boîte aux lettres"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+#, fuzzy
+msgid "Delete this mailbox?"
+msgstr "Avec boîte aux lettres"
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr "Supprimer le jeton"
@@ -746,6 +807,11 @@ msgstr "Desactiver"
msgid "Disable 2FA"
msgstr "Désactiver l'authentification à double facteur"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Desactiver"
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr "désactivé"
@@ -764,6 +830,11 @@ msgstr ""
msgid "Display name"
msgstr "Nom complet"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Nom complet"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "Clé DKIM"
@@ -777,8 +848,8 @@ msgid ""
"DKIM key does not seem to be generated yet or has failed. Do you want to "
"requeue the job?"
msgstr ""
-"La génération de la clé DKIM ne semble pas avoir eu lieu ou a échoué. Voulez"
-" vous replanifier cette action ?"
+"La génération de la clé DKIM ne semble pas avoir eu lieu ou a échoué. Voulez "
+"vous replanifier cette action ?"
#: src/components/admin/domains/DomainCreationForm.vue:208
#: src/components/admin/domains/form_steps/DomainDNSForm.vue:22
@@ -791,8 +862,7 @@ msgid "DKIM key selector"
msgstr "Sélecteur de clé DKIM"
#: src/components/admin/domains/DNSDetail.vue:238
-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 "Des clés DKIM existent déjà pour ce domaine. Voulez-vous les écraser?"
#: src/components/admin/domains/DomainDKIMKey.vue:5
@@ -990,10 +1060,20 @@ msgstr "Modifier le compte"
msgid "Edit filter"
msgstr "Modifier le filtre"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Avec boîte aux lettres"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr "Modifier le fournisseur"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Avec boîte aux lettres"
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr "Modifier votre périphérique"
@@ -1014,10 +1094,20 @@ msgstr "Adresse email"
msgid "Email providers"
msgstr "Fournisseurs de messagerie"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "E-mail"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr "Vide"
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Avec boîte aux lettres"
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr "Activer"
@@ -1032,6 +1122,11 @@ msgstr "Activer la signature DKIM"
msgid "Enable DNS checks"
msgstr "Activer les tests DNS"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Activer"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1137,7 +1232,7 @@ msgstr "Jeu de filtre mis à jour"
msgid "Filter updated"
msgstr "Filtre mis à jour"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr "Filtres"
@@ -1148,7 +1243,7 @@ msgstr "Filtres"
msgid "First name"
msgstr "Prénom"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Transfert"
@@ -1175,6 +1270,7 @@ msgstr "Transporteur avec ARC"
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr "De"
@@ -1277,8 +1373,8 @@ msgid ""
"If you configured it recently, please wait for the first report to be "
"received and processed."
msgstr ""
-"Si vous l'avez récemment configuré, veuillez attendre que le premier rapport"
-" soit reçu et traité. "
+"Si vous l'avez récemment configuré, veuillez attendre que le premier rapport "
+"soit reçu et traité. "
#: src/layouts/admin/AdminLayout.vue:70
msgid "IMAP Migration"
@@ -1342,11 +1438,12 @@ msgstr "Information"
#: src/components/account/TotpAuthForm.vue:34
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 ""
"Installez un logiciel d'authentification de jeton comme FreeOTP ou google\n"
-" Authentification depuis votre magasin d'applications et utilisez\n"
+" Authentification depuis votre magasin d'applications et "
+"utilisez\n"
" cette application pour scanner ce QR code."
#: src/views/admin/InformationView.vue:92
@@ -1368,8 +1465,7 @@ msgstr "Numéro de port incorrect"
#: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27
msgid "Is the IMAP connection secured using SSL/TLS or StartTLS"
msgstr ""
-"La connexion IMAP est-elle sécurisée via l'utilisation de SSL/TLS ou "
-"StartTLS"
+"La connexion IMAP est-elle sécurisée via l'utilisation de SSL/TLS ou StartTLS"
#: src/views/DashboardView.vue:9
msgid ""
@@ -1462,6 +1558,26 @@ msgstr "Boîte aux lettres"
msgid "Mailbox aliases:"
msgstr "Alias de boîte aux lettres :"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Boîtes aux lettres"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Domaine créé"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Migration supprimée"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Boîtes aux lettres"
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr "Boîte aux lettres"
@@ -1474,8 +1590,24 @@ msgstr "Boîtes aux lettres"
msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
-"Assurez vous que l'option Mettre à jour la méthode de chiffrement du"
-" mot de passe à la connexion est activée"
+"Assurez vous que l'option Mettre à jour la méthode de chiffrement du "
+"mot de passe à la connexion est activée"
+
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
@@ -1487,6 +1619,11 @@ msgstr "Mo"
msgid "Message"
msgstr "Message"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Filtres de messages"
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr "Filtres de messages"
@@ -1495,12 +1632,38 @@ msgstr "Filtres de messages"
msgid "Message history"
msgstr "Historique des messages"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr "Limite d'envoi des messages"
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Filtres de messages"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Filtres de messages"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr "messages"
@@ -1580,6 +1743,7 @@ msgstr "nom"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1664,7 +1828,7 @@ msgstr "Nouveaux codes de récupération"
msgid "Next"
msgstr "Suivant"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr "non"
@@ -1675,6 +1839,7 @@ msgstr "non"
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr "Non"
@@ -1690,6 +1855,10 @@ msgstr "Aucune donnée à exporter"
msgid "No domain managed"
msgstr "Aucun domaine géré"
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: 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"
@@ -1754,6 +1923,10 @@ msgstr "OK"
msgid "Old account"
msgstr "Ancien compte"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Une ou plusieurs mise à jour sont disponibles"
@@ -1779,10 +1952,15 @@ msgstr "Options"
msgid "or suggest a new language"
msgstr "ou suggérer une nouvelle langue"
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr "Paramètres mis à jour"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Avec boîte aux lettres"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1851,9 +2029,9 @@ msgid ""
"Please note that you will see this message until ALL user "
"passwords have been converted using the new scheme."
msgstr ""
-"Veuillez noter que vous verrez ce message jusqu'à ce que "
-"TOUS les mots de passe de vos utilisateurs aient été "
-"convertis en utilisant la nouvelle méthode."
+"Veuillez noter que vous verrez ce message jusqu'à ce que TOUS"
+"strong> les mots de passe de vos utilisateurs aient été convertis en "
+"utilisant la nouvelle méthode."
#: src/components/admin/imap_migration/ProviderCreationForm.vue:55
#: src/components/admin/imap_migration/ProvidersList.vue:98
@@ -1886,6 +2064,13 @@ 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/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Adresses d'expédition"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr "Fournisseur"
@@ -1926,9 +2111,9 @@ msgstr "Quota"
#: src/components/admin/identities/form_steps/AccountMailboxForm.vue:15
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 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 "
@@ -2033,6 +2218,14 @@ msgstr "Supprimer cet administrateur"
msgid "Reopen alarm"
msgstr "Ré-ouvrir l'alarme"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Revendeur"
@@ -2081,6 +2274,11 @@ msgstr "Sauvegardez vos changements"
msgid "Search"
msgstr "Chercher"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "messages"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2114,6 +2312,7 @@ msgid "Select file"
msgstr "Sélectionner un fichier"
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Envoi uniquement"
@@ -2160,7 +2359,7 @@ msgstr "Service"
msgid "Service: "
msgstr "Service :"
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Paramètres"
@@ -2210,6 +2409,7 @@ msgid "Status"
msgstr "Statut"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr "Sujet"
@@ -2259,8 +2459,8 @@ msgid ""
"The first element of each line is mandatory and must be equal to one of the "
"previous values."
msgstr ""
-"Le premier élément de chaque ligne est obligatoire et doit être égal à l'une"
-" des valeurs précédentes."
+"Le premier élément de chaque ligne est obligatoire et doit être égal à l'une "
+"des valeurs précédentes."
#: src/components/account/RecoveryCodesResetDialog.vue:9
#: src/components/account/TotpAuthForm.vue:61
@@ -2278,9 +2478,9 @@ msgstr ""
#: src/views/admin/InformationView.vue:22
msgid ""
-"The password scheme you are using has been deprecated and will be removed in"
-" the next minor version. The procedure to upgrade to a stronger scheme is as"
-" follows:"
+"The password scheme you are using has been deprecated and will be removed in "
+"the next minor version. The procedure to upgrade to a stronger scheme is as "
+"follows:"
msgstr ""
"La méthode de chiffrement de mot de passe que vous utilisez a été rendue "
"obsolète et sera retirée dans la prochaine version mineure. La procédure de "
@@ -2301,13 +2501,15 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr "A"
#: src/components/contacts/AddressBookInfo.vue:9
msgid ""
-"To access this address book from the outside (such as Mozilla Thunderbird or"
-" your smartphone), use the following URL:"
+"To access this address book from the outside (such as Mozilla Thunderbird or "
+"your smartphone), use the following URL:"
msgstr ""
"Pour accéder à ce carnet d'adresse depuis l'extérieur (comme Mozilla "
"Thunderbird ou votre smartphone), utilisez l'URL suivante :"
@@ -2395,6 +2597,7 @@ msgstr "Jusqu'au"
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Mettre à jour"
@@ -2402,6 +2605,11 @@ msgstr "Mettre à jour"
msgid "Update auto-reply"
msgstr "Mettre à jour la réponse automatique"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Editer le contact"
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr "Mise à jour du mot de passe"
@@ -2451,6 +2659,7 @@ msgstr "Avertissement"
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr "Avertissement"
@@ -2459,6 +2668,11 @@ msgstr "Avertissement"
msgid "WebAuthn"
msgstr "WebAuthn"
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "E-mail"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Semaine"
@@ -2484,7 +2698,7 @@ msgstr ""
msgid "Year"
msgstr "Année"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr "oui"
@@ -2495,6 +2709,7 @@ msgstr "oui"
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr "Oui"
diff --git a/frontend/src/locale/it/app.po b/frontend/src/locale/it/app.po
index 146b01ce4..c1c897539 100644
--- a/frontend/src/locale/it/app.po
+++ b/frontend/src/locale/it/app.po
@@ -178,6 +178,11 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Modifica contatto"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -291,8 +296,8 @@ msgstr "Alias creato"
#: src/components/admin/identities/form_steps/AccountAliasForm.vue:8
#: src/components/admin/identities/form_steps/AliasRecipientForm.vue:8
msgid ""
-"Alias(es) of this mailbox. To create a catchall alias, just enter the domain"
-" name (@domain.tld)."
+"Alias(es) of this mailbox. To create a catchall alias, just enter the domain "
+"name (@domain.tld)."
msgstr ""
#: src/components/admin/domains/DomainList.vue:206
@@ -369,6 +374,15 @@ msgstr "Domini amministrati"
msgid "Associated domains"
msgstr "Domini amministrati"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -423,6 +437,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Formato bind/named"
@@ -484,6 +503,11 @@ msgstr "Categorie"
msgid "Category deleted"
msgstr "Data di creazione"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -545,7 +569,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Chiudi"
@@ -566,6 +592,14 @@ msgstr ""
msgid "Company"
msgstr "Azienda"
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -585,6 +619,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr "Contatti"
@@ -615,7 +653,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -626,6 +664,7 @@ msgstr "Paese"
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Data di creazione"
@@ -643,11 +682,21 @@ msgstr "Crea una casella di posta per l'amministratore."
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Con una casella di posta"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Crea alias"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Con una casella di posta"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -728,6 +777,15 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Con una casella di posta"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -754,6 +812,11 @@ msgstr "Disabilitato"
msgid "Disable 2FA"
msgstr "Disabilitato"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Disabilitato"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -773,6 +836,11 @@ msgstr ""
msgid "Display name"
msgstr "Nome visualizzato"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Nome visualizzato"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "Chiave DKIM"
@@ -798,8 +866,7 @@ msgid "DKIM key selector"
msgstr ""
#: src/components/admin/domains/DNSDetail.vue:238
-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 ""
#: src/components/admin/domains/DomainDKIMKey.vue:5
@@ -1001,11 +1068,21 @@ msgstr "Nuovo account"
msgid "Edit filter"
msgstr "Indirizzo email"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Con una casella di posta"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "Indirizzo email"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Con una casella di posta"
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1029,10 +1106,20 @@ msgstr "Indirizzo email"
msgid "Email providers"
msgstr "Indirizzo email"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "Email"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Con una casella di posta"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1048,6 +1135,11 @@ msgstr "Abilita la firma DKIM"
msgid "Enable DNS checks"
msgstr "Abilita i controlli DNS"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Abilitato"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1158,7 +1250,7 @@ msgstr "Profilo aggiornato"
msgid "Filter updated"
msgstr "Profilo aggiornato"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1170,7 +1262,7 @@ msgstr ""
msgid "First name"
msgstr "Nome"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Inoltra"
@@ -1197,6 +1289,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1361,8 +1454,8 @@ msgstr "Informazioni"
#: src/components/account/TotpAuthForm.vue:34
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 ""
#: src/views/admin/InformationView.vue:92
@@ -1476,6 +1569,26 @@ msgstr "Caselle di posta"
msgid "Mailbox aliases:"
msgstr "Caselle di posta"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Caselle di posta"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Dominio creato"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Data di creazione"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Caselle di posta"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1490,6 +1603,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1500,6 +1629,11 @@ msgstr ""
msgid "Message"
msgstr "Utilizzo"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Utilizzo"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1510,12 +1644,38 @@ msgstr "Utilizzo"
msgid "Message history"
msgstr "Utilizzo"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Utilizzo"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Utilizzo"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1598,6 +1758,7 @@ msgstr "Nome utente"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1686,7 +1847,7 @@ msgstr ""
msgid "Next"
msgstr "Successivo"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1697,6 +1858,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1713,6 +1875,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1774,6 +1940,10 @@ msgstr ""
msgid "Old account"
msgstr "Nuovo account"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Sono disponibili nuovi aggiornamenti"
@@ -1800,11 +1970,16 @@ msgstr "Opzioni"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
#, fuzzy
msgid "Parameters updated"
msgstr "Profilo aggiornato"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Con una casella di posta"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1906,6 +2081,13 @@ msgstr "Profilo aggiornato"
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Indirizzi mittenti"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -1952,9 +2134,9 @@ msgstr "Dimensione massima"
#: src/components/admin/identities/form_steps/AccountMailboxForm.vue:15
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 ""
"Dimensione massima per questa mailbox, può essere espressa in KB, MB "
"(predefinito) o GB. Definire un valore personalizzato o utilizzare quello "
@@ -2063,6 +2245,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr "Chiudi"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Rivenditore"
@@ -2111,6 +2301,11 @@ msgstr ""
msgid "Search"
msgstr "Cerca"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "Importa domini"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2143,6 +2338,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Nuovo account"
@@ -2193,7 +2389,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Impostazioni"
@@ -2244,6 +2440,7 @@ msgid "Status"
msgstr "Stato"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2301,9 +2498,9 @@ msgstr ""
#: src/views/admin/InformationView.vue:22
msgid ""
-"The password scheme you are using has been deprecated and will be removed in"
-" the next minor version. The procedure to upgrade to a stronger scheme is as"
-" follows:"
+"The password scheme you are using has been deprecated and will be removed in "
+"the next minor version. The procedure to upgrade to a stronger scheme is as "
+"follows:"
msgstr ""
#: src/components/account/ProfileForm.vue:34
@@ -2321,13 +2518,15 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
#: src/components/contacts/AddressBookInfo.vue:9
msgid ""
-"To access this address book from the outside (such as Mozilla Thunderbird or"
-" your smartphone), use the following URL:"
+"To access this address book from the outside (such as Mozilla Thunderbird or "
+"your smartphone), use the following URL:"
msgstr ""
"Per accedere a questa rubrica da applicazioni esterne (es. Mozilla "
"Thunderbird o il tuo smartphone), usa la seguente URL:"
@@ -2415,6 +2614,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Aggiorna"
@@ -2423,6 +2623,11 @@ msgstr "Aggiorna"
msgid "Update auto-reply"
msgstr "Password"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Modifica contatto"
+
#: src/components/account/ProfileForm.vue:75
#, fuzzy
msgid "Update Password"
@@ -2476,6 +2681,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2484,6 +2690,11 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "Email"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Settimana"
@@ -2509,7 +2720,7 @@ msgstr ""
msgid "Year"
msgstr "Anno"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2520,6 +2731,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/ja/app.po b/frontend/src/locale/ja/app.po
index 63204cefe..75e882ced 100644
--- a/frontend/src/locale/ja/app.po
+++ b/frontend/src/locale/ja/app.po
@@ -169,6 +169,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -348,6 +352,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -402,6 +415,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -457,6 +475,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -516,7 +539,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -536,6 +561,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -554,6 +587,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -584,7 +621,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -595,6 +632,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -611,11 +649,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -692,6 +738,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -716,6 +770,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -733,6 +791,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -950,10 +1012,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -974,10 +1044,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -992,6 +1070,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1095,7 +1177,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1106,7 +1188,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1131,6 +1213,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1398,6 +1481,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1411,6 +1510,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1421,6 +1536,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1429,12 +1548,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1514,6 +1657,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1595,7 +1739,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1606,6 +1750,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1621,6 +1766,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1679,6 +1828,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1704,10 +1857,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1806,6 +1963,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1947,6 +2110,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1995,6 +2166,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2027,6 +2202,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2072,7 +2248,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2122,6 +2298,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2199,6 +2376,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2287,6 +2466,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2294,6 +2474,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2343,6 +2527,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2351,6 +2536,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2376,7 +2565,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2387,6 +2576,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/messages.pot b/frontend/src/locale/messages.pot
index 2e82a2c64..f3f410c98 100644
--- a/frontend/src/locale/messages.pot
+++ b/frontend/src/locale/messages.pot
@@ -148,6 +148,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -325,6 +329,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20
#: src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
@@ -380,6 +393,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -435,6 +453,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -494,7 +517,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -514,6 +539,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -530,6 +563,10 @@ msgstr ""
msgid "Congratulations! Two-factor authentication using one-time passwords is now enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3
#: src/views/contacts/AddressBook.vue:37
msgid "Contacts"
@@ -561,7 +598,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -572,6 +609,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -588,11 +626,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -667,6 +713,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -691,6 +745,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -708,6 +766,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -923,10 +985,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -947,10 +1017,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -965,6 +1043,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1068,7 +1150,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1080,6 +1162,7 @@ msgid "First name"
msgstr ""
#: src/views/account/SettingsView.vue:14
+#: src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1104,6 +1187,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1360,6 +1444,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1372,6 +1472,22 @@ msgstr ""
msgid "Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1382,6 +1498,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1390,12 +1510,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1475,6 +1619,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1556,7 +1701,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1567,6 +1712,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1582,6 +1728,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1638,6 +1788,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1663,10 +1817,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1763,6 +1921,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1899,6 +2063,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1947,6 +2119,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -1979,6 +2155,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2024,7 +2201,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2074,6 +2251,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2139,6 +2317,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2219,6 +2399,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2226,6 +2407,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2275,6 +2460,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2283,6 +2469,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2308,7 +2498,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2319,6 +2509,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/nl/app.po b/frontend/src/locale/nl/app.po
index bb3feb4f6..f4ff93fd4 100644
--- a/frontend/src/locale/nl/app.po
+++ b/frontend/src/locale/nl/app.po
@@ -170,6 +170,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -349,6 +353,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -403,6 +416,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -458,6 +476,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -517,7 +540,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -537,6 +562,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -555,6 +588,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -585,7 +622,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -596,6 +633,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -612,11 +650,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -693,6 +739,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -717,6 +771,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -734,6 +792,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -951,10 +1013,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -975,10 +1045,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -993,6 +1071,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1096,7 +1178,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1107,7 +1189,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1132,6 +1214,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1399,6 +1482,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1412,6 +1511,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1422,6 +1537,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1430,12 +1549,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1515,6 +1658,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1596,7 +1740,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1607,6 +1751,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1622,6 +1767,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1680,6 +1829,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1705,10 +1858,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1807,6 +1964,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1948,6 +2111,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1996,6 +2167,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2028,6 +2203,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2073,7 +2249,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2123,6 +2299,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2200,6 +2377,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2288,6 +2467,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2295,6 +2475,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2344,6 +2528,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2352,6 +2537,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2377,7 +2566,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2388,6 +2577,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/pl/app.po b/frontend/src/locale/pl/app.po
index bdbe4fc36..77b5aa29e 100644
--- a/frontend/src/locale/pl/app.po
+++ b/frontend/src/locale/pl/app.po
@@ -172,6 +172,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -351,6 +355,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -405,6 +418,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -460,6 +478,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -519,7 +542,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -539,6 +564,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -557,6 +590,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -587,7 +624,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -598,6 +635,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -614,11 +652,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -695,6 +741,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -719,6 +773,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -736,6 +794,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -953,10 +1015,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -977,10 +1047,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -995,6 +1073,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1098,7 +1180,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1109,7 +1191,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1134,6 +1216,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1401,6 +1484,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1414,6 +1513,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1424,6 +1539,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1432,12 +1551,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1517,6 +1660,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1598,7 +1742,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1609,6 +1753,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1624,6 +1769,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1682,6 +1831,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1707,10 +1860,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1809,6 +1966,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1950,6 +2113,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1998,6 +2169,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2030,6 +2205,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2075,7 +2251,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2125,6 +2301,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2202,6 +2379,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2290,6 +2469,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2297,6 +2477,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2346,6 +2530,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2354,6 +2539,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2379,7 +2568,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2390,6 +2579,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/pt_BR/app.po b/frontend/src/locale/pt_BR/app.po
index 5e56f35be..b980ad9fc 100644
--- a/frontend/src/locale/pt_BR/app.po
+++ b/frontend/src/locale/pt_BR/app.po
@@ -1,19 +1,21 @@
-#
+#
# Translators:
# Paulino Michelazzo , 2024
# Rafael Barretto Alves , 2025
-#
+#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2024-08-01 12:26+0000\n"
"Last-Translator: Rafael Barretto Alves , 2025\n"
-"Language-Team: Portuguese (Brazil) (https://app.transifex.com/tonio/teams/13749/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (https://app.transifex.com/tonio/"
+"teams/13749/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
-"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\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)"
@@ -50,9 +52,9 @@ msgid ""
"A user with no privileges but with a mailbox. He will be allowed to use all "
"end-user features: webmail, calendar, contacts, filters."
msgstr ""
-"Um usuário sem privilégios, mas com uma caixa de correio. Ele terá permissão"
-" para usar todos os recursos do usuário final: webmail, calendário, "
-"contatos, filtros."
+"Um usuário sem privilégios, mas com uma caixa de correio. Ele terá permissão "
+"para usar todos os recursos do usuário final: webmail, calendário, contatos, "
+"filtros."
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:92
msgid ""
@@ -178,6 +180,11 @@ msgstr "Adicionar novo filtro"
msgid "Add sender address"
msgstr "Adicionar endereço do remetente"
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Editar contato"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr "Adicionar/Remover da página do domínio"
@@ -285,8 +292,8 @@ msgstr "Apelido atualizado"
#: src/components/admin/identities/form_steps/AccountAliasForm.vue:8
#: src/components/admin/identities/form_steps/AliasRecipientForm.vue:8
msgid ""
-"Alias(es) of this mailbox. To create a catchall alias, just enter the domain"
-" name (@domain.tld)."
+"Alias(es) of this mailbox. To create a catchall alias, just enter the domain "
+"name (@domain.tld)."
msgstr ""
"Apelido(s) desta caixa de correio. Para criar um apelido catchall, basta "
"digitar o nome de domínio (@domain.tld)."
@@ -359,6 +366,15 @@ msgstr "Domínio associado"
msgid "Associated domains"
msgstr "Domínios associados"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr "Tentando fazer login."
@@ -413,6 +429,11 @@ msgstr "Voltar"
msgid "Backup codes"
msgstr "Códigos de backup"
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Formato de associação/nomeado. Clique para copiar"
@@ -468,6 +489,11 @@ msgstr "Categorias"
msgid "Category deleted"
msgstr "Categoria excluída"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr "Alterar o valor do Esquema de senha padrão"
@@ -529,7 +555,9 @@ msgstr "Clique aqui para copiar a chave"
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Fechar"
@@ -549,6 +577,15 @@ msgstr "Cor"
msgid "Company"
msgstr "Empresa"
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+#, fuzzy
+msgid "Compress this mailbox"
+msgstr "Com caixa de correio"
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr "Condições"
@@ -569,6 +606,11 @@ msgstr ""
"Parabéns! A autenticação de dois fatores usando senhas de uso único agora "
"está habilitada para sua conta."
+#: src/components/webmail/ContactCard.vue:64
+#, fuzzy
+msgid "Contact added to address book"
+msgstr "Sincronize seus contatos com o catálogo de endereços"
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr "Contatos"
@@ -600,7 +642,7 @@ msgstr "Copiar para área de transferência"
msgid "Copy token to clipboard"
msgstr "Copiar token para a área de transferência"
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr "Não é possível salvar os parâmetros"
@@ -611,6 +653,7 @@ msgstr "País"
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr "Criar"
@@ -627,11 +670,21 @@ msgstr "Criar uma caixa de e-mail para o administrador."
msgid "Create a new filter set"
msgstr "Criar um novo conjunto de filtros"
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Criar um novo conjunto de filtros"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Criar apelidos"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Criar um novo conjunto de filtros"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr "Criar apelidos padrão para este domínio."
@@ -710,6 +763,16 @@ msgstr "Remover"
msgid "Delete filter set"
msgstr "Remover conjunto de filtros"
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Com caixa de correio"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+#, fuzzy
+msgid "Delete this mailbox?"
+msgstr "Com caixa de correio"
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr "Remover token"
@@ -734,6 +797,11 @@ msgstr "Desabilitar"
msgid "Disable 2FA"
msgstr "Desabilitar 2FA"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Desabilitar"
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr "desabilitado"
@@ -751,6 +819,11 @@ msgstr "Exibir informações do catálogo de endereços"
msgid "Display name"
msgstr "Nome de exibição"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Nome de exibição"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "Chave DKIM"
@@ -778,8 +851,7 @@ msgid "DKIM key selector"
msgstr "Seletor da chave DKIM"
#: src/components/admin/domains/DNSDetail.vue:238
-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 "Já existem chaves DKIM para este domínio. Deseja sobrescrevê-las?"
#: src/components/admin/domains/DomainDKIMKey.vue:5
@@ -972,10 +1044,20 @@ msgstr "Editar evento"
msgid "Edit filter"
msgstr "Editar filtro"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Com caixa de correio"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr "Editar provedor"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Com caixa de correio"
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr "Editar seu dispositivo"
@@ -996,10 +1078,20 @@ msgstr "Endereço de e-mail"
msgid "Email providers"
msgstr "Provedores de e-mail"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "E-mail"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr "Vazio"
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Com caixa de correio"
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr "Habilitar"
@@ -1014,6 +1106,11 @@ msgstr "Habilitar assinatura DKIM"
msgid "Enable DNS checks"
msgstr "Habilitar verificações de DNS"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Habilitar"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1117,7 +1214,7 @@ msgstr "Conjunto de filtros atualizado"
msgid "Filter updated"
msgstr "Filtro atualizado"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr "Filtros"
@@ -1128,7 +1225,7 @@ msgstr "Filtros"
msgid "First name"
msgstr "Nome"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Encaminhar"
@@ -1153,6 +1250,7 @@ msgstr "Forwarders com ARC"
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr "De"
@@ -1254,8 +1352,8 @@ msgid ""
"If you configured it recently, please wait for the first report to be "
"received and processed."
msgstr ""
-"Se você o configurou recentemente, aguarde o primeiro relatório ser recebido"
-" e processado."
+"Se você o configurou recentemente, aguarde o primeiro relatório ser recebido "
+"e processado."
#: src/layouts/admin/AdminLayout.vue:70
msgid "IMAP Migration"
@@ -1317,8 +1415,8 @@ msgstr "Informação"
#: src/components/account/TotpAuthForm.vue:34
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 ""
"Instale um autenticador de token de software como FreeOTP ou Google "
"Authenticator do repositório de aplicativos e use esse aplicativo para "
@@ -1421,8 +1519,7 @@ msgstr "Sair"
#: src/views/admin/InformationView.vue:54
msgid "Logout / Login with your current account so its password gets updated"
msgstr ""
-"Saia e entre novamente com sua conta atual para que sua senha seja "
-"atualizada"
+"Saia e entre novamente com sua conta atual para que sua senha seja atualizada"
#: src/components/admin/alarms/AlarmList.vue:95
#: src/components/admin/identities/AccountCreationForm.vue:121
@@ -1435,6 +1532,26 @@ msgstr "Caixa de e-mail"
msgid "Mailbox aliases:"
msgstr "Apelidos de caixa de correio:"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Caixas de e-mail"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Domínio criado"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Migração removida"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Caixas de e-mail"
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr "Caixa de e-mail:"
@@ -1447,8 +1564,24 @@ msgstr "Caixas de e-mail"
msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
-"Certifique-se de que a opção Atualizar esquema de senha no "
-"login esteja habilitada"
+"Certifique-se de que a opção Atualizar esquema de senha no login"
+"strong> esteja habilitada"
+
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
@@ -1460,6 +1593,11 @@ msgstr "MB"
msgid "Message"
msgstr "Mensagem"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Filtros de mensagem"
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr "Filtros de mensagem"
@@ -1468,12 +1606,38 @@ msgstr "Filtros de mensagem"
msgid "Message history"
msgstr "Histórico de mensagens"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr "Limite de envio de mensagens"
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Filtros de mensagem"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Filtros de mensagem"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr "mensagens"
@@ -1553,6 +1717,7 @@ msgstr "nome"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1634,7 +1799,7 @@ msgstr "Novos códigos de recuperação"
msgid "Next"
msgstr "Próximo"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr "não"
@@ -1645,6 +1810,7 @@ msgstr "não"
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr "Não"
@@ -1660,6 +1826,10 @@ msgstr "Nenhum dado para exportar"
msgid "No domain managed"
msgstr "Nenhum domínio gerenciado"
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr "Nenhum endereço de remetente definido para esta conta"
@@ -1671,8 +1841,7 @@ msgstr "Sem limite de envio"
#: src/components/account/BackupCodeAuthForm.vue:43
msgid "No two-factor authentificator is yet set for your account."
msgstr ""
-"Ainda não existe nenhum autenticador de dois fatores definido para sua "
-"conta."
+"Ainda não existe nenhum autenticador de dois fatores definido para sua conta."
#: src/plugins/rules.js:7
msgid "Not a valid email"
@@ -1724,6 +1893,10 @@ msgstr "OK"
msgid "Old account"
msgstr "Conta antiga"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Uma ou mais atualizações estão disponíveis"
@@ -1749,10 +1922,15 @@ msgstr "Opções"
msgid "or suggest a new language"
msgstr "ou sugira um novo idioma"
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr "Parâmetros atualizados"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Com caixa de correio"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1821,8 +1999,8 @@ msgid ""
"Please note that you will see this message until ALL user "
"passwords have been converted using the new scheme."
msgstr ""
-"Observe que você verá esta mensagem até que TODAS as senhas"
-" dos usuários tenham sido convertidas usando o novo esquema."
+"Observe que você verá esta mensagem até que TODAS as senhas "
+"dos usuários tenham sido convertidas usando o novo esquema."
#: src/components/admin/imap_migration/ProviderCreationForm.vue:55
#: src/components/admin/imap_migration/ProvidersList.vue:98
@@ -1854,6 +2032,13 @@ msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
"Forneça um arquivo CSV em que as linhas respeitem um dos seguintes formatos:"
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Endereços do remetente"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr "Provedor"
@@ -1894,9 +2079,9 @@ msgstr "Cota"
#: src/components/admin/identities/form_steps/AccountMailboxForm.vue:15
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 ""
"A cota para essa caixa de correio pode ser expressa em KB, MB (padrão) ou "
"GB. Defina um valor personalizado ou use o padrão do domínio. Deixe em "
@@ -2001,6 +2186,14 @@ msgstr "Remover este administrador"
msgid "Reopen alarm"
msgstr "Reabrir alarme"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Revendedor"
@@ -2049,6 +2242,11 @@ msgstr "Salve suas alterações"
msgid "Search"
msgstr "Busca"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "mensagens"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2081,6 +2279,7 @@ msgid "Select file"
msgstr "Selecionar arquivo"
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr "Enviar"
@@ -2126,7 +2325,7 @@ msgstr "Serviço"
msgid "Service: "
msgstr "Serviço: "
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Configurações"
@@ -2176,6 +2375,7 @@ msgid "Status"
msgstr "Status"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr "Assunto"
@@ -2210,8 +2410,8 @@ msgid ""
"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"
-" substituídas automaticamente pelo valor apropriado: %(name)s, %(fromdate)s "
+"O conteúdo da sua resposta. Você pode usar as seguintes variáveis, que serão "
+"substituídas automaticamente pelo valor apropriado: %(name)s, %(fromdate)s "
"%(untildate)s"
#: src/components/calendars/CalendarDetail.vue:19
@@ -2242,12 +2442,12 @@ msgstr ""
#: src/views/admin/InformationView.vue:22
msgid ""
-"The password scheme you are using has been deprecated and will be removed in"
-" the next minor version. The procedure to upgrade to a stronger scheme is as"
-" follows:"
+"The password scheme you are using has been deprecated and will be removed in "
+"the next minor version. The procedure to upgrade to a stronger scheme is as "
+"follows:"
msgstr ""
-"O esquema de senha que você está usando foi descontinuado e será removido na"
-" próxima atualização. O procedimento para atualizar para um esquema mais "
+"O esquema de senha que você está usando foi descontinuado e será removido na "
+"próxima atualização. O procedimento para atualizar para um esquema mais "
"forte é o seguinte:"
#: src/components/account/ProfileForm.vue:34
@@ -2265,13 +2465,15 @@ msgstr "Título"
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr "Para"
#: src/components/contacts/AddressBookInfo.vue:9
msgid ""
-"To access this address book from the outside (such as Mozilla Thunderbird or"
-" your smartphone), use the following URL:"
+"To access this address book from the outside (such as Mozilla Thunderbird or "
+"your smartphone), use the following URL:"
msgstr ""
"Para acessar esse catálogo de endereços externamente (como do Mozilla "
"Thunderbird ou de seu celular), use a seguinte URL:"
@@ -2281,8 +2483,8 @@ msgid ""
"To access this calendar from the outside (such as Mozilla Thunderbird or "
"your smartphone), use the following URL:"
msgstr ""
-"Para acessar esta calendário externamente (como do Mozilla Thunderbird ou de"
-" seu celular), use a seguinte URL:"
+"Para acessar esta calendário externamente (como do Mozilla Thunderbird ou de "
+"seu celular), use a seguinte URL:"
#: src/components/admin/dmarc/DmarcAligmentChart.vue:140
#: src/components/admin/dmarc/DmarcSourceTable.vue:12
@@ -2361,6 +2563,7 @@ msgstr "Até"
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Atualizar"
@@ -2368,6 +2571,11 @@ msgstr "Atualizar"
msgid "Update auto-reply"
msgstr "Atualizar resposta automática"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Editar contato"
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr "Atualizar Senha"
@@ -2417,6 +2625,7 @@ msgstr "atenção"
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr "Atenção"
@@ -2425,6 +2634,11 @@ msgstr "Atenção"
msgid "WebAuthn"
msgstr "WebAuthn"
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "E-mail"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Semana"
@@ -2450,7 +2664,7 @@ msgstr "Escrita"
msgid "Year"
msgstr "Ano"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr "sim"
@@ -2461,6 +2675,7 @@ msgstr "sim"
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr "Sim"
@@ -2469,8 +2684,8 @@ msgid ""
"You already have generated backup codes for this account. If you don't "
"remember them or have used them all, you can generate new ones."
msgstr ""
-"Você já gerou códigos de backup para esta conta. Se você não se lembra deles"
-" ou já usou todos eles, pode gerar novos."
+"Você já gerou códigos de backup para esta conta. Se você não se lembra deles "
+"ou já usou todos eles, pode gerar novos."
#: src/components/account/APISetupForm.vue:95
msgid "You are about to delete your API access token"
diff --git a/frontend/src/locale/ru/app.po b/frontend/src/locale/ru/app.po
index 5e03e1fcd..361d679aa 100644
--- a/frontend/src/locale/ru/app.po
+++ b/frontend/src/locale/ru/app.po
@@ -180,6 +180,11 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Новый аккаунт"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -371,6 +376,15 @@ msgstr "Список квот"
msgid "Associated domains"
msgstr "Список квот"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -425,6 +439,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Неверный формат"
@@ -486,6 +505,11 @@ msgstr ""
msgid "Category deleted"
msgstr "Дата создания"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -545,7 +569,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -565,6 +591,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -584,6 +618,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -614,7 +652,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -625,6 +663,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Дата создания"
@@ -642,11 +681,19 @@ msgstr "Создание администратора домена"
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Создание синонимов"
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -724,6 +771,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -750,6 +805,11 @@ msgstr "Разрешен"
msgid "Disable 2FA"
msgstr "Разрешен"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Разрешен"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -769,6 +829,11 @@ msgstr ""
msgid "Display name"
msgstr "Имя файла"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Имя файла"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -996,11 +1061,20 @@ msgstr "Новый аккаунт"
msgid "Edit filter"
msgstr "Е-майл адрес"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Новый синоним"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "Е-майл адрес"
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1024,10 +1098,20 @@ msgstr "Е-майл адрес"
msgid "Email providers"
msgstr "Е-майл адрес"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "Е-майл адрес"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Почтовые ящики"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1043,6 +1127,11 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Разрешено"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1152,7 +1241,7 @@ msgstr "Профиль обновлен"
msgid "Filter updated"
msgstr "Профиль обновлен"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1164,7 +1253,7 @@ msgstr ""
msgid "First name"
msgstr "Имя файла"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Перенаправленые"
@@ -1192,6 +1281,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1471,6 +1561,26 @@ msgstr "Почтовые ящики"
msgid "Mailbox aliases:"
msgstr "Почтовые ящики"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Почтовые ящики"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Домен создан"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Дата создания"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Почтовые ящики"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1485,6 +1595,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1495,6 +1621,11 @@ msgstr ""
msgid "Message"
msgstr "использование (%%)"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "использование (%%)"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1505,12 +1636,38 @@ msgstr "использование (%%)"
msgid "Message history"
msgstr "использование (%%)"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "использование (%%)"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "использование (%%)"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1593,6 +1750,7 @@ msgstr "Логин пользователя"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1681,7 +1839,7 @@ msgstr ""
msgid "Next"
msgstr "Следующая"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1692,6 +1850,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1708,6 +1867,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1769,6 +1932,10 @@ msgstr ""
msgid "Old account"
msgstr "Новый аккаунт"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Доступны одно или более обновлений."
@@ -1795,11 +1962,15 @@ msgstr "Опции"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
#, fuzzy
msgid "Parameters updated"
msgstr "Профиль обновлен"
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1901,6 +2072,13 @@ msgstr "Профиль обновлен"
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Ошибочный запрос"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -2054,6 +2232,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Реселлер"
@@ -2102,6 +2288,11 @@ msgstr ""
msgid "Search"
msgstr "Поиск"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "Импорт доменов"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2134,6 +2325,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Новый аккаунт"
@@ -2184,7 +2376,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Настройки"
@@ -2235,6 +2427,7 @@ msgid "Status"
msgstr "Статистика"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2312,6 +2505,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2403,6 +2598,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Обновление"
@@ -2411,6 +2607,11 @@ msgstr "Обновление"
msgid "Update auto-reply"
msgstr "Пароль"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Новый аккаунт"
+
#: src/components/account/ProfileForm.vue:75
#, fuzzy
msgid "Update Password"
@@ -2464,6 +2665,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2472,6 +2674,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Неделя"
@@ -2497,7 +2703,7 @@ msgstr ""
msgid "Year"
msgstr "Год"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2508,6 +2714,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/frontend/src/locale/sv/app.po b/frontend/src/locale/sv/app.po
index ae0d8edad..98ebd94f9 100644
--- a/frontend/src/locale/sv/app.po
+++ b/frontend/src/locale/sv/app.po
@@ -185,6 +185,11 @@ msgstr ""
msgid "Add sender address"
msgstr "Lägg till avsändaradress"
+#: src/components/webmail/ContactCard.vue:15
+#, fuzzy
+msgid "Add to contacts"
+msgstr "Redigera konto"
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
#, fuzzy
msgid "Add/Remove from the domain page"
@@ -378,6 +383,15 @@ msgstr "Associerade domäner"
msgid "Associated domains"
msgstr "Associerade domäner"
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
#, fuzzy
msgid "Attempting to log you in."
@@ -433,6 +447,11 @@ msgstr "Tillbaka"
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr "Bind/named formatterat. Klicka för att kopiera"
@@ -494,6 +513,11 @@ msgstr ""
msgid "Category deleted"
msgstr "Larm raderat"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -557,7 +581,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Stäng"
@@ -577,6 +603,15 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+#, fuzzy
+msgid "Compress this mailbox"
+msgstr "Med brevlåda"
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -597,6 +632,10 @@ msgid ""
"enabled for your account."
msgstr "Grattis! Tvåfaktorsautentisering är nu aktiverad för ditt konto."
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -629,7 +668,7 @@ msgstr "Kopiera till urklipp"
msgid "Copy token to clipboard"
msgstr "Kopiera token till urklipp"
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr "Kunde inte spara parametrar"
@@ -640,6 +679,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
#, fuzzy
msgid "Create"
msgstr "Datum skapad"
@@ -657,11 +697,21 @@ msgstr "Skapa en brevlåda för administratören."
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+#, fuzzy
+msgid "Create a new mailbox"
+msgstr "Med en brevlåda"
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr "Skapa alias"
+#: src/components/webmail/MailboxForm.vue:75
+#, fuzzy
+msgid "Create new mailbox"
+msgstr "Med en brevlåda"
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr "Skapa standardalias för domänen."
@@ -741,6 +791,16 @@ msgstr "Radera"
msgid "Delete filter set"
msgstr "Välj fil"
+#: src/layouts/webmail/WebmailLayout.vue:60
+#, fuzzy
+msgid "Delete this mailbox"
+msgstr "Med brevlåda"
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+#, fuzzy
+msgid "Delete this mailbox?"
+msgstr "Med brevlåda"
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr "Radera token"
@@ -766,6 +826,11 @@ msgstr "Inaktiverad"
msgid "Disable 2FA"
msgstr "Inaktivear 2FA"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "Inaktiverad"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -785,6 +850,11 @@ msgstr ""
msgid "Display name"
msgstr "Förnamn"
+#: src/views/webmail/EmailView.vue:78
+#, fuzzy
+msgid "Display source"
+msgstr "Förnamn"
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr "DKIM nyckel"
@@ -1015,10 +1085,20 @@ msgstr "Redigera konto"
msgid "Edit filter"
msgstr "Redigera leverantör"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Med brevlåda"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr "Redigera leverantör"
+#: src/layouts/webmail/WebmailLayout.vue:54
+#, fuzzy
+msgid "Edit this mailbox"
+msgstr "Med brevlåda"
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1041,10 +1121,20 @@ msgstr "E-postadress"
msgid "Email providers"
msgstr "E-postleverantörer"
+#: src/components/webmail/ComposeEmailForm.vue:268
+#, fuzzy
+msgid "Email sent"
+msgstr "E-post"
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr "Tom"
+#: src/components/webmail/EmailList.vue:83
+#, fuzzy
+msgid "Empty mailbox"
+msgstr "Med brevlåda"
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1060,6 +1150,11 @@ msgstr "Aktivera DKIM signering"
msgid "Enable DNS checks"
msgstr "Aktivera DNS kontroller"
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "Aktiverad"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1171,7 +1266,7 @@ msgstr "Parametrar uppdaterade"
msgid "Filter updated"
msgstr "Profil uppdaterad"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1182,7 +1277,7 @@ msgstr ""
msgid "First name"
msgstr "Förnamn"
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr "Vidarebefordra"
@@ -1207,6 +1302,7 @@ msgstr "Vidarebefordrare med ARC"
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr "Från"
@@ -1496,6 +1592,26 @@ msgstr "Brevlåda"
msgid "Mailbox aliases:"
msgstr "Brevlådor"
+#: src/layouts/webmail/WebmailLayout.vue:188
+#, fuzzy
+msgid "Mailbox compressed"
+msgstr "Brevlådor"
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Domän skapad"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Migrering raderad"
+
+#: src/components/webmail/MailboxForm.vue:98
+#, fuzzy
+msgid "Mailbox renamed"
+msgstr "Brevlådor"
+
#: src/components/admin/identities/AccountEditForm.vue:158
#, fuzzy
msgid "Mailbox:"
@@ -1510,6 +1626,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1520,6 +1652,11 @@ msgstr "MB"
msgid "Message"
msgstr "Meddelande"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "Meddelande historik"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1529,12 +1666,38 @@ msgstr "Meddelande historik"
msgid "Message history"
msgstr "Meddelande historik"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr "Begränsning för meddelandesändning"
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "Meddelande historik"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "Meddelande historik"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr "meddelanden"
@@ -1615,6 +1778,7 @@ msgstr "Användarnamn"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1702,7 +1866,7 @@ msgstr "Nya återställningskoder"
msgid "Next"
msgstr "Nästa"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr "nej"
@@ -1713,6 +1877,7 @@ msgstr "nej"
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr "Nej"
@@ -1728,6 +1893,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr "Inge avsändaradress agedd för detta konto"
@@ -1794,6 +1963,10 @@ msgstr "OK"
msgid "Old account"
msgstr "Gammalt konto"
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "En eller flera uppdateringar tillgängliga"
@@ -1820,10 +1993,15 @@ msgstr "Alternativ"
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr "Parametrar uppdaterade"
+#: src/components/webmail/MailboxForm.vue:13
+#, fuzzy
+msgid "Parent mailbox"
+msgstr "Med brevlåda"
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1924,6 +2102,13 @@ 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/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+#, fuzzy
+msgid "Provide one or more addresses"
+msgstr "Avsändaradresser"
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr "Leverantör"
@@ -2073,6 +2258,14 @@ msgstr "Radera denna administratör"
msgid "Reopen alarm"
msgstr "Återöppna larmet"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Återförsäljare"
@@ -2121,6 +2314,11 @@ msgstr ""
msgid "Search"
msgstr "Sök"
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "meddelanden"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2155,6 +2353,7 @@ msgid "Select file"
msgstr "Välj fil"
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
#, fuzzy
msgid "Send"
msgstr "Välj ett konto"
@@ -2205,7 +2404,7 @@ msgstr "Tjänst"
msgid "Service: "
msgstr "Tjänst:"
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Inställningar"
@@ -2256,6 +2455,7 @@ msgid "Status"
msgstr "Status"
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2341,6 +2541,8 @@ msgstr "titel"
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr "Till"
@@ -2434,6 +2636,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Uppdatera"
@@ -2442,6 +2645,11 @@ msgstr "Uppdatera"
msgid "Update auto-reply"
msgstr "Uppdatera lösenord"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Redigera konto"
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr "Uppdatera lösenord"
@@ -2493,6 +2701,7 @@ msgstr "Varning"
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr "Varning"
@@ -2501,6 +2710,11 @@ msgstr "Varning"
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+#, fuzzy
+msgid "Webmail"
+msgstr "E-post"
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr "Vecka"
@@ -2526,7 +2740,7 @@ msgstr ""
msgid "Year"
msgstr "År"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr "ja"
@@ -2537,6 +2751,7 @@ msgstr "ja"
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr "Ja"
diff --git a/frontend/src/locale/tr/app.po b/frontend/src/locale/tr/app.po
index f695ae891..eb4513315 100644
--- a/frontend/src/locale/tr/app.po
+++ b/frontend/src/locale/tr/app.po
@@ -172,6 +172,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -355,6 +359,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -409,6 +422,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -469,6 +487,11 @@ msgstr ""
msgid "Category deleted"
msgstr "Onayla"
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -529,7 +552,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr "Kapat"
@@ -551,6 +576,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
#, fuzzy
msgid "Conditions"
@@ -573,6 +606,10 @@ msgstr ""
"Tebrikler! Artık hesabınız için İki Faktörlü Kimlik Doğrulama "
"etkinleştirildi."
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -603,7 +640,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -614,6 +651,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -630,11 +668,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -713,6 +759,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -738,6 +792,11 @@ msgstr "2FA'yı devre dışı bırak"
msgid "Disable 2FA"
msgstr "2FA'yı devre dışı bırak"
+#: src/views/webmail/EmailView.vue:74
+#, fuzzy
+msgid "Disable links"
+msgstr "2FA'yı devre dışı bırak"
+
#: src/components/admin/domains/DomainList.vue:85
#, fuzzy
msgid "disabled"
@@ -756,6 +815,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -977,11 +1040,20 @@ msgstr "Yeni kurtarma kodları"
msgid "Edit filter"
msgstr "Yeni kurtarma kodları"
+#: src/components/webmail/MailboxForm.vue:76
+#, fuzzy
+msgid "Edit mailbox"
+msgstr "Yeni kurtarma kodları"
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
#, fuzzy
msgid "Edit provider"
msgstr "Yeni kurtarma kodları"
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
#, fuzzy
msgid "Edit your device"
@@ -1003,10 +1075,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
#, fuzzy
msgid "Enable"
@@ -1022,6 +1102,11 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+#, fuzzy
+msgid "Enable links"
+msgstr "2FA'yı etkinleştir"
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1131,7 +1216,7 @@ msgstr "Profil güncellendi"
msgid "Filter updated"
msgstr "Profil güncellendi"
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1142,7 +1227,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1168,6 +1253,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr "Kimden"
@@ -1442,6 +1528,24 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+#, fuzzy
+msgid "Mailbox created"
+msgstr "Profil güncellendi"
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+#, fuzzy
+msgid "Mailbox deleted"
+msgstr "Onayla"
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1455,6 +1559,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1465,6 +1585,11 @@ msgstr ""
msgid "Message"
msgstr "İleti"
+#: src/views/webmail/EmailView.vue:254
+#, fuzzy
+msgid "Message deleted"
+msgstr "İleti"
+
#: src/views/account/FiltersView.vue:3
#, fuzzy
msgid "Message filters"
@@ -1475,12 +1600,38 @@ msgstr "İleti"
msgid "Message history"
msgstr "İleti"
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+#, fuzzy
+msgid "Message(s) deleted"
+msgstr "İleti"
+
+#: src/components/webmail/EmailList.vue:287
+#, fuzzy
+msgid "Message(s) flagged"
+msgstr "İleti"
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1563,6 +1714,7 @@ msgstr "Kullanıcı adı"
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1649,7 +1801,7 @@ msgstr "Yeni kurtarma kodları"
msgid "Next"
msgstr "Sonraki"
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1660,6 +1812,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr "Hayır"
@@ -1675,6 +1828,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1736,6 +1893,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr "Bir veya daha fazla güncelleme mevcut"
@@ -1762,11 +1923,15 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
#, fuzzy
msgid "Parameters updated"
msgstr "Profil güncellendi"
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1868,6 +2033,12 @@ msgstr "Profil güncellendi"
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
#, fuzzy
msgid "Provider"
@@ -2017,6 +2188,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr "Kapat"
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr "Bayii"
@@ -2065,6 +2244,11 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+#, fuzzy
+msgid "Search in messages"
+msgstr "İleti"
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2098,6 +2282,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2143,7 +2328,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr "Ayarlar"
@@ -2193,6 +2378,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2271,6 +2457,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr "Kime"
@@ -2366,6 +2554,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr "Güncelle"
@@ -2374,6 +2563,11 @@ msgstr "Güncelle"
msgid "Update auto-reply"
msgstr "Parola"
+#: src/components/webmail/ContactCard.vue:23
+#, fuzzy
+msgid "Update contact"
+msgstr "Ayarlar"
+
#: src/components/account/ProfileForm.vue:75
#, fuzzy
msgid "Update Password"
@@ -2426,6 +2620,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2434,6 +2629,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2459,7 +2658,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2470,6 +2669,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr "Evet"
diff --git a/frontend/src/locale/zh/app.po b/frontend/src/locale/zh/app.po
index b06eb9b68..38125072f 100644
--- a/frontend/src/locale/zh/app.po
+++ b/frontend/src/locale/zh/app.po
@@ -169,6 +169,10 @@ msgstr ""
msgid "Add sender address"
msgstr ""
+#: src/components/webmail/ContactCard.vue:15
+msgid "Add to contacts"
+msgstr ""
+
#: src/components/admin/identities/DomainAdminDomains.vue:16
msgid "Add/Remove from the domain page"
msgstr ""
@@ -348,6 +352,15 @@ msgstr ""
msgid "Associated domains"
msgstr ""
+#: src/components/webmail/AttachmentsDialog.vue:16
+msgid "Attach"
+msgstr ""
+
+#: src/components/webmail/AttachmentsDialog.vue:3
+#: src/components/webmail/ComposeEmailForm.vue:21
+msgid "Attachments"
+msgstr ""
+
#: src/views/login/LoginCallbackView.vue:20 src/views/login/LoginView.vue:17
msgid "Attempting to log you in."
msgstr ""
@@ -402,6 +415,11 @@ msgstr ""
msgid "Backup codes"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:110
+#: src/components/webmail/ComposeEmailForm.vue:73
+msgid "Bcc"
+msgstr ""
+
#: src/components/admin/domains/DomainDKIMKey.vue:23
msgid "Bind/named format. Click to copy"
msgstr ""
@@ -457,6 +475,11 @@ msgstr ""
msgid "Category deleted"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:65
+#: src/components/webmail/ComposeEmailForm.vue:83
+msgid "Cc"
+msgstr ""
+
#: src/views/admin/InformationView.vue:37
msgid "Change the value of Default password scheme"
msgstr ""
@@ -516,7 +539,9 @@ msgstr ""
#: src/components/contacts/ContactCategoriesForm.vue:21
#: src/components/contacts/ContactForm.vue:148
#: src/components/tools/ImportForm.vue:51
-#: src/layouts/connected/ConnectedLayout.vue:15
+#: src/components/webmail/AttachmentsDialog.vue:41
+#: src/components/webmail/MailboxForm.vue:29
+#: src/layouts/connected/ConnectedLayout.vue:17
msgid "Close"
msgstr ""
@@ -536,6 +561,14 @@ msgstr ""
msgid "Company"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:28
+msgid "Compose"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:66
+msgid "Compress this mailbox"
+msgstr ""
+
#: src/components/account/FilterForm.vue:14
msgid "Conditions"
msgstr ""
@@ -554,6 +587,10 @@ msgid ""
"enabled for your account."
msgstr ""
+#: src/components/webmail/ContactCard.vue:64
+msgid "Contact added to address book"
+msgstr ""
+
#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37
msgid "Contacts"
msgstr ""
@@ -584,7 +621,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
-#: src/components/tools/ParametersForm.vue:164
+#: src/components/tools/ParametersForm.vue:183
msgid "Could not save parameters"
msgstr ""
@@ -595,6 +632,7 @@ msgstr ""
#: src/components/account/FilterForm.vue:195
#: src/components/account/FilterSetForm.vue:30
#: src/components/calendars/CalendarForm.vue:80
+#: src/components/webmail/MailboxForm.vue:79
msgid "Create"
msgstr ""
@@ -611,11 +649,19 @@ msgstr ""
msgid "Create a new filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:49
+msgid "Create a new mailbox"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:265
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:33
msgid "Create aliases"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:75
+msgid "Create new mailbox"
+msgstr ""
+
#: src/components/admin/domains/form_steps/DomainOptionsForm.vue:35
msgid "Create standard aliases for the domain."
msgstr ""
@@ -692,6 +738,14 @@ msgstr ""
msgid "Delete filter set"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:60
+msgid "Delete this mailbox"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:194
+msgid "Delete this mailbox?"
+msgstr ""
+
#: src/components/account/APISetupForm.vue:38
msgid "Delete token"
msgstr ""
@@ -716,6 +770,10 @@ msgstr ""
msgid "Disable 2FA"
msgstr ""
+#: src/views/webmail/EmailView.vue:74
+msgid "Disable links"
+msgstr ""
+
#: src/components/admin/domains/DomainList.vue:85
msgid "disabled"
msgstr ""
@@ -733,6 +791,10 @@ msgstr ""
msgid "Display name"
msgstr ""
+#: src/views/webmail/EmailView.vue:78
+msgid "Display source"
+msgstr ""
+
#: src/components/admin/domains/DNSDetail.vue:103
msgid "DKIM key"
msgstr ""
@@ -950,10 +1012,18 @@ msgstr ""
msgid "Edit filter"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:76
+msgid "Edit mailbox"
+msgstr ""
+
#: src/views/admin/imap_migration/ProviderEditView.vue:3
msgid "Edit provider"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:54
+msgid "Edit this mailbox"
+msgstr ""
+
#: src/components/account/FidoAuthForm.vue:201
msgid "Edit your device"
msgstr ""
@@ -974,10 +1044,18 @@ msgstr ""
msgid "Email providers"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:268
+msgid "Email sent"
+msgstr ""
+
#: src/components/tools/CreationSummary.vue:45
msgid "Empty"
msgstr ""
+#: src/components/webmail/EmailList.vue:83
+msgid "Empty mailbox"
+msgstr ""
+
#: src/views/account/FiltersView.vue:355
msgid "Enable"
msgstr ""
@@ -992,6 +1070,10 @@ msgstr ""
msgid "Enable DNS checks"
msgstr ""
+#: src/views/webmail/EmailView.vue:69
+msgid "Enable links"
+msgstr ""
+
#: src/components/account/AutoReplyForm.vue:7
#: src/components/admin/domains/DomainCreationForm.vue:166
#: src/components/admin/domains/form_steps/DomainGeneralForm.vue:20
@@ -1095,7 +1177,7 @@ msgstr ""
msgid "Filter updated"
msgstr ""
-#: src/layouts/account/AccountLayout.vue:32
+#: src/layouts/account/AccountLayout.vue:33
msgid "Filters"
msgstr ""
@@ -1106,7 +1188,7 @@ msgstr ""
msgid "First name"
msgstr ""
-#: src/views/account/SettingsView.vue:14
+#: src/views/account/SettingsView.vue:14 src/views/webmail/EmailView.vue:23
msgid "Forward"
msgstr ""
@@ -1131,6 +1213,7 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:47
#: src/components/calendars/EventForm.vue:24
#: src/components/tools/TimeSerieChart.vue:19
+#: src/components/webmail/ComposeEmailForm.vue:29
msgid "From"
msgstr ""
@@ -1398,6 +1481,22 @@ msgstr ""
msgid "Mailbox aliases:"
msgstr ""
+#: src/layouts/webmail/WebmailLayout.vue:188
+msgid "Mailbox compressed"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:105
+msgid "Mailbox created"
+msgstr ""
+
+#: src/layouts/webmail/WebmailLayout.vue:205
+msgid "Mailbox deleted"
+msgstr ""
+
+#: src/components/webmail/MailboxForm.vue:98
+msgid "Mailbox renamed"
+msgstr ""
+
#: src/components/admin/identities/AccountEditForm.vue:158
msgid "Mailbox:"
msgstr ""
@@ -1411,6 +1510,22 @@ msgid ""
"Make sure Update password scheme at login option is enabled"
msgstr ""
+#: src/components/webmail/EmailList.vue:72
+msgid "Mark as followed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:62
+msgid "Mark as read"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:77
+msgid "Mark as unfollowed"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:67
+msgid "Mark as unread"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:20
#: src/components/admin/identities/AccountSummary.vue:49
msgid "MB"
@@ -1421,6 +1536,10 @@ msgstr ""
msgid "Message"
msgstr ""
+#: src/views/webmail/EmailView.vue:254
+msgid "Message deleted"
+msgstr ""
+
#: src/views/account/FiltersView.vue:3
msgid "Message filters"
msgstr ""
@@ -1429,12 +1548,36 @@ msgstr ""
msgid "Message history"
msgstr ""
+#: src/views/webmail/EmailView.vue:268
+msgid "Message marked as junk"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:282
+msgid "Message marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainCreationForm.vue:196
#: src/components/admin/domains/form_steps/DomainLimitationsForm.vue:32
#: src/components/admin/identities/AccountCreationForm.vue:134
msgid "Message sending limit"
msgstr ""
+#: src/components/webmail/EmailList.vue:249
+msgid "Message(s) deleted"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:287
+msgid "Message(s) flagged"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:262
+msgid "Message(s) marked as junk"
+msgstr ""
+
+#: src/components/webmail/EmailList.vue:274
+msgid "Message(s) marked as not junk"
+msgstr ""
+
#: src/components/admin/domains/DomainSummary.vue:32
msgid "messages"
msgstr ""
@@ -1514,6 +1657,7 @@ msgstr ""
#: src/components/admin/imap_migration/ProvidersList.vue:96
#: src/components/calendars/CalendarForm.vue:15
#: src/components/contacts/CategoryForm.vue:10
+#: src/components/webmail/MailboxForm.vue:7
#: src/views/account/FiltersView.vue:164
#: src/views/admin/InformationView.vue:145
msgid "Name"
@@ -1595,7 +1739,7 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "no"
msgstr ""
@@ -1606,6 +1750,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:212
#: src/components/admin/identities/IdentityList.vue:238
#: src/components/tools/CreationForm.vue:136
+#: src/layouts/webmail/WebmailLayout.vue:198
msgid "No"
msgstr ""
@@ -1621,6 +1766,10 @@ msgstr ""
msgid "No domain managed"
msgstr ""
+#: src/components/webmail/EmailList.vue:165
+msgid "No message yet in this mailbox"
+msgstr ""
+
#: src/components/admin/identities/AccountSenderAddresses.vue:10
msgid "No sender address defined for this account"
msgstr ""
@@ -1679,6 +1828,10 @@ msgstr ""
msgid "Old account"
msgstr ""
+#: src/components/webmail/EmailList.vue:93
+msgid "on"
+msgstr ""
+
#: src/views/admin/InformationView.vue:103
msgid "One or more updates are available"
msgstr ""
@@ -1704,10 +1857,14 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
-#: src/components/tools/ParametersForm.vue:159
+#: src/components/tools/ParametersForm.vue:178
msgid "Parameters updated"
msgstr ""
+#: src/components/webmail/MailboxForm.vue:13
+msgid "Parent mailbox"
+msgstr ""
+
#: src/components/admin/dmarc/DmarcAligmentChart.vue:128
#: src/components/admin/dmarc/DmarcAligmentChart.vue:148
msgid "Partially aligned"
@@ -1806,6 +1963,12 @@ msgstr ""
msgid "Provide a CSV file where lines respect one of the following formats:"
msgstr ""
+#: src/components/webmail/ComposeEmailForm.vue:124
+#: src/components/webmail/ComposeEmailForm.vue:54
+#: src/components/webmail/ComposeEmailForm.vue:97
+msgid "Provide one or more addresses"
+msgstr ""
+
#: src/components/admin/imap_migration/MigrationsList.vue:79
msgid "Provider"
msgstr ""
@@ -1947,6 +2110,14 @@ msgstr ""
msgid "Reopen alarm"
msgstr ""
+#: src/views/webmail/EmailView.vue:12
+msgid "Reply"
+msgstr ""
+
+#: src/views/webmail/EmailView.vue:19
+msgid "Reply all"
+msgstr ""
+
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:99
msgid "Reseller"
msgstr ""
@@ -1995,6 +2166,10 @@ msgstr ""
msgid "Search"
msgstr ""
+#: src/components/webmail/EmailList.vue:14
+msgid "Search in messages"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:54
#: src/components/admin/identities/AccountSummary.vue:27
msgid "Secondary email"
@@ -2027,6 +2202,7 @@ msgid "Select file"
msgstr ""
#: src/components/calendars/ImportEventsForm.vue:30
+#: src/components/webmail/ComposeEmailForm.vue:13
msgid "Send"
msgstr ""
@@ -2072,7 +2248,7 @@ msgstr ""
msgid "Service: "
msgstr ""
-#: src/layouts/account/AccountLayout.vue:26
+#: src/layouts/account/AccountLayout.vue:27
#: src/layouts/admin/AdminLayout.vue:88
msgid "Settings"
msgstr ""
@@ -2122,6 +2298,7 @@ msgid "Status"
msgstr ""
#: src/components/account/AutoReplyForm.vue:12
+#: src/components/webmail/ComposeEmailForm.vue:137
msgid "Subject"
msgstr ""
@@ -2199,6 +2376,8 @@ msgstr ""
#: src/components/admin/logs/MessageList.vue:46
#: src/components/calendars/EventForm.vue:34
#: src/components/tools/TimeSerieChart.vue:20
+#: src/components/webmail/ComposeEmailForm.vue:46
+#: src/views/webmail/EmailView.vue:109
msgid "To"
msgstr ""
@@ -2287,6 +2466,7 @@ msgstr ""
#: src/components/contacts/CategoryForm.vue:60
#: src/components/contacts/ContactCategoriesForm.vue:24
#: src/components/contacts/ContactForm.vue:185
+#: src/components/webmail/MailboxForm.vue:79
msgid "Update"
msgstr ""
@@ -2294,6 +2474,10 @@ msgstr ""
msgid "Update auto-reply"
msgstr ""
+#: src/components/webmail/ContactCard.vue:23
+msgid "Update contact"
+msgstr ""
+
#: src/components/account/ProfileForm.vue:75
msgid "Update Password"
msgstr ""
@@ -2343,6 +2527,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:207
#: src/components/admin/identities/IdentityList.vue:233
#: src/components/tools/CreationForm.vue:129
+#: src/layouts/webmail/WebmailLayout.vue:193
#: src/views/calendars/CalendarView.vue:246
msgid "Warning"
msgstr ""
@@ -2351,6 +2536,10 @@ msgstr ""
msgid "WebAuthn"
msgstr ""
+#: src/views/webmail/MailboxView.vue:4
+msgid "Webmail"
+msgstr ""
+
#: src/components/tools/TimeSerieChart.vue:111
msgid "Week"
msgstr ""
@@ -2376,7 +2565,7 @@ msgstr ""
msgid "Year"
msgstr ""
-#: src/plugins/filters.js:9
+#: src/plugins/filters.js:10
msgid "yes"
msgstr ""
@@ -2387,6 +2576,7 @@ msgstr ""
#: src/components/admin/identities/IdentityList.vue:211
#: src/components/admin/identities/IdentityList.vue:237
#: src/components/tools/CreationForm.vue:135
+#: src/layouts/webmail/WebmailLayout.vue:197
msgid "Yes"
msgstr ""
diff --git a/modoboa/locale/br/LC_MESSAGES/django.po b/modoboa/locale/br/LC_MESSAGES/django.po
index 2fae4c68c..f82b193d4 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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"
@@ -17,9 +17,13 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"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"
+"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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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."
@@ -27,27 +31,27 @@ 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:49
+#: admin/api/v1/serializers.py:48
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."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Aotreadur nac'het"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,20 +59,20 @@ msgstr "Aotreadur nac'het"
msgid "This field is required"
msgstr "Rekis eo leuniañ ar vaezienn"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "Listenn domanioù meret (eilgwerzherien ha merourien zomani hepken)."
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Neket aotreet evit ar rol-mañ."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
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:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -77,25 +81,25 @@ msgstr "Rankout a ra bezañ par ouzh boest-postell chomlec'h_klok"
msgid "This field is required."
msgstr "Ar vaezienn-mañ a zo rekiset."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "N'eus ket eus an domani lec'hel {}"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Ul listenn resevourien"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "N'ho peus moned ebet d'an domani-mañ."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "N'ho peus moned ebet d'ar voest-posteloù-mañ."
@@ -118,29 +122,29 @@ msgstr "Rankout a ra bezañ un anterin pozitivel"
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Termeniñ da vihanañ ur rouedad / chomlec'h aotreet"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, 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:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -163,39 +167,39 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domanioù"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Enaouiñ ar gwiriañ MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
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:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "MXs talvoudus"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 ""
"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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "An domanioù nevez a rank implijout MX(où) aotreet"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -203,127 +207,127 @@ 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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable IPV6 checks"
msgstr "Enaouiñ ar gwiriañ DNS"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable SPF checks"
msgstr "Enaouiñ ar gwiriañ DNS"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
#, 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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DKIM checks"
msgstr "Enaouiñ ar gwiriañ MX"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
#, 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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DMARC checks"
msgstr "Enaouiñ ar gwiriañ MX"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable autoconfig checks"
msgstr "Enaouiñ ar gwiriañ MX"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
#, 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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Enaouiñ ar gwiriañ DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Gwiriañ a ra kement domani ouzh ar bourvezerien DNSBL pennañ"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Servijer DNS personnel"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Kavlec'h stokiñ an alc'hwezioù DKIM"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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."
+"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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Ment dre-ziouer un alc'hwez DKIM"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Kota domani dre-ziouer"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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."
+"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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "Kota domani dre-ziouer"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -331,11 +335,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Boest-posteloù"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Merañ ar voest-posteloù war restr-sistem"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -343,9 +347,8 @@ msgstr ""
"Adenvel pe zilemel boest-posteloù war ar restr-sistem pa vezont adanvet pe "
"dilamet diwar Modoboa"
-#: 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:454 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"
@@ -361,40 +364,39 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default mailbox quota"
msgid "Default mailbox sending limit"
msgstr "Kota boest-posteloù dre-ziouer"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Em-dilamadur kont"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Em-grouidigezh domani/boest-postel"
-#: admin/app_settings.py:177 admin/app_settings.py:491
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:177 admin/app_settings.py:489
+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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Krouiñ un alias pa vez adanvet ur voest-posteloù"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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-"
@@ -404,7 +406,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Neket bet kavet an domani."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -416,7 +418,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Melestradurezh"
@@ -451,8 +453,8 @@ 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ù."
+"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:36 admin/templates/admin/account_detail.html:29
#: core/templates/core/information.html:60
@@ -524,9 +526,9 @@ msgstr "Kota"
#: 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 ""
"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 "
@@ -599,8 +601,8 @@ msgstr "Domani(où) meret gant an implijer"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Hollek"
@@ -671,8 +673,8 @@ 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."
+"Alias(où) an domani-mañ. Spisait un anv dre enmont hepken, pouezit war KAS "
+"evit ouzhpennañ un emnont nevez."
#: admin/forms/domain.py:43
msgid "Key selector"
@@ -686,7 +688,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "alias an domani"
@@ -704,7 +706,7 @@ msgstr "Kavlec'h stokiñ an alc'hwezioù DKIM chomet digefluniet"
msgid "You can't define an unlimited quota."
msgstr "N'hallit ket termeniñ ur c'hota divevenn"
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domani"
@@ -790,8 +792,7 @@ msgstr "Mirout eiladennoù lec'hel"
#: 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"
+"Treuzkas kemennadennoù ha stokiñ eiladennoù e-barzh ar voest-posteloù lec'hel"
#: admin/forms/import_.py:10
msgid "Select a file"
@@ -815,28 +816,28 @@ msgstr ""
"Kochit an dibarzh ma ne vez ket kriptet ar gerioù-tremen endalc'het en ho "
"restr"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, 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:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Boest-postel {} a zo anezhi endeo"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Enporzhiadur kont c'hwitet (%s): talvoudegezh kota fall"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Treuzkas"
@@ -876,8 +877,7 @@ msgstr ""
"Prantad gortoz spister DNS, n'heller ket sevel ar reked %s evit ar mare"
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -895,17 +895,17 @@ msgstr "Objed a zo anezhañ dija: %s"
msgid "%d objects imported successfully"
msgstr "%d objed emporzhiet gant berzh"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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ñ"
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -917,11 +917,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1047,18 +1047,18 @@ msgstr ""
msgid "Key length"
msgstr "Padelezh an alc'hwez"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Linenn direizh"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1118,9 +1118,8 @@ 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ñ"
@@ -1296,6 +1295,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Deiziad"
@@ -1382,12 +1382,11 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Ket"
@@ -1395,7 +1394,7 @@ msgstr "Ket"
msgid "Generate new key"
msgstr "Genel un alc'hwez nevez"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Ya"
@@ -1445,7 +1444,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Eus"
@@ -1484,7 +1483,7 @@ msgstr "Em-dreuzkas ar posteloù betek ur chomlec'h postel all"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Hizivaat"
@@ -1512,22 +1511,21 @@ msgid ""
"use a different character as separator.
"
msgstr ""
"Pourvezit ur restr CSV el lec'h ma touj al linennoù unan eus ar stummoù da-"
-"heul: - domani; anv; kota; boes-postel kota dre-ziouer; "
-"enaouet
- domani-alias; anv; domani bukeet; "
-"enaouet
- domain a-eil; anv; herbrec'hier bukenn; porzh "
-"bukenn; servij; enaouet; gwiriañ ar resevourien
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.
"
+"heul: - domani; anv; kota; boes-postel kota dre-ziouer; enaouet"
+"em>
- domani-alias; anv; domani bukeet; enaouet
"
+"- domain a-eil; anv; herbrec'hier bukenn; porzh bukenn; servij; "
+"enaouet; gwiriañ ar resevourien
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: "
-"- 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 ""
"Pourvezit ur restr CSV el lec'h ma touj al linennoù unan eus ar stummoù da-"
"heul: - kont; anv-kevreañ; ger-tremen; anv bihan; anv familh; "
@@ -1621,7 +1619,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Emporzhiañ"
@@ -1700,11 +1698,11 @@ msgstr[2] "Aliasoù dilemet"
msgstr[3] "Aliasoù dilemet"
msgstr[4] "Aliasoù dilemet"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Enrolladennoù MX eus {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Berradenn DNSBL evit {}"
@@ -1739,11 +1737,11 @@ msgstr[2] "Kontoù dilemet"
msgstr[3] "Kontoù dilemet"
msgstr[4] "Kontoù dilemet"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Emporzhiañ domanioù"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Emporzhiañ identelezhioù"
@@ -1793,7 +1791,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Aotren an implijer-mañ da vont e boestoù-post an implijerien"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "A-bep seurt"
@@ -1806,8 +1804,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1843,8 +1840,7 @@ msgstr "Frekañs sinkroneladur"
msgid "Interval in seconds between 2 synchronization requests"
msgstr "Padelezh en eilennoù etre 2 reked sinkroneladur"
-#: contacts/app_settings.py:51
-#: contacts/templates/modoboa_contacts/index.html:6
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
#: core/api/v2/viewsets.py:164
#, fuzzy
#| msgid "Domains"
@@ -1925,7 +1921,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Sintaks direizh"
@@ -1937,8 +1933,7 @@ msgstr "Niveroù ront direizh"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1958,31 +1953,38 @@ msgstr ""
msgid "Address book"
msgstr "Levr chomlec'hioù"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Postel"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "O vezañ anavezet"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Doare anavezadur"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Drekleur implijet evit bezañ anavezet"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Ger-tremen dre ziouer ar brastres"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Brastres implijet evit enrinegañ gerioù-tremen ar postelerezh"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Troiadoù"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1990,64 +1992,64 @@ 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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Ger-tremen dre-ziouer"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Ger-tremen dre-ziouer evit ar gontoù em-grouet."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Hirder dre-zegouezh ger-tremen"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Hirder ar gerioù-tremen em-c'hanet."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2055,110 +2057,113 @@ msgstr ""
msgid "LDAP settings"
msgstr "Arventennoù LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Chomlec'h ar servijer"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Porzh ar servijer"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Niverenn borzh TCP implijet gant ar servijer LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Ober gant ur gevreadenn suraet"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
"Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Kavlec'h oberiant"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Strolladoù merañ"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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 ""
"Izili ar strolladoù LDAP Posix a vo krouet evel bezañ merourien domani. "
"Implijit an arouezoù ';' evit gellet skejañ ar strolladoù."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Doare ar strollad"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Diazez klask ar strolladoù"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Perzhioù ar ger-tremen"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Ar perzhioù implijet evit stokiñ ar gerioù-tremen implijer"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Doare dilesañ"
@@ -2170,17 +2175,17 @@ msgstr "Klask ha liammañ"
msgid "Direct bind"
msgstr "liamm eeun"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Dibabit an doare anavezadur da vezañ implijet"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Liammañ 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2188,35 +2193,35 @@ 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:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Liammañ ur ger-tremen"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Diazez enklask an implijerien"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Sil klask"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2224,11 +2229,11 @@ msgstr ""
"Ur chadenn sil diret (d.sk. '(objedKlas = person)'). Evit bezañ reizh, e "
"rank bezañ enklozet etre krommelloù."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Patrom implijer DN"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2237,113 +2242,113 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Taolenn-stur"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Froud RSS personel"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Kuzhat an arc'hweladurioù objed"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Kuzhat an arc'hweladurioù objed d'an eilgwerzherien ha merourien an domani"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Kemennadennoù"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Chomlec'h ar c'haser"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Chomlec'h postel implijet da gas kemmennoù."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "API foran"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Enaouiñ ar c'hehentiñ"
@@ -2351,99 +2356,98 @@ msgstr "Enaouiñ ar c'hehentiñ"
msgid "Enable communication with Modoboa public API"
msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa "
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Klask stummoù nevez"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Em-wiriañ ma vez ur stumm nevez hegerz"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Kas statistikoù"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Kas ar statistikoù da API foran Modoboa (kontourioù hag an astennoù "
"impliljet)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Treuzoù ar c'hontoù dioberiant"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Treuzoù ar c'hontoù dioberiant"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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 ""
"Ur gont gant un deiziad kevreañ koshoc'h evit an treuzoù-se (e devezhioù) a "
"vo kontet evel bezañ dioberiant"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Padelezh etre ar c'hemennoù gwiriañ pennañ"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Padelezh etre div gwiriadenn gemennoù pennañ (en eilennoù)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Oad enrollañ maksimom ar marilhoù"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Oad brasañ e devezhioù un enrollodenn renabl"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Elfennoù dre bajenn"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Niver a elfennoù diskouezet dre bajenn"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Adhenchañ pennañ dre-ziouer"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
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:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2597,7 +2601,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Hizivadur ger-tremen c'hwitet: modulenn LDAP nann-staliet"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "kont"
@@ -2612,13 +2616,15 @@ msgstr ""
"deoc'h-c'hwi"
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "An implijer eeun '%s' a rank kaout ur chomlec'h postel reizh"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr ""
"ar maeziennoù anv-implijer hag ar postel a rank bezañ disheñvel diouzh '%s'"
@@ -2782,15 +2788,15 @@ msgstr ""
#: core/templates/core/information.html:6
#, python-format
msgid ""
-"The password scheme %(scheme)s has been deprecated and will"
-" be removed in the next minor version. The procedure to upgrade to a "
-"stronger scheme is as follows:
- Go to Parameters > "
-"General section
- Change the value of Default "
-"password scheme
- Make sure Update password scheme "
-"at login option is enabled
- Save your changes
"
-"- Logout / Login with your current account so its password gets "
-"updated
- Inform ALL your users that they must login"
-" to Modoboa to complete the operation
"
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
msgstr ""
#: core/templates/core/information.html:18
@@ -2915,8 +2921,8 @@ 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."
+"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
@@ -3027,7 +3033,7 @@ msgstr "Dizemglev gant brastres ar ger-tremen. Oc'h hizivat ar ger-tremen %s"
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Implijer '{}' digevreet gant berzh"
@@ -3067,11 +3073,12 @@ msgstr "Ostilhoù DMARC"
msgid "Show DMARC report for {}"
msgstr "Diskouez an danevell DMARC evit {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Hini ebet"
@@ -3211,63 +3218,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3301,8 +3308,8 @@ 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."
+"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
@@ -3391,8 +3398,8 @@ 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
@@ -3409,9 +3416,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3439,11 +3446,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3455,20 +3462,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa "
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Neket kefluniet ar gevreadenn ouzh an diaz-roadenn %s"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Aotreadur nac'het: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Aotreadur nac'het"
@@ -3491,7 +3500,7 @@ msgid "Failed to update password: {}"
msgstr "C'hwitet ez eus bet war hizivadur ar ger-tremen: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Sujed"
@@ -3508,8 +3517,8 @@ msgid "Enable or disable per-admin limits"
msgstr "Enaouiñ pe lazhañ ar bevennoù dre-verour"
#: 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
msgid "Domain admins"
msgstr "Merourien domani"
@@ -3526,13 +3535,13 @@ 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)"
+"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: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)"
+"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)"
@@ -3575,8 +3584,8 @@ msgstr "Enaouiñ pe lazhañ ar bevennoù dre-zomani"
#: 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)"
+"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)"
@@ -3599,8 +3608,8 @@ msgstr ""
#: 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)"
+"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)"
@@ -3712,7 +3721,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
#, fuzzy
#| msgid "Send statistics"
msgid "Statistics"
@@ -3722,69 +3731,69 @@ msgstr "Kas statistikoù"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
#, fuzzy
#| msgid "Message"
msgid "sent messages"
msgstr "Kemennadenn"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "Message"
msgid "spam messages"
msgstr "Kemennadenn"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
#, fuzzy
#| msgid "New account"
msgid "New accounts"
msgstr "Kont nevez"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
#, fuzzy
#| msgid "Account"
msgid "Accounts"
@@ -3806,45 +3815,45 @@ msgstr "Klask ha liammañ"
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
#, fuzzy
#| msgid "No preferences available."
msgid "No statistics available"
msgstr "Arventenn hegerz ebet."
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
#, fuzzy
#| msgid "Unknown domain %s"
msgid "Unknown graphic set"
msgstr "Domani dizanv %s"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown domain %s"
msgid "Unknown domain"
msgstr "Domani dizanv %s"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -4089,13 +4098,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: bevenn tizhet"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4106,37 +4115,37 @@ msgstr "%s: bevenn tizhet"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Rekis eo leuniañ ar vaezienn"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4144,25 +4153,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Em-dilamadur kont"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4170,17 +4179,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Kota domani dre-ziouer"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4189,14 +4198,14 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -4226,7 +4235,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4254,7 +4263,7 @@ msgstr "porzhioù herbrec'hiañ bukenn"
msgid "verify recipients"
msgstr "gwiriit ar reseverien"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4283,16 +4292,19 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "Arventennoù LDAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
@@ -4300,6 +4312,7 @@ msgstr ""
"Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4407,40 +4420,36 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
msgstr "Krouiñ aliasoù"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
msgstr "Krouiñ aliasoù"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
msgstr "Krouiñ aliasoù"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4564,9 +4573,9 @@ msgid ""
"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 "
+"
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
@@ -4585,8 +4594,8 @@ 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."
+"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
@@ -4619,8 +4628,8 @@ msgstr "Ger-tremen kozh"
#: templates/registration/twofactor_code_verify.html:35
msgid ""
-"Enter the code from the two-factor app on your mobile device. If you've lost"
-" your device, you may enter one of your recovery codes."
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
msgstr ""
#: templates/registration/twofactor_code_verify.html:42
@@ -4652,12 +4661,182 @@ msgstr "servij"
msgid "next hop"
msgstr "lamm da-heul"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
#, fuzzy
-#~ msgid "Authentication mechanism"
-#~ msgstr "Doare dilesañ"
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Arventennoù LDAP"
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Ober gant ur gevreadenn suraet"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+"Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Doare dilesañ"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Doare dilesañ"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Diskouez ar munudoù"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Niver a elfennoù diskouezet dre bajenn"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr "Krouiñ aliasoù"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "Krouiñ aliasoù"
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "Message"
+msgid "Composing messages"
+msgstr "Kemennadenn"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Adhenchañ pennañ dre-ziouer"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+msgid "Failed to remove attachment: "
+msgstr "N'heller ket adsevel lec'hiadur ar voest-posteloù (%s)"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "Krouiñ aliasoù"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
#, fuzzy
-#~ msgid "Prefered authentication mechanism"
+#~ msgid "Authentication mechanism"
#~ msgstr "Doare dilesañ"
#, fuzzy
@@ -4666,8 +4845,8 @@ msgstr "lamm da-heul"
#~ 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."
+#~ "Hoc'h anv-implijer hag ho ker-tremen na genglotont ket. Klaskit en-dro, "
+#~ "mar plij."
#, fuzzy
#~ msgid "Check to activate this filters set"
@@ -4713,10 +4892,6 @@ msgstr "lamm da-heul"
#~ msgid "Move this filter down"
#~ msgstr "Dilemel an aotre-mañ"
-#, fuzzy
-#~ msgid "Failed to retrieve filters set"
-#~ msgstr "N'heller ket adsevel lec'hiadur ar voest-posteloù (%s)"
-
#, fuzzy
#~ msgid "Filter created"
#~ msgstr "Alias krouet"
diff --git a/modoboa/locale/cs/LC_MESSAGES/django.po b/modoboa/locale/cs/LC_MESSAGES/django.po
index 5e7fc1537..3a72ef34f 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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"
@@ -19,33 +19,34 @@ 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 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -53,20 +54,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -75,23 +76,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -114,27 +115,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -155,137 +156,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 ""
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -293,19 +294,18 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: 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:454 admin/forms/domain.py:54
+#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -315,38 +315,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:177 admin/app_settings.py:489
+msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -354,13 +353,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -462,9 +461,9 @@ 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 ""
#: admin/forms/account.py:254 admin/models/domain.py:39
@@ -526,8 +525,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -605,7 +604,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -623,7 +622,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -730,28 +729,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -788,8 +787,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -807,16 +805,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -827,11 +825,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -947,16 +945,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1006,9 +1004,8 @@ 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 ""
@@ -1180,6 +1177,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1261,12 +1259,11 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1274,7 +1271,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1324,7 +1321,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1363,7 +1360,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1394,11 +1391,11 @@ 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
@@ -1477,7 +1474,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1552,11 +1549,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1589,11 +1586,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1635,7 +1632,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1648,8 +1645,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1683,8 +1679,7 @@ msgstr ""
msgid "Interval in seconds between 2 synchronization requests"
msgstr ""
-#: contacts/app_settings.py:51
-#: contacts/templates/modoboa_contacts/index.html:6
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
#: core/api/v2/viewsets.py:164
msgid "Contacts"
msgstr ""
@@ -1757,7 +1752,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1769,8 +1764,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1786,92 +1780,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1879,107 +1878,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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 ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1991,170 +1993,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2162,93 +2164,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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 ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2400,7 +2401,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Nepodařilo se aktualizovat LDAP účet: {}"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2413,13 +2414,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2571,15 +2570,15 @@ msgstr ""
#: core/templates/core/information.html:6
#, python-format
msgid ""
-"The password scheme %(scheme)s has been deprecated and will"
-" be removed in the next minor version. The procedure to upgrade to a "
-"stronger scheme is as follows: - Go to Parameters > "
-"General section
- Change the value of Default "
-"password scheme
- Make sure Update password scheme "
-"at login option is enabled
- Save your changes
"
-"- Logout / Login with your current account so its password gets "
-"updated
- Inform ALL your users that they must login"
-" to Modoboa to complete the operation
"
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
msgstr ""
#: core/templates/core/information.html:18
@@ -2699,8 +2698,8 @@ 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."
+"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
@@ -2802,7 +2801,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2838,11 +2837,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2978,63 +2978,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3068,8 +3068,8 @@ 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."
+"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
@@ -3150,8 +3150,8 @@ 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
@@ -3166,9 +3166,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3194,11 +3194,11 @@ msgstr "Nepodařilo se vytvořit LDAT účet: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Nepodařilo se aktualizovat LDAP účet: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Nepodařilo se smazat LDAP účet: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Nepodařilo se zakázat LDAP účet: {}"
@@ -3209,20 +3209,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3247,7 +3245,7 @@ msgid "Failed to update password: {}"
msgstr "Nepodařilo se aktualizovat LDAP účet: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3264,8 +3262,8 @@ 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
msgid "Domain admins"
msgstr ""
@@ -3283,8 +3281,8 @@ msgstr ""
#: 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)"
+"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:58 limits/app_settings.py:198
@@ -3319,8 +3317,8 @@ msgstr ""
#: 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)"
+"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:104 limits/app_settings.py:260
@@ -3337,8 +3335,8 @@ msgstr ""
#: 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)"
+"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
@@ -3443,7 +3441,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3451,63 +3449,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3523,39 +3521,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3778,11 +3776,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3791,33 +3789,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3825,23 +3823,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3849,15 +3847,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3866,12 +3864,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3899,7 +3897,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3927,7 +3925,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3953,18 +3951,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4052,34 +4054,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4235,8 +4233,8 @@ msgstr ""
#: templates/registration/twofactor_code_verify.html:35
msgid ""
-"Enter the code from the two-factor app on your mobile device. If you've lost"
-" your device, you may enter one of your recovery codes."
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
msgstr ""
#: templates/registration/twofactor_code_verify.html:42
@@ -4267,3 +4265,150 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Nepodařilo se vytvořit LDAT účet: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/locale/cs_CZ/LC_MESSAGES/django.po
index 1617a7e64..fea65ecc2 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,7 +21,7 @@ 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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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."
@@ -29,25 +29,25 @@ 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:49
+#: admin/api/v1/serializers.py:48
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:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Přístup zamítnut."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,20 +55,20 @@ msgstr "Přístup zamítnut."
msgid "This field is required"
msgstr "Toto pole je vyžadováno"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Není povoleno pro tuto roli."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Musí být rovno hodnote schránky celá_adresa"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -77,25 +77,25 @@ msgstr "Musí být rovno hodnote schránky celá_adresa"
msgid "This field is required."
msgstr "Toto pole je vyžadováno."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Lokální doména {} neexistuje"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Seznam příjemců"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "K této doméně nemáte přístup."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "K této schránce nemáte přístup."
@@ -118,29 +118,29 @@ msgstr "Musí se jednat o kladné číslo"
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Definujte alespoň jednu autorizovanou síť / adresu"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, 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:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -163,26 +163,26 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domény"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Povolit MX kontroly"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
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:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Platné MX záznamy"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -190,11 +190,11 @@ msgstr ""
"Seznam IP nebo síťových adres, které by každý MX záznam měl obsahovat. Pokud"
" toto záznam nerespektuje, bude odesláno varování."
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Nové domény musí používat autorizovaný/é MX záznam(y)"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -202,85 +202,85 @@ msgstr ""
"Zamezit vytvoření nové domény, pokud její MX záznamy neodpovídají jedné ze "
"zadaných adres."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable IPV6 checks"
msgstr "Zapnout kontrolu DNS"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable SPF checks"
msgstr "Zapnout kontrolu DNS"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
#, 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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DKIM checks"
msgstr "Povolit MX kontroly"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
#, 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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DMARC checks"
msgstr "Povolit MX kontroly"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable autoconfig checks"
msgstr "Povolit MX kontroly"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
#, 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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Povolit DNSBL kontroly"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
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:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Vlastní DNS server"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Složka pro uložení DKIM klíčů"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
@@ -290,19 +290,19 @@ msgstr ""
"se, že vytvořená složka patří uživateli root a není možné z ní číst okolním "
"světem."
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Výchozí délka DKIM klíče"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Výchozí kvóta domény"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -310,19 +310,19 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "Výchozí kvóta domény"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -330,11 +330,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Schránky"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Spravovat schránky v souborovém systému"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -342,7 +342,7 @@ 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:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -361,40 +361,40 @@ msgstr ""
"které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou "
"kvótu."
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default mailbox quota"
msgid "Default mailbox sending limit"
msgstr "Výchozí kvóta schránky"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Automatické odstranění účtu"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Automatické vytvoření domény/schránky"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
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:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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 "
@@ -404,7 +404,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Složka nenalezena."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -417,7 +417,7 @@ msgstr ""
"které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou "
"kvótu."
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Správa"
@@ -598,8 +598,8 @@ msgstr "Doména(y) pod správou uživatele"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Obecné"
@@ -684,7 +684,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "doménový alias"
@@ -702,7 +702,7 @@ msgstr "Není nastavena složka pro ukládání DKIM klíčů"
msgid "You can't define an unlimited quota."
msgstr "Neomezená kvóta nelze definovat."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "doména"
@@ -810,28 +810,28 @@ 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:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Schránka {} již existuje"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Import účtu selhal (%s): chybná hodnota kvóty"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Přeposlat"
@@ -870,8 +870,7 @@ 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:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -889,16 +888,16 @@ msgstr "Objekt již existuje: %s"
msgid "%d objects imported successfully"
msgstr "%d objektů úspěšně importováno"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "Soubor CSV nelze dekódovat pomocí %(encoding)s kódování"
@@ -909,11 +908,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1038,18 +1037,18 @@ msgstr ""
msgid "Key length"
msgstr "Délka klíče"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Neplatný řádek"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1285,6 +1284,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Datum"
@@ -1376,7 +1376,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Ne"
@@ -1384,7 +1384,7 @@ msgstr "Ne"
msgid "Generate new key"
msgstr "Vygenerovat nový klíč"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Ano"
@@ -1434,7 +1434,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Od"
@@ -1473,7 +1473,7 @@ msgstr "Automaticky přesměrovat emaily na jinou adresu"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Aktualizovat"
@@ -1602,7 +1602,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Import"
@@ -1680,11 +1680,11 @@ msgstr[1] "Alias smazán"
msgstr[2] "Aliasy smazány"
msgstr[3] "Aliasy smazány"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "MX záznamy pro {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL přehled pro {}"
@@ -1717,11 +1717,11 @@ msgstr[1] "Účty smazány"
msgstr[2] "Účtů smazáno"
msgstr[3] "Účtů smazáno"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importovat domény"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importovat identity"
@@ -1771,7 +1771,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Povolit správci přístup do uživatelských poštovních schránek"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Různé"
@@ -1784,8 +1784,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1901,7 +1900,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Neplatná syntaxe"
@@ -1913,8 +1912,8 @@ msgstr "Neplatný počet cyklů"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1934,31 +1933,38 @@ msgstr ""
msgid "Address book"
msgstr "Adresa"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Ověření"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Typ ověření"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Rozhraní pro ověřování přístupu"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Výchozí schéma hesel"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Použité schéma pro šifrování hesel schránek"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Počet cyklů"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1966,62 +1972,62 @@ 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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Výchozí heslo"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Výchozí heslo pro automaticky vytvořené účty."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Délka náhodného hesla"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Počet znaků náhodně vygenerovaných hesel."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2029,74 +2035,77 @@ msgstr ""
msgid "LDAP settings"
msgstr "Nastavení LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Adresa serveru"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP adresa DNS jména LDAP serveru"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Port serveru"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Port TCP, který používá LDAP server"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Použít zabezpečené připojení"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Správcovské skupiny"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2104,35 +2113,35 @@ 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:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Typ skupiny"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Typ LDAP skupiny "
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Základna struktury skupin"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atribut hesla"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Atribut používaný pro ukládání hesel uživatelů"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Metoda ověření"
@@ -2144,17 +2153,17 @@ msgstr "Vyhledat a spojit"
msgid "Direct bind"
msgstr "Přímé spojení"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Zvolte si metodu ověření, která se použije"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Spojení pomocí 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2162,35 +2171,35 @@ 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:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Heslo spojení"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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í)."
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Základna struktury uživatelů"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Vyhledávací filtr"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2198,11 +2207,11 @@ msgstr ""
"Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je "
"nezbytné jen uzavřít do závorek."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Šablona uživatelského DN"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2211,111 +2220,111 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Plocha"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Vlastní RSS zdroj"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
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:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Skrýt widget funkcí"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
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:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Oznámení"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Adresy odesílatele"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Emailová adresa používaná k zasílání upozornění"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Veřejné API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Povolit komunikaci"
@@ -2323,59 +2332,59 @@ msgstr "Povolit komunikaci"
msgid "Enable communication with Modoboa public API"
msgstr "Povolit komunikaci s veřejným Modoboa API rozhraním"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Zkontrolovat verzi"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Automaticky kontrolovat dostupnost nové verze"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Příjemce"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Odoslat statistiky"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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í)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Počet dnů pro neaktivní účet"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Počet dnů pro neaktivní účet"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2383,41 +2392,41 @@ 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:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Interval aktualizací upozornění"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
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:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Maximální stáří záznamu"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Maximální stáří záznamu ve dnech"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Položek na stránce"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Počet zobrazených položek na stránce"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Výchozí přesměrování aplikace"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
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"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2569,7 +2578,7 @@ msgstr "Alternativní e-mailová adresa, může být použita pro účely obnov
msgid "Failed to update password: LDAP module not installed"
msgstr "Nebylo možné změnit heslo: LDAP modul není instalován"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "účet"
@@ -2582,13 +2591,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Běžný uživatel '%s' musí mít nastavenou platnou emailovou adresu"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "pole uživatelského jména a emailu se nesmí pro '%s' lišit"
#: core/password_validation.py:25
@@ -2994,7 +3005,7 @@ msgstr "Chyba v typu hesla. Aktualizace %s hesla"
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Uživatel '{}' byl úspěšně odhlášen"
@@ -3032,11 +3043,12 @@ msgstr "DMARC nástroje"
msgid "Show DMARC report for {}"
msgstr "Zobrazit DMARC zprávu pro {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Nic"
@@ -3176,63 +3188,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3378,9 +3390,10 @@ msgstr "Nastavení OfflineIMAP"
msgid "IMAP Migration"
msgstr "IMAP migrace"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Spojení se serverem IMAP selhalo: %s"
#: imap_migration/checks.py:12
@@ -3406,11 +3419,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3422,20 +3435,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Povolit komunikaci s veřejným Modoboa API rozhraním"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Připojení k databázi %s není nastaveno"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Přístup zamítnut: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Přístup zamítnut"
@@ -3458,7 +3473,7 @@ msgid "Failed to update password: {}"
msgstr "Nebylo možné změnit heslo: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Předmět"
@@ -3699,7 +3714,7 @@ msgstr "odmítnuté zprávy"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistiky"
@@ -3707,69 +3722,69 @@ msgstr "Statistiky"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Průměrný provoz (zprávy/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "odeslané zprávy"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "přijaté zprávy"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "nedoručené zprávy"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "odmítnuté zprávy"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
#, fuzzy
#| msgid "sent messages"
msgid "virus messages"
msgstr "odeslané zprávy"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "sent messages"
msgid "spam messages"
msgstr "odeslané zprávy"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
#, fuzzy
#| msgid "rejected messages"
msgid "greylisted messages"
msgstr "odmítnuté zprávy"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Průměrná velikost provozu (bajtů/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "doručená velikost"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "odeslaná velikost"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Provoz emailů"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3785,41 +3800,41 @@ msgstr "Hledat doménu"
msgid "Apply"
msgstr "Uložit"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Žádné statistiky nejsou dostupné"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Den"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Týden"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Měsíc"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Rok"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Vlastní"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Nastaveno neznámé zobrazení"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Nastaveno neznámé zobrazení"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Neplatně nastavený vlastní časový interval"
@@ -4065,13 +4080,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: limit byl dosažen"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4082,39 +4097,39 @@ msgstr "%s: limit byl dosažen"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Zvolené datum je v minulosti"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Interval automatické odpovědi"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Výchozí předmět"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
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/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4124,29 +4139,29 @@ msgstr ""
"Token '%(name)s' bude automaticky nahrazen celým jménem uživatele."
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Automatické odpovědi"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Do"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4157,17 +4172,17 @@ msgstr ""
"automaticky nahrazeny příslušnou hodnotou: %(name)s, %(fromdate)s, "
"%(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Jsem nedostupný"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Výchozí obsah"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4180,14 +4195,14 @@ msgstr ""
"S pozdravem,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
#, fuzzy
#| msgid "Custom message"
msgid "Auto-reply message"
msgstr "Automatická odpověď"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Automatická odpověď"
@@ -4217,7 +4232,7 @@ msgstr "Aktivovat/Deaktivovat automatickou odpověď"
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
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Automatická odpověď byla aktualizována."
@@ -4251,7 +4266,7 @@ msgstr "cílový server"
msgid "verify recipients"
msgstr "ověřit příjemce"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4284,20 +4299,24 @@ msgid "Use the STARTTLS extension"
msgstr "Použít rozšíření STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "Nastavení IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr "Adresa vašeho IMAP serveru"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr "Použít zabezpečené připojení pro přístup k IMAP serveru"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr "Port, na kterém naslouchá váš IMAP server"
@@ -4405,36 +4424,32 @@ msgstr "Režim úpravy"
msgid "Select the mode you want the editor to work in"
msgstr "Zvolte režim editoru textu, ve kterém si přejete pracovat"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr "Složka koše"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "Složka pro smazané zprávy"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr "Složka odeslané pošty"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr "Složka pro kopie odeslaných zpráv"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr "Složka konceptů"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr "Složka pro koncepty zpráv"
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Nebylo možné zjistit hierarchický oddělovač"
-
#: sievefilters/lib.py:52
#, fuzzy
#| msgid "Connection to IMAP server failed: %s"
@@ -4624,7 +4639,7 @@ msgstr ""
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Zpět"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4646,14 +4661,189 @@ msgstr "služba"
msgid "next hop"
msgstr "následující skok"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Maximální velikost přílohy"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+"Maximální velikost přílohy v Bajtech (nebo KB, MB, GB, pokud je uvedeno)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Nastavení SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Adresa vašeho SMTP serveru"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Režim zabezpečeného připojení"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Použít zabezpečené připojení pro přístup k SMTP serveru"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Port, na kterém naslouchá váš SMTP server"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Ověření vyžadováno"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Server vyžaduje ověření"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Zobrazení"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Výchozí režim zobrazení zprávy"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Výchozí režim, který se použije pro zobrazení zprávy"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Povolit zobrazení HTML odkazů"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Povolit/Zakázat zobrazení HTML odkazů"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Počet zobrazených zpráv na stránce"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Nastavuje maximální počet zobrazených zpráv na stránce"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Automatické obnovení stránky"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Šířka kontejneru složky"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "Šířka kontejneru seznamu složek"
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr "Složky"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Sent folder"
+msgid "Junk folder"
+msgstr "Složka pro spam"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Složka, kam by měly být přesunuty spamové zprávy"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Vytváření zpráv"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Výchozí editor"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Výchozí editor textu, který se použije pro vytváření zpráv"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Text podpisu"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Emailový podpis uživatele"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Nebylo možné odstranit přílohu:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Nebylo možné zjistit hierarchický oddělovač"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Doručená pošta"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Drafts folder"
+msgid "Drafts"
+msgstr "Koncepty"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Nevyžádaná pošta"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Odeslaná pošta"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Koš"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Příloha je příliš velká (omezení: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Režim ověření"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Preferovaný režim ověření"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Složka nenalezena."
@@ -4748,9 +4938,6 @@ msgstr "následující skok"
#~ msgid "Filter removed"
#~ msgstr "Filtr odstraněn"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Nezdařilo se odstranit filtr"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Sada filtrů uložena"
diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po
index 8b6823e48..cc7347e4f 100644
--- a/modoboa/locale/de/LC_MESSAGES/django.po
+++ b/modoboa/locale/de/LC_MESSAGES/django.po
@@ -44,7 +44,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+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"
@@ -54,7 +54,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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."
@@ -63,27 +63,27 @@ msgstr ""
"(Voreinstellung) oder GB angegeben werden. Der Wert 0 bedeutet keinen "
"Speicherplatz."
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
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
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Zugriff verweigert."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -91,21 +91,21 @@ msgstr "Zugriff verweigert."
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Nicht erlaubt für diese Rolle."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Muss mit mailbox full_address übereinstimmen"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -114,25 +114,25 @@ msgstr "Muss mit mailbox full_address übereinstimmen"
msgid "This field is required."
msgstr "Dieses Feld ist erforderlich"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Lokale Domain {} existiert nicht."
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Eine Liste der Empfänger"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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:568
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:577
msgid "You don't have access to this mailbox."
msgstr "Sie haben keinen Zugriff auf diese Mailbox."
@@ -155,28 +155,28 @@ msgstr "Muss eine positive Ganzzahl sein"
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
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:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
"Bitte IMAP Migration deaktivieren bevor Sie diese Option deaktivieren."
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr "Zum Erstellen von Aliassen ist ein Postfach erforderlich."
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr "Unbekannter Status"
@@ -197,26 +197,26 @@ msgstr "Keine Alarm-ID gegeben"
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:287 admin/handlers.py:285
#: 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 "Domains"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Aktiviere MX Prüfungen"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
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:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Gültige MX-Einträge"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -224,81 +224,81 @@ 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:43 admin/app_settings.py:315
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:46 admin/app_settings.py:319
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
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable SPF checks"
msgid "Enable IPV6 checks"
msgstr "Aktiviere SPF-Prüfungen"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Aktiviere SPF-Prüfungen"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
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:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Aktiviere DKIM-Prüfungen"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
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
+#: admin/app_settings.py:72 admin/app_settings.py:356
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:358
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:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Aktiviere autoconfig-Prüfungen"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
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:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Aktiviere DNSBL-Prüfungen"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
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:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Benutzerdefinierter DNS Server"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:394
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:104 admin/app_settings.py:396
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 "
@@ -307,19 +307,19 @@ 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:112 admin/app_settings.py:405
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:115 admin/app_settings.py:407
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:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Standard-Domainquota"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -327,11 +327,11 @@ 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:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Standard Domänen-Sendelimit"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
@@ -339,7 +339,7 @@ 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/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -347,11 +347,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "E-Mail-Postfächer"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
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:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -359,7 +359,7 @@ 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/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -373,11 +373,11 @@ 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:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Standard-Postfach-Versandlimit"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -385,30 +385,30 @@ 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:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Automatische Konto-Entfernung"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Automatische Domain- /Postfach-Erstellung"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:498
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:185 admin/app_settings.py:501
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."
@@ -417,7 +417,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Verzeichnis nicht gefunden."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
@@ -426,7 +426,7 @@ msgstr ""
"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:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Verwaltung"
@@ -607,8 +607,8 @@ msgstr "Domain(s), die dieser Benutzer administriert"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Allgemein"
@@ -695,7 +695,7 @@ 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:106 admin/handlers.py:181
msgid "domain alias"
msgstr "Domain-Alias"
@@ -713,7 +713,7 @@ msgstr "Verzeichnis für DKIM-Keys nicht konfiguriert."
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:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "Domain"
@@ -822,28 +822,28 @@ 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:229
#, 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:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Postfach {} existiert bereits"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, 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:294
#: 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:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Weiterleiten"
@@ -882,8 +882,9 @@ 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:256
-#, python-format
-msgid "DNS name is too long: %s"
+#, fuzzy
+#| msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr "DNS Name ist zu lang: %s"
#: admin/lib.py:287
@@ -901,16 +902,16 @@ msgstr "Objekt existiert bereits: %s"
msgid "%d objects imported successfully"
msgstr "%d Objekte erfolgreich importiert"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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:112
#, 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:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren"
@@ -921,11 +922,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Failed to communicate with public API: %s"
msgid "Failed to generate DKIM public key"
@@ -1046,16 +1047,16 @@ msgstr ""
msgid "Key length"
msgstr "Schlüssel-Länge"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Ungültige Zeile"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
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:382
msgid "{}: invalid quota value for domain"
msgstr "Fehlerhafter Kontingentwert für die Domäne '{}'"
@@ -1281,6 +1282,7 @@ msgstr "Offene Alarme für"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Datum"
@@ -1369,7 +1371,7 @@ msgstr ""
"überschreiben?"
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Nein"
@@ -1377,7 +1379,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:399
msgid "Yes"
msgstr "Ja"
@@ -1427,9 +1429,9 @@ 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:117 postfix_autoreply/forms.py:18
msgid "From"
-msgstr "Von"
+msgstr ""
#: admin/templates/admin/domains_log_headers.html:5
#: admin/templates/admin/messages_log_headers.html:5
@@ -1466,7 +1468,7 @@ 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
-#: core/templates/core/user_profile.html:19 lib/form_utils.py:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Aktualisieren"
@@ -1605,7 +1607,7 @@ 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/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Import"
@@ -1679,11 +1681,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias gelöscht"
msgstr[1] "Aliase gelöscht"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "MX Einträge für {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL Zusammenfassung für {}"
@@ -1712,11 +1714,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Konto gelöscht"
msgstr[1] "Konten gelöscht"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Domains importieren"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Identitäten importieren"
@@ -1766,7 +1768,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Verschiedenes"
@@ -1779,8 +1781,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1897,7 +1898,7 @@ 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
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Ungültiger Syntax"
@@ -1909,8 +1910,8 @@ msgstr "Ungültige Zahl für Runden"
msgid "This code is invalid"
msgstr "Dieser Code ist Falsch"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
"Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen:"
@@ -1932,31 +1933,38 @@ msgstr ""
msgid "Address book"
msgstr "Adresse"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Authentifizierung"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Authentifizierungstyp"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
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:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
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:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Runden"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1964,37 +1972,37 @@ 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:71 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:74 core/app_settings.py:752
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."
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Standardpasswort"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
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:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Zufällige Passwortlänge"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
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:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Aktualisiere Passwort-Service-URL"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -2005,31 +2013,31 @@ msgstr ""
"die nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, "
"SMTP)."
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Ankündigung zur Passwort-Wiederherstellung"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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."
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
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:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS Anbieter"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS"
@@ -2037,75 +2045,78 @@ msgstr "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS"
msgid "LDAP settings"
msgstr "LDAP-Einstellungen"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Server-Adresse"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Server-Port"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
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:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Aktiviere Ausfallsserver (Fallback)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Ausfallsserver-Adresse"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Ausfallsserver-Port"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
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:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "Benutze eine sichere Verbindung"
+msgstr "Gesicherte Verbindung verwenden"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Administrator-Gruppen"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2113,36 +2124,36 @@ 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:192 core/app_settings.py:912
msgid "Group type"
msgstr "Gruppentyp"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
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:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Gruppen Search Base"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Passwort-Attribut"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
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:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP Authentifizierungseinstellungen"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Authentifizierungsmethode"
@@ -2154,50 +2165,50 @@ msgstr "Suchen und Bind anwenden"
msgid "Direct bind"
msgstr "Direkter Bind"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
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:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
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:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
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:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
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:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
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:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2205,11 +2216,11 @@ 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:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Vorlage für User DN"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2218,26 +2229,26 @@ 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:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP Synchronisations Einstellungen"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Export zu LDAP aktivieren"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
"Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis"
" aktivieren"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
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:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2245,11 +2256,11 @@ 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:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Vorlage für User DN"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2258,84 +2269,84 @@ 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:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Import von LDAP aktivieren"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
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:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Benutzernamenattribut"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Dovecot LDAP-Synchronisation aktivieren"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
"LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration "
"angewendet."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP-Konfigurationsdatei"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Dashboard"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Benutzerdefinierter RSS Feed"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
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:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Verberge Funktionen Werkzeug"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
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:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Benachrichtigungen"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Absenderadresse"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
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:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Öffentliche API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Verbindung aktivieren"
@@ -2343,49 +2354,49 @@ msgstr "Verbindung aktivieren"
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:414 core/app_settings.py:1208
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:1201
+#: core/app_settings.py:1211
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:420 core/app_settings.py:1219
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:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
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:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Empfänger"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
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:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Sende Statistiken"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Statistiken über die Modoboa public API senden (Zähler und Nutzungs "
"Erweiterungen)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr "Verfolgung inaktiver Konten aktivieren"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account"
" is considered inactive if the user hasn't logged in"
@@ -2394,11 +2405,11 @@ msgstr ""
"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:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Schwellwert für inaktive Konten"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2406,39 +2417,39 @@ 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:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Benachrichtigungs-Prüfintervall"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
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:466 core/app_settings.py:1296
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:468 core/app_settings.py:1298
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:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Einträge pro Seite"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
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:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Standardumleitung"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
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:827
msgid "LDAP"
msgstr "LDAP"
@@ -2594,7 +2605,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "Konto"
@@ -2608,13 +2619,15 @@ msgstr ""
"Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren"
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden"
#: core/password_validation.py:25
@@ -3010,7 +3023,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Benutzer '{}' erfolgreich abgemeldet"
@@ -3047,13 +3060,14 @@ msgstr "DMARC"
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:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr "Nicht aufgelöst"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
-msgstr "Nichts"
+msgstr "Kein"
#: dmarc/models.py:11
msgid "Quarantine"
@@ -3187,63 +3201,63 @@ msgstr "Ungültige Maske gefunden {}"
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:234
msgid " less than {}"
msgstr "kleiner als {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
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"
@@ -3383,9 +3397,10 @@ msgstr "OfflineIMAP Filter Einstellungen"
msgid "IMAP Migration"
msgstr "IMAP-Migration"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Verbindung zum IMAP-Server gescheitert: %s"
#: imap_migration/checks.py:12
@@ -3415,11 +3430,11 @@ msgstr "LDAP-Account konnte nicht angelegt werden: {}"
msgid "Failed to update LDAP account: {}"
msgstr "LDAP-Account konnte nicht aktualisiert werden: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "LDAP-Account konnte nicht gelöscht werden: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "LDAP-Account konnte nicht deaktiviert werden: {}"
@@ -3430,20 +3445,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Die Kommunikation mit der öffentlichen API ist fehlgeschlagen: %s"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
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 "Kodierung der Zeichenkette konnte nicht bestimmt werden"
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Zugriff verweigert: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Zugriff verweigert"
@@ -3466,7 +3483,7 @@ msgid "Failed to update password: {}"
msgstr "Ändern des Passworts fehlgeschlagen: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Betreff"
@@ -3690,7 +3707,7 @@ msgstr "Grey-gelistete E-Mails anzeigen"
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/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistiken"
@@ -3698,63 +3715,63 @@ msgstr "Statistiken"
msgid "Failed to locate rrdtool binary."
msgstr "RRDTool Binary konnte nicht gefunden werden"
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Durchschnittlicher Traffic (Nachrichten/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "Gesendete Nachrichten"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "Empfangene Nachrichten"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "Zurückgeworfene Nachrichten"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "Abgewiesene Nachrichten"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "Virus E-Mails"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "Spam E-Mails"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "Grey-gelistete E-Mails"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Durchschnittliche Traffic-Menge (Bytes/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "Empfangsgröße"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
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:252
msgid "Average account creation (account/hour)"
msgstr "Durchschnittlich erstelle Konten (Konten/Stunde)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Neue Konten"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Konten"
@@ -3770,39 +3787,39 @@ msgstr "Domain suchen"
msgid "Apply"
msgstr "Antworten"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Keine Statistik-Daten verfügbar"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Tag"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Woche"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Monat"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Jahr"
-#: maillog/views.py:43
+#: maillog/views.py:41
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"
@@ -4044,13 +4061,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: Grenze erreicht"
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -4059,37 +4076,37 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Dieser Code ist Falsch"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4097,25 +4114,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Automatische Konto-Entfernung"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4123,17 +4140,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Standard-Domainquota"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4142,14 +4159,14 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -4179,7 +4196,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4207,7 +4224,7 @@ msgstr "Ziel-Host Port"
msgid "verify recipients"
msgstr "Empfänger verifizieren"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4240,28 +4257,32 @@ msgid "Use the STARTTLS extension"
msgstr "STARTTLS benutzen"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "IMAP-Einstellungen"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
#, fuzzy
#| msgid "IP address of your Modoboa server"
msgid "Address of your IMAP server"
-msgstr "Addresse Ihres IMAP-Servers"
+msgstr "Adresse Ihres IMAP-Servers"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
-msgstr "Benutze eine gesicherte Verbindung zum Zugriff auf den IMAP Server"
+msgstr "Gesicherte Verbindung für Zugriff auf IMAP-Server verwenden"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
#, fuzzy
#| msgid "Listening port of the IMAP server"
msgid "Listening port of your IMAP server"
-msgstr "TCPIP Port Ihres IMAP Servers"
+msgstr "Port auf dem der IMAP-Server lauscht"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4311,7 +4332,7 @@ msgstr "ist nicht"
#, fuzzy
#| msgid "Sender address"
msgid "Sender"
-msgstr "Sender"
+msgstr "Senden"
#: sievefilters/constants.py:26
msgid "Cc"
@@ -4319,7 +4340,7 @@ msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Größe"
+msgstr ""
#: sievefilters/constants.py:31
#, fuzzy
@@ -4369,42 +4390,38 @@ msgstr "Editor-Modus"
msgid "Select the mode you want the editor to work in"
msgstr "Wählen Sie den Modus aus, in dem der Editor arbeiten soll"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create Folders"
msgid "Trash folder"
-msgstr "Papierkorb-Ordner"
+msgstr "Papierkorb"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
-msgstr "Ordner, in den gelöschte Nachrichten gehen"
+msgstr "Ordner für gelöschte Nachrichten"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create Folders"
msgid "Sent folder"
-msgstr "Gesendet-Ordner"
+msgstr "Gesendete Nachrichten"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr "Ordner, in den Kopien gesendeter Nachrichten gehen"
+msgstr "Ordner für Gesendete Nachrichten"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create Folders"
msgid "Drafts folder"
-msgstr "Entwürfe-Ordner"
+msgstr "Entwürfe"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr "Ordner für Entwürfe"
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
#, fuzzy
#| msgid "Connection to IMAP server failed: %s"
@@ -4598,7 +4615,7 @@ msgstr "Bestätigungscode"
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Zurück"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4620,14 +4637,192 @@ msgstr "Dienst"
msgid "next hop"
msgstr "nächster Hop"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Maximale Größe für Anhänge"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Maximale Größe für Anhänge in Bytes (oder KB, MB, GB wenn angegeben)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "SMTP-Einstellungen"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "IP address of your Modoboa server"
+msgid "Address of your SMTP server"
+msgstr "Adresse Ihres SMTP-Servers"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Gesicherter Verbindungsaufbau"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Gesicherte Verbindung für Zugriff auf SMTP-Server verwenden"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of the IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Port auf dem der SMTP-Server lauscht"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Anmeldung erforderlich"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Server erfordert Authentifizierung"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Darstellung"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Standard-Betrachtungsmodus für Nachrichten"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Der Standard-Modus zum Betrachten einer Nachricht"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Aktiviere Darstellung von HTML-Links"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Aktiviere/Deaktiviere Darstellung von HTML-Links"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Anzahl dargestellter Nachrichten pro Seite"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+"Legt die maximale Anzahl von Nachrichten fest, die auf einer Seite "
+"dargestellt werden"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Aktualisierungsintervall für Liste"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Breite des Postfachcontainers"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "Die Breite der Postfach-Liste"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Junk folder"
+msgstr "Gesendete Nachrichten"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Ordner für gelöschte Nachrichten"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Nachrichten erstellen"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Standard-Editor"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Der Standard-Editor zum Erstellen einer Nachricht"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Signatur"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Benutzerdefinierte E-Mail-Signatur"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Konnte Anhang nicht entfernen:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Hierarchie-Trenner konnte nicht ermittelt werden"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Eingang"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Drafts"
+msgstr "Entwürfe"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Werbung"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Gesendet"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Papierkorb"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Anhang ist zu groß (Limit: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Authentifizierungsmechanismus"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Bevorzugte Authentifizierungsmethode"
-
#~ msgid "Directory non-writable"
#~ msgstr "Verzeichnis ist nicht schreibbar"
@@ -4727,9 +4922,6 @@ msgstr "nächster Hop"
#~ msgid "Filter removed"
#~ msgstr "Filter entfernt"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Konnte Filter nicht entfernen"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Filter-Satz gespeichert"
diff --git a/modoboa/locale/de_DE/LC_MESSAGES/django.po b/modoboa/locale/de_DE/LC_MESSAGES/django.po
index 236da366d..e4a7cc749 100644
--- a/modoboa/locale/de_DE/LC_MESSAGES/django.po
+++ b/modoboa/locale/de_DE/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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/"
@@ -21,33 +21,33 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
#, fuzzy
#| msgid "Permission denied"
msgid "Permission denied."
msgstr "Zugriff verweigert"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,22 +55,22 @@ msgstr "Zugriff verweigert"
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
#, 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"
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -81,25 +81,25 @@ msgstr ""
msgid "This field is required."
msgstr "Dieses Feld ist erforderlich"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -122,27 +122,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown tag {}"
msgid "Unknown status"
@@ -167,153 +167,153 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
#, fuzzy
#| msgid "Enable API access"
msgid "Enable MX checks"
msgstr "API-Zugriff aktivieren"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable API access"
msgid "Enable IPV6 checks"
msgstr "API-Zugriff aktivieren"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable API access"
msgid "Enable SPF checks"
msgstr "API-Zugriff aktivieren"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable API access"
msgid "Enable DKIM checks"
msgstr "API-Zugriff aktivieren"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable API access"
msgid "Enable DMARC checks"
msgstr "API-Zugriff aktivieren"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
#, fuzzy
#| msgid "Enable API access"
msgid "Enable DNSBL checks"
msgstr "API-Zugriff aktivieren"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
#, fuzzy
#| msgid "Custom RSS feed"
msgid "Custom DNS server"
msgstr "Benutzerdefinierter RSS-Feed"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -321,17 +321,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -342,39 +342,39 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Automatic account removal"
msgstr "Schwellwert für inaktive Konten"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -382,13 +382,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
#, fuzzy
#| msgid "Administrator groups"
@@ -570,8 +570,8 @@ msgstr "Domain-Administrator"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Allgemein"
@@ -663,7 +663,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -681,7 +681,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
#, fuzzy
#| msgid "Unknown domain"
msgid "domain"
@@ -806,28 +806,28 @@ msgstr "Passwort vergessen?"
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -866,8 +866,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -885,16 +884,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, fuzzy, python-format
#| msgid "unable to determine encoding of string"
msgid "Unable to decode CSV file using %(encoding)s encoding"
@@ -906,11 +905,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1046,16 +1045,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Ungültige Zeile"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1303,6 +1302,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Datum"
@@ -1394,7 +1394,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Nein"
@@ -1402,7 +1402,7 @@ msgstr "Nein"
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Ja"
@@ -1460,7 +1460,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Von"
@@ -1501,7 +1501,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Aktualisieren"
@@ -1629,7 +1629,7 @@ msgid "Message logs"
msgstr "Nachricht"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1707,13 +1707,13 @@ msgid_plural "Aliases deleted"
msgstr[0] "gelöscht"
msgstr[1] "gelöscht"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
#, fuzzy
#| msgid "{} record of {}"
msgid "MX records of {}"
msgstr "{} Eintrag von {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1746,11 +1746,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Konto-DN-Vorlage"
msgstr[1] "Konto-DN-Vorlage"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1802,7 +1802,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Gewähren Sie diesem Administrator Zugriff auf Benutzerpostfächer"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Verschiedenes"
@@ -1815,8 +1815,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1931,7 +1930,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Ungültige Syntax"
@@ -1943,7 +1942,7 @@ msgstr "Ungültige Anzahl Runden"
msgid "This code is invalid"
msgstr "Dieser Code ist ungültig"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
"Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort "
@@ -1965,31 +1964,36 @@ msgstr ""
msgid "Address book"
msgstr "Absender-Adresse"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Authentifizierung"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Authentifizierungstyp"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Das Backend für Authentifizierung"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Voreingestelltes Passwort-Schema"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schema zur Verschlüsselung von Postfach-Passwörtern"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Runden"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1997,37 +2001,37 @@ msgstr ""
"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
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Passwort-Schema beim Login updaten"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
"Aktualisiere das Benutzerkennwort bei der Anmeldung, um das "
"Standardkennwortschema zu verwenden"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Standardpasswort"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Standardpasswort für automatisch kreierte Konten"
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Zufällige Passwortlänge"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Länge der zufällig generierten Passwörter."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "URL des Kennwortdienstes aktualisieren"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -2037,31 +2041,31 @@ msgstr ""
"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
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Ankündigung zur Passwortwiederherstellung"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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."
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Passwortwiederherstellung per SMS aktivieren"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS-Anbieter"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
"Wählen Sie einen Anbieter für den Versand von SMS zur "
@@ -2071,75 +2075,78 @@ msgstr ""
msgid "LDAP settings"
msgstr "LDAP-Einstellungen"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Serveradresse"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Server Port"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
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:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Aktiviere Ausfallserver (Fallback)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Ausfallserver-Adresse"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Ausfallserver-Port"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr "Der TCP Port des zweiten LDAP-Servers"
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Verwende eine gesicherte Verbindung"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Administratorgruppen"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -2147,37 +2154,37 @@ msgstr ""
"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
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Gruppentyp"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Suchbasis für Gruppen"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Kennwortattribut"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Das Attribut, das zum Speichern von Benutzerpasswörtern verwendet wird"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP-Authentifizierungseinstellungen"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Authentifizierungsmethode"
@@ -2189,17 +2196,17 @@ msgstr "Suchen und Bind anwenden"
msgid "Direct bind"
msgstr "Direktbindung"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
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:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2207,37 +2214,37 @@ 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:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
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:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users 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
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
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:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2245,11 +2252,11 @@ 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:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Benutzer-DN-Vorlage"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2258,26 +2265,26 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP-Synchronisationseinstellungen"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Export zu LDAP aktivieren"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
"Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-"
"Verzeichnis aktivieren"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
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:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2285,11 +2292,11 @@ msgstr ""
"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
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Konto-DN-Vorlage"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2298,82 +2305,82 @@ 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:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Import von LDAP aktivieren"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
"Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Benutzername-Attribut"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Dovecot LDAP-Synchronisation aktivieren"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
"LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration "
"angewendet."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP-Konfigurationsdatei"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Dashboard"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Benutzerdefinierter RSS-Feed"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Funktionen-Widget ausblenden"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Benachrichtigungen"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Absenderadresse"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "E-Mail-Adresse, die zum Senden von Benachrichtigungen verwendet wird."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Öffentliche API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Verbindung aktivieren"
@@ -2381,59 +2388,59 @@ msgstr "Verbindung aktivieren"
msgid "Enable communication with Modoboa public API"
msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
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:1201 core/app_settings.py:1211
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:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Sende eine E-Mail, wenn eine neue Version gefunden wurde"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
"Sendet eine E-Mail, um Administratoren über neue Versionen zu benachrichtigen"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Empfänger"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Empfänger von Benachrichtigungs-E-Mails über neue Version."
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Sende Statistiken"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Schwellwert für inaktive Konten"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Schwellwert für inaktive Konten"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
@@ -2441,41 +2448,41 @@ msgstr ""
"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
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Prüfintervall für Benachrichtigungen"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
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:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Maximales Alter eines Log-Eintrags"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Das maximale Alter eines Protokollsatzes in Tagen"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Einträge pro Seite"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Anzahl der angezeigten Einträge pro Seite"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Standardumleitung"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
"wurde"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2633,7 +2640,7 @@ msgid "Failed to update password: LDAP module not installed"
msgstr ""
"Kennwort konnte nicht aktualisiert werden: LDAP-Modul nicht installiert"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "Konto"
@@ -2647,13 +2654,15 @@ msgstr ""
"Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren"
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden"
#: core/password_validation.py:25
@@ -3053,7 +3062,7 @@ msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
"Passwort-Hash-Parameter stimmen nicht überein. Aktualisiere %s Passwort"
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Benutzer '{}' erfolgreich abgemeldet"
@@ -3091,11 +3100,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -3237,63 +3247,63 @@ msgstr "Ungültige Maske gefunden {}"
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:234
msgid " less than {}"
msgstr "weniger als {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
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"
@@ -3437,9 +3447,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr "Automatische Konfiguration"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3467,11 +3477,11 @@ msgstr "LDAP-Konto konnte nicht erstellt werden: {}"
msgid "Failed to update LDAP account: {}"
msgstr "LDAP-Konto konnte nicht aktualisiert werden: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Fehler beim Löschen des LDAP-Kontos: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Fehler beim Deaktivieren des LDAP-Kontos: {}"
@@ -3483,20 +3493,22 @@ msgid "Failed to communicate with public API: %s"
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"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
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 "Codierung der Zeichenkette konnte nicht bestimmt werden"
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Zugriff verweigert: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Zugriff verweigert"
@@ -3519,7 +3531,7 @@ msgid "Failed to update password: {}"
msgstr "Passwort konnte nicht aktualisiert werden: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Betreff"
@@ -3720,7 +3732,7 @@ msgstr "Zeige Greylisted E-Mails"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Unterscheide zwischen Hard- und Soft-Rejects (Greylisting)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistiken"
@@ -3728,63 +3740,63 @@ msgstr "Statistiken"
msgid "Failed to locate rrdtool binary."
msgstr "rrdtool-Binärdatei konnte nicht gefunden werden."
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Durchschnittlicher Datenverkehr (Nachrichten/Min.)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "Gesendete Nachrichten"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "Empfangene Nachrichten"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "Unzustellbare Nachrichten"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "Abgewiesene Nachrichten"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "Virus E-Mails"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "Spam E-Mails"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "Greylisted E-Mails"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Durchschnittlicher Datenverkehr (Bytes/Min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "Empfangene Daten"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "Gesendete Daten"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Mailverkehr"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Durchschnittlich erstelle Konten (Konten/Stunde)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Neue Konten"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Konten"
@@ -3800,39 +3812,39 @@ msgstr "Suche eine Domäne"
msgid "Apply"
msgstr "Anwenden"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Keine Statistiken verfügbar"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Tag"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Woche"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Monat"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Jahr"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Benutzerdefiniert"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Unbekannter Grafiksatz"
-#: 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 benutzerdefinierter Zeitraum"
@@ -4081,11 +4093,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -4094,35 +4106,35 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Dieser Code ist ungültig"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4130,25 +4142,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Automatic replies"
msgstr "Schwellwert für inaktive Konten"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4156,15 +4168,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4173,14 +4185,14 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -4210,7 +4222,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4244,7 +4256,7 @@ msgstr ""
msgid "verify recipients"
msgstr "Empfänger"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "Enter a valid email address."
msgid "Filter %s already exists"
@@ -4275,24 +4287,28 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "LDAP-Einstellungen"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
#, fuzzy
#| msgid "IP address of your Modoboa server"
msgid "Address of your IMAP server"
msgstr "IP-Adresse Ihres Modoboa-Servers"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4398,36 +4414,32 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "Abgewiesene Nachrichten"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4639,16 +4651,188 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "LDAP-Einstellungen"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "IP address of your Modoboa server"
+msgid "Address of your SMTP server"
+msgstr "IP-Adresse Ihres Modoboa-Servers"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Verwende eine gesicherte Verbindung"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "IP address of your Modoboa server"
+msgid "Listening port of your SMTP server"
+msgstr "IP-Adresse Ihres Modoboa-Servers"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Authentifizierungsmethode"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "LDAP authentication settings"
+msgid "Server needs authentication"
+msgstr "LDAP-Authentifizierungseinstellungen"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr ""
+"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
+"wurde"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Anzahl der angezeigten Einträge pro Seite"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Abgewiesene Nachrichten"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Gesendete Nachrichten"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Standardumleitung"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr ""
+"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben "
+"wurde"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "LDAP-Konto konnte nicht erstellt werden: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
+
#, fuzzy
#~| msgid "Authentication method"
#~ msgid "Authentication mechanism"
#~ msgstr "Authentifizierungsmethode"
-#, fuzzy
-#~| msgid "LDAP authentication settings"
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "LDAP-Authentifizierungseinstellungen"
-
#, fuzzy
#~| msgid "Directory to store RRD files"
#~ msgid "Directory non-writable"
diff --git a/modoboa/locale/el_GR/LC_MESSAGES/django.po b/modoboa/locale/el_GR/LC_MESSAGES/django.po
index 16d3e8a2c..04ea89895 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 admin/forms/domain.py:49
#, fuzzy
#| msgid ""
#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
@@ -30,27 +30,27 @@ msgstr ""
"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
"σημαίνει ότι δεν υπάρχει quota. "
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
"σημαίνει ότι δεν υπάρχει quota. "
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr "Δεν υπάρχουν ΜΧ έγραφες για αυτό το domain "
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr "Δεν μπορεί να είναι μεγαλύτερο από το domain quota."
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Η άδεια απορρίφθηκε."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -58,22 +58,22 @@ msgstr "Η άδεια απορρίφθηκε."
msgid "This field is required"
msgstr "Αυτό το πεδίο είναι υποχρεωτικό"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Λίστα διαχειριζόμενων domains (αφορά μόνο μεταπωλητές και διαχειριστές "
"domain)"
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Δεν επιτρέπεται για αυτόν τον ρόλο."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Πρέπει να είναι ίσο με την full_address του γραμματοκιβωτίου"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -82,27 +82,27 @@ msgstr "Πρέπει να είναι ίσο με την full_address του γρ
msgid "This field is required."
msgstr "Αυτό το πεδίο απαιτείτε."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Το τοπικός domain {} δεν υπάρχει"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Λίστα παραληπτών"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
#, 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:574
+#: admin/api/v1/serializers.py:577
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -127,29 +127,29 @@ msgstr "Πρέπει να είναι θετικός ακέραιος"
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Ορίστε τουλάχιστον μια εξουσιοδοτημένη διεύθυνση / δίκτυο"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, fuzzy
#| msgid "A mailbox is required"
msgid "A mailbox is required to create aliases."
msgstr "Απαιτείται γραμματοκιβώτιο"
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -172,26 +172,26 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domains"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Ενεργοποίηση ελέγχου MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Έγκυρα MXς"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -199,11 +199,11 @@ msgstr ""
"Μια λίστα από IP ή δικτυακές διευθύνσεις που κάθε εγράφη MX πρέπει να "
"ταιριάζει. "
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Τα νέα domain πρέπει να χρησιμοποιούν εξουσιοδοτημένους MX(s)"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -211,104 +211,104 @@ msgstr ""
"Αποτροπή δημιουργίας νέου domain, εάν η εγράφη MX χρησιμοποιεί μια από τις"
" είδη ορισμένες διευθύνσεις."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable IPV6 checks"
msgstr "Ενεργοποίση ελέγχου DNS"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable SPF checks"
msgstr "Ενεργοποίση ελέγχου DNS"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
#, 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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DKIM checks"
msgstr "Ενεργοποίηση ελέγχου MX"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
#, 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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DMARC checks"
msgstr "Ενεργοποίηση ελέγχου MX"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable autoconfig checks"
msgstr "Ενεργοποίηση ελέγχου MX"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
#, 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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Ενεργοποίηση ελέγχου DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Έλεγχος κάθε domain κατά κύριους DNSBL πάροχους"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Προκαθορισμένο domain quota"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -316,19 +316,19 @@ msgstr ""
"Προκαθορισμένο quota (σε MB) που εφαρμόζεται στα νέα domains χωρίς "
"προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. "
-#: admin/app_settings.py:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "Προκαθορισμένο domain quota"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -336,11 +336,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Γραμματοκιβώτια"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Χειριστείτε γραμματοκιβώτια στο σύστημα αρχείων"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -348,7 +348,7 @@ msgstr ""
"Μετονομασία και διαγραφή γραμματοκιβωτίων στο σύστημα αρχείων, όταν "
"μετονομάζονται ή διαγράφονται από το Medaboa "
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -367,44 +367,44 @@ msgstr ""
"domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota."
" "
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default mailbox quota"
msgid "Default mailbox sending limit"
msgstr "Προκαθορισμένο quota γραμματοκιβωτίου "
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Αυτόματη αφαίρεση λογαριασμών"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Όταν αφαιρείται ένα γραμματοκιβώτιο, να αφαιρείται και ο σχετικός "
"λογαριασμός"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Αυτόματη δημιουργία domain/γραμματοκιβωτίων"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid ""
"Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Δημιουργία domain και γραμματοκιβωτίου κατά την αυτόματη δημιουργία "
"λογαριασμού"
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Δημιουργία ενός ψευδώνυμου κατά τη μετονομασία ενός γραμματοκιβωτίου"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
"Δημιουργήστε ένα ψευδώνυμο χρησιμοποιώντας την παλιά διεύθυνση όταν "
@@ -416,7 +416,7 @@ msgstr ""
msgid "Directory not found."
msgstr "To domain δεν βρέθηκε."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -429,7 +429,7 @@ msgstr ""
"domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota."
" "
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Διαχείριση"
@@ -614,8 +614,8 @@ msgstr "Τα domains που ο χρήστης διαχειρίζεται"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Γενικά"
@@ -704,7 +704,7 @@ msgstr ""
"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
"σημαίνει ότι δεν υπάρχει quota. "
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "Ψευδώνυμα (alias) domain "
@@ -722,7 +722,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr "Δεν μπορείτε να ορίσετε ένα απεριόριστο quota."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domain"
@@ -833,28 +833,28 @@ msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Επιλέξτε εάν οι κωδικοί που βρίσκονται στο αρχείο δεν είναι κρυπτογραφημένοι"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Η εισαγωγή λογαριασμού απέτυχε (%s): το domain δεν υπάρχει"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Το γραμματοκιβώτιο {} είδη υπάρχει "
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Η εισαγωγή του λογαριασμού (%s) απέτυχε: λάθος τιμή στο quota"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Προώθηση"
@@ -893,8 +893,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -913,16 +912,16 @@ msgstr "Το αντικείμενο υπάρχει ήδη: %s'"
msgid "%d objects imported successfully"
msgstr "%d αντικείμενα εισήχθησαν με επιτυχία"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -933,11 +932,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1061,18 +1060,18 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Λάθος γραμμή"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, fuzzy
#| msgid "No authorized MX record found for domain {}"
msgid "{}: no authorized MX record found for domain"
msgstr "Δεν βρέθηκε εξουσιοδοτημένη εγγραφή MX για το domain {}"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1311,6 +1310,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Ημερομηνία"
@@ -1402,7 +1402,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Όχι"
@@ -1410,7 +1410,7 @@ msgstr "Όχι"
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Ναι"
@@ -1462,7 +1462,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Από"
@@ -1501,7 +1501,7 @@ msgstr "Αυτόματη προώθηση των email σε άλλη διεύθ
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Ενημέρωση"
@@ -1633,7 +1633,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Εισαγωγή"
@@ -1710,11 +1710,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Το ψευδώνυμο διαγράφηκε"
msgstr[1] "Ψευδώνυμο διαγράφηκε"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Έγραφες MX από{}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Περίληψη DNSBL για{}"
@@ -1743,11 +1743,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Ο λογαριασμός διαγράφηκε"
msgstr[1] "Οι λογαριασμοί διαγράφηκαν"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Εισαγωγή των domain"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Εισαγωγή ταυτοτήτων"
@@ -1799,7 +1799,7 @@ msgstr ""
"χρηστών"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Διάφορα"
@@ -1812,8 +1812,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1933,7 +1932,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Μη έγκυρη σύνταξη"
@@ -1945,8 +1944,8 @@ msgstr "Λάθος αριθμός επαναλήψεων "
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1966,33 +1965,40 @@ msgstr ""
msgid "Address book"
msgstr "Διεύθυνση"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Πιστοποίηση"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Τύπος Πιστοποίησης"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Το backend που χρησιμοποιείται για πιστοποίηση"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Σχήμα που θα χρησιμοποιηθεί για την κρυπτογράφηση των κωδικών των "
"λογαριασμών αλληλογραφίας"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Επαναλήψεων"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -2000,66 +2006,66 @@ msgstr ""
"Αριθμός επαναλήψεων (μόνο για sha256crypt και sha512crypt). Μπορεί να είναι "
"από 1000 έως και 999999999"
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Προκαθορισμένος κωδικός"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Προκαθορισμένος κωδικός για αυτόματη δημιουργία λογαριασμών"
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Μήκος τυχαίου κωδικού"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Μήκος των τυχαίων δημιουργημένων κωδικών"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2067,83 +2073,86 @@ msgstr ""
msgid "LDAP settings"
msgstr "Ρυθμίσεις LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Διεύθυνση εξυπηρετητή"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή LDAP"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Πόρτα εξυπηρετητή"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Η TCP πόρτα λειτουργίας του εξυπηρετητή LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Διεύθυνση εξυπηρετητή"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
#, 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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Πόρτα εξυπηρετητή"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
#, 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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "Χρησιμοποιήστε μια ασφαλή σύνδεση"
+msgstr "Χρήση ασφαλής σύνδεσης"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
"Χρησιμοποιήστε μια σύνδεση SSL / STARTTLS για να συνδεθήκατε στον διακομιστή"
" LDAP"
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Ο εξυπηρετητής LDAP είναι Active Directory"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Groups Διαχειριστών"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2151,37 +2160,37 @@ msgstr ""
"Τα μέλη αυτών των LDAP Posix ομάδων χρηστών θα δημιουργηθούν ως διαχειριστές"
" domain. Χρησιμοποιείστε τον χαραχτήρα ';' για να ξεχωρίσετε τις ομάδες."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Τύπος ομάδας"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Τύπος ομάδας LDAP που χρησιμοποιείται με τον κατάλογο σας."
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Base αναζήτησης ομάδων χρηστών"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr "Το Base DN αναζήτησης ομάδων χρηστών"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Το πεδίο του κωδικού"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Το πεδίο αποθήκευσης των κωδικών χρηστών"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Μέθοδος Πιστοποίησης"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Μέθοδος Πιστοποίησης"
@@ -2193,17 +2202,17 @@ msgstr "Αναζήτηση χρήστη και bind"
msgid "Direct bind"
msgstr "Χρήση Bind DN"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Επιλογή μεθόδου πιστοποίησης"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2211,34 +2220,34 @@ msgstr ""
"To distinguished name για το bind στον εξυπηρετητή LDAP. Αφήστε το κενό για "
"anonymous"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Bind κωδικός "
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"Ο κωδικός για το bind στον εξυπηρετητή LDAP (αντιστοιχεί στο 'Bind DN')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "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:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr "Το Base DN αναζήτησης χρηστών"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Φίλτρο αναζήτησης"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2246,11 +2255,11 @@ msgstr ""
"Προαιρετικό φίλτρο (π.χ. '(objectClass=person)'). Για να είναι έγκυρο πρέπει"
" να περικλείεται σε παρενθέσεις."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Πρότυπο για DN χρηστών"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2259,38 +2268,38 @@ msgstr ""
"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν "
"placeholder (π.χ. %(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "Ρυθμίσεις LDAP"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Πρότυπο για DN χρηστών"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -2302,84 +2311,84 @@ msgstr ""
"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν "
"placeholder (π.χ. %(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Το πεδίο του κωδικού"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
#, fuzzy
#| msgid "Enable communication"
msgid "Enable Dovecot LDAP sync"
msgstr "Ενεργοποίηση επικοινωνίας"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Ταμπλό Συντομεύσεων"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Κατά παραγγελία RSS feed"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Κρύβω τις λειτουργίες από τα widget"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Κρύβω τις λειτουργίες από τα widget για τους μεταπωλητές και τους "
"διαχειριστές του τομέα"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Υπενθύμιση "
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Διεύθυνση αποστολέα"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Email διεύθυνση που χρησιμοποιείται για την αποστολή υπενθυμίσεων "
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Δημόσιο API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Ενεργοποίηση επικοινωνίας"
@@ -2387,99 +2396,99 @@ msgstr "Ενεργοποίηση επικοινωνίας"
msgid "Enable communication with Modoboa public API"
msgstr "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Έλεγχος ενημερώσεων"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Αυτόματος έλεγχος διαθέσιμων ενημερώσεων"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Παραλήπτης"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Αποστολή στατιστικών"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Αποστολή στατιστικών στο public API του Motaboa (counters και used "
"extensions)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Όριο απενεργοποιημένων λογαριασμών "
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Όριο απενεργοποιημένων λογαριασμών "
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
msgstr "Όριο (σε ημέρες) για να απενεργοποιηθεί ένας Λογαριασμός."
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Μέγιστο διάστημα ελέγχου ειδοποιήσεων"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Διάστημα μεταξύ των δύο πρώτων ελέγχων ειδοποιήσεων (σε δευτερόλεπτα)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Μέγιστος χρόνος καταγραφής των log"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Μέγιστη διάρκεια σε ημέρες καταγραφής των log"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Εμφανίσεις ανά σελίδα"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Αριθμός εμφανίσεων ανά σελίδα"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Κύριες προκαθορισμένες αναδρομολογήσεις"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"Προκαθορισμένες αναδρομολογήσεις που χρησιμοποιούνται όταν δεν υπάρχουν "
"προκαθορισμένες εφαρμογές"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2643,7 +2652,7 @@ msgstr ""
"Σφάλμα κατά την ενημέρωση του κωδικού: το LDAP module δεν είναι "
"εγκατεστημένο"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "λογαριασμός"
@@ -2657,13 +2666,15 @@ msgstr ""
"Δεν μπορείτε να εισάγετε έναν λογαριασμό με ρόλο μεγαλύτερο από τον δικό σας"
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Ο απλός χρήστης '%s' πρέπει να έχει μια έγκυρη email διεύθυνση"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr ""
"Το όνομα χρήστη και το email δεν μπορεί να είναι διαφορετικά για τον '%s'"
@@ -3070,7 +3081,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Ο χρήστης '{}' αποσυνδέθηκε επιτυχώς"
@@ -3108,11 +3119,12 @@ msgstr "Εργαλεία DMARC"
msgid "Show DMARC report for {}"
msgstr "Εμφάνιση της έκθεσης DMARC του {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Κανένα"
@@ -3252,63 +3264,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3454,9 +3466,10 @@ msgstr "Ρυθμίσεις OfflineIMAP"
msgid "IMAP Migration"
msgstr "Μετάβαση IMAP"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Η σύνδεση στο διακομιστή IMAP απέτυχε:%s"
#: imap_migration/checks.py:12
@@ -3482,11 +3495,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3498,20 +3511,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Δεν έχει ρυθμιστεί η σύνδεση με την βάση δεδομένων %s"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Δεν επιτρέπεται η πρόσβαση: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Δεν επιτρέπεται η πρόσβαση"
@@ -3534,7 +3549,7 @@ msgid "Failed to update password: {}"
msgstr "Αποτυχία ενημέρωσης κωδικού: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Τίτλος"
@@ -3765,7 +3780,7 @@ msgstr ""
"Διαφοροποίηση μεταξύ σκληρών (hard) και μαλακών (soft) απορρίψεων "
"(greylisting)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Στατιστικά"
@@ -3773,67 +3788,67 @@ msgstr "Στατιστικά"
msgid "Failed to locate rrdtool binary."
msgstr "Αδυναμία εύρεσης του εκτελέσουμε rrdtool."
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Μέσος όρος κίνησης (μηνύματα/λεπτό)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "απεσταλμένα μηνύματα"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "ληφθέντα μηνήματα"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "Μηνύματα bounced "
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "απορριφθέντα μηνύματα"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
"Μηνύματα με ιούς \n"
" "
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "Διαφημιστικά μηνύματα"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
"Μηνύματα που είναι greylisted\n"
" "
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Μέσος όρος φυσιολογικού traffic (bytes/min) "
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "Μέγεθος λαμβανόμενου"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "μέγεθος αποστολής"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Κίνηση Mail"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Μέσος όρος δημιουργίας λογαριασμών (λογαριασμοί/ώρα)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Νέοι λογαριασμοί"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Λογαριασμοί"
@@ -3849,41 +3864,41 @@ msgstr "Αναζήτηση ενός domain"
msgid "Apply"
msgstr "Εφαρμογή"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Δεν υπάρχουν διαθέσιμα στατιστικά"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Ημέρα"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Εβδομάδα"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Μήνας"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Έτος"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Προσαρμοσμένο"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Άγνωστο σετ γραφικών"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Άγνωστο σετ γραφικών"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Λάθος προσαρμοσμένη περίοδος"
@@ -4138,13 +4153,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: χρήση ορίου"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4155,41 +4170,41 @@ msgstr "%s: χρήση ορίου"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Αυτή η ημερομηνία έχει παρέλθει"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, fuzzy
#| msgid "Cannot be greater than domain quota"
msgid "Must be greater than start date"
msgstr "Πρέπει να είναι μεγαλύτερη από την ημερομηνία έναρξης"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Χρονικό όριο λήξης αυτόματης απάντησης"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
"Χρονικό όριο λήξης σε δευτερόλεπτα μεταξύ δύο αυτόματων απαντήσεων προς τον "
"ίδιο παραλήπτη"
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Προεπιλεγμένος τίτλος"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
"Προκαθορισμένο θέμα που θα χρησιμοποιείται όταν δημιουργούνται αυτόματες "
"απαντήσεις μηνυμάτων"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4199,29 +4214,29 @@ msgstr ""
"Το macro '%(name)s' αντικαθίσταται από το όνομα του χρήστη. "
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Αυτόματες απαντήσεις"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Έως"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4229,17 +4244,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Λείπω"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Προεπιλεγμένο περιεχόμενο"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4252,14 +4267,14 @@ msgstr ""
"Φιλικά,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
#, fuzzy
#| msgid "Custom message"
msgid "Auto-reply message"
msgstr "Κείμενο αυτόματης απάντησης"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Αυτόματη απάντηση"
@@ -4289,7 +4304,7 @@ msgstr "Ενεργοποίηση/Απενεργοποίηση της αυτόμ
msgid "Define a message to automatically send when you are off"
msgstr "Ορίστε το μήνυμα αυτόματης απάντησης για όταν λείπετε"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Το μήνυμα αυτόματης απάντησης ενημερώθηκε επιτυχώς"
@@ -4319,7 +4334,7 @@ msgstr "Θύρα κεντρικού host"
msgid "verify recipients"
msgstr "επιβεβαίωση παραληπτών"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4352,22 +4367,26 @@ msgid "Use the STARTTLS extension"
msgstr "Χρήση του extension STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
-msgstr "ρύθμισης IMAP"
+msgstr "Ρυθμίσεις IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
-msgstr "Διεύθυνση του διακομιστή IMAP"
+msgstr "Η διεύθυνση του εξυπηρετητή IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr "Χρησιμοποιήστε μια ασφαλή σύνδεση για πρόσβαση στον διακομιστή IMAP"
+msgstr "Χρήση ασφαλής σύνδεσης με τον εξυπηρετητή IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr "Η θύρα που ακούει ο IMAP server σας"
+msgstr "Η πόρτα λειτουργίας του εξυπηρετητή IMAP"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4417,7 +4436,7 @@ msgstr "δεν είναι"
#, fuzzy
#| msgid "Sender address"
msgid "Sender"
-msgstr "Αποστολέας"
+msgstr "Αποστολή"
#: sievefilters/constants.py:26
msgid "Cc"
@@ -4425,7 +4444,7 @@ msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Μέγεθος"
+msgstr ""
#: sievefilters/constants.py:31
#, fuzzy
@@ -4471,35 +4490,31 @@ msgstr "Λειτουργία συντάκτη"
msgid "Select the mode you want the editor to work in"
msgstr "Επιλέξτε τη λειτουργία στην οποία θέλετε να εργάζεται ο συντάκτης"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
-msgstr "Φάκελος σκουπιδιών"
+msgstr "Φάκελος Διαγραμμένων"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
-msgstr "Φάκελος που πηγαίνουν τα σβησμένα μηνύματα"
+msgstr "Ο φάκελος που αποθηκεύονται τα διεγραμμένα μηνύματα"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
-msgstr "Φάκελος απεσταλμένων"
+msgstr "Φάκελος Απεσταλμένων"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr "Φάκελος όπου πηγαίνουν αντίγραφα των απεσταλμένων μηνυμάτων"
+msgstr "Ο φάκελος που αποθηκεύονται τα απεσταλμένα μηνύματα"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
-msgstr "Φάκελος πρόχειρων"
+msgstr "Φάκελος Πρόχειρων"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr "Ο φάκελος που θα πηγαίνουν τα πρόχειρα"
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Αποτυχία κατά την ανάκτηση της οροθετημένης ιεραρχίας"
+msgstr "Ο φάκελος που αποθηκεύονται τα πρόχειρα"
#: sievefilters/lib.py:52
#, fuzzy
@@ -4695,7 +4710,7 @@ msgstr "Υπενθύμιση "
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Πίσω"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4717,14 +4732,190 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Μέγιστο μέγεθος συνημμένου"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Μέγιστο μέγεθος συνημμένου σε bytes (ή KB, MB, GB εάν οριστεί)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Ρυθμίσεις SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Η διεύθυνση του εξυπηρετητή SMTP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Τύπος ασφαλής σύνδεσης"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Χρήση ασφαλής σύνδεσης με τον εξυπηρετητή SMTP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Η πόρτα λειτουργίας του εξυπηρετητή SMTP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Απαιτείται πιστοποίηση"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Ο εξυπηρετητής απαιτεί πιστοποίηση"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Εμφάνιση"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Προεπιλεγμένη λειτουργία εμφάνισης μηνυμάτων"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr ""
+"Η προεπιλεγμένη λειτουργία που χρησιμοποιείται κατά την εμφάνιση ενός "
+"μηνύματος"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Ενεργοποιήσει εμφάνισης συνδέσεων HTML"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Ενεργοποίηση/απενεργοποίηση προβολής HTML συνδέσεων"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Αριθμός email ανά σελίδα"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Ορισμός μέγιστου αριθμού μηνυμάτων ανά σελίδα"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Ρυθμός ανανέωσης εμφάνισης"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Βάθος Φακέλου"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "The width of the folder list container"
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr "Φάκελοι"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Sent folder"
+msgid "Junk folder"
+msgstr "Φάκελος ανεπιθύμητων"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Φάκελος που θα πηγαίνουν τα ανεπιθύμητα "
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Δημιουργία μηνυμάτων"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Προεπιλεγμένος κειμενογράφος"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Ο προεπιλεγμένος κειμενογράφος για την δημιουργία μηνυμάτων"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Κείμενο υπογραφής"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Προεπιλεγμένη υπογραφή χρήστη"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Σφάλμα κατά την αφαίρεση του συνημμένου:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr " Αποτυχία κατά την ανάκτηση της οροθετημένης ιεραρχίας "
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Εισερχόμενα"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Drafts folder"
+msgid "Drafts"
+msgstr "Πρόχειρα"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Ανεπιθύμητα"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Απεσταλμένα"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Σκουπιδοτενεκές"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Το συνημμένο είναι πολύ μεγάλο (όριο: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Μηχανισμός πιστοποίησης"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Επιλεγμένος μηχανισμός πιστοποίησης"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "To domain δεν βρέθηκε."
@@ -4815,9 +5006,6 @@ msgstr ""
#~ msgid "Filter removed"
#~ msgstr "Το φίλτρο αφαιρέθηκε "
-#~ msgid "Failed to remove filter"
-#~ msgstr "Σφάλμα κατά την αφαίρεση του φίλτρου"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Το σετ φίλτρων αποθηκεύτηκε"
diff --git a/modoboa/locale/en/LC_MESSAGES/django.po b/modoboa/locale/en/LC_MESSAGES/django.po
index 7e26949b8..179ba6263 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,31 +17,31 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -49,20 +49,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -71,23 +71,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -110,27 +110,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -151,137 +151,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -289,17 +289,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -310,37 +310,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -348,13 +348,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -520,8 +520,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -599,7 +599,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -617,7 +617,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -724,28 +724,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -782,8 +782,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -801,16 +800,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -821,11 +820,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -941,16 +940,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1173,6 +1172,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1258,7 +1258,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1266,7 +1266,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1316,7 +1316,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1355,7 +1355,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1469,7 +1469,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1542,11 +1542,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1575,11 +1575,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1621,7 +1621,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1634,8 +1634,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1742,7 +1741,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1754,7 +1753,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1770,92 +1769,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1863,107 +1867,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1975,170 +1982,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2146,92 +2153,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2381,7 +2388,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2394,13 +2401,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2773,7 +2778,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2809,11 +2814,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2949,63 +2955,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3137,9 +3143,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3165,11 +3171,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3180,20 +3186,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3216,7 +3220,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3412,7 +3416,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3420,63 +3424,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3492,39 +3496,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3747,11 +3751,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3760,33 +3764,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3794,23 +3798,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3818,15 +3822,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3835,12 +3839,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3868,7 +3872,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3896,7 +3900,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3922,18 +3926,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4021,34 +4029,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4236,3 +4240,148 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/es/LC_MESSAGES/django.po b/modoboa/locale/es/LC_MESSAGES/django.po
index f365c6c0f..0880a4666 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,7 +26,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 admin/forms/domain.py:49
#, fuzzy
#| msgid ""
#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
@@ -36,28 +36,28 @@ msgid ""
msgstr ""
"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Permiso denegado."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -65,22 +65,22 @@ msgstr "Permiso denegado."
msgid "This field is required"
msgstr "Este campo es obligatorio"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "No estás autorizado para esta función."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
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:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -89,27 +89,27 @@ msgstr "Debe ser igual a la dirección completa del buzón"
msgid "This field is required."
msgstr "Este campo es obligatorio."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "El dominio local {} no existe"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Lista de destinatarios"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
#, 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:574
+#: admin/api/v1/serializers.py:577
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -134,29 +134,29 @@ msgstr "Debe ser un entero positivo"
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, 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:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -179,26 +179,26 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Dominios"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Habilitar comprobación MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
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:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "MX Validos"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -206,114 +206,114 @@ 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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, 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
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable SPF checks"
msgstr "Activar comprobación de DNS"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
#, 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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DKIM checks"
msgstr "Habilitar comprobación MX"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
#, 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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DMARC checks"
msgstr "Habilitar comprobación MX"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable autoconfig checks"
msgstr "Habilitar comprobación MX"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
#, 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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Habilitar comprobación DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Compruebe cada dominio con los principales proveedores de DNSBL"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Cuota del dominio por defecto"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -322,19 +322,19 @@ msgstr ""
" no tuvieran un valor especificado. Un valor de 0 significa que no hay "
"cuota."
-#: admin/app_settings.py:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "Cuota del dominio por defecto"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -342,11 +342,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Mailboxes"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Manejar mailboxes en el sistema de fichero"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -354,7 +354,7 @@ msgstr ""
"Renombrar o eliminar mailboxes en el sistema de ficheros cuando sean "
"renombrados o eliminados dentro de Modoboa"
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -372,41 +372,41 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default mailbox quota"
msgid "Default mailbox sending limit"
msgstr "Cuota de mailbox por defecto"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Elminar cuentas automáticamente"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Creación automática de dominio/buzón"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -416,7 +416,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Dominio no encontrado."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -428,7 +428,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administración"
@@ -614,8 +614,8 @@ msgstr "Dominio(s) que el usuario administra"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "General"
@@ -703,7 +703,7 @@ msgid ""
msgstr ""
"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "alias del dominio"
@@ -721,7 +721,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr "No puede definir una cuota ilimitada."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "dominio"
@@ -834,28 +834,28 @@ msgstr ""
"Marque esta opción si las contraseñas que contiene su fichero no están "
"cifradas"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, 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:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "El buzón {} ya existe"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, 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:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Siguiente"
@@ -894,8 +894,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -914,16 +913,16 @@ msgstr "El objeto ya existe: %s"
msgid "%d objects imported successfully"
msgstr "%d objetos importados con éxito"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -934,11 +933,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1062,18 +1061,18 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Línea inválida"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1309,6 +1308,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Fecha"
@@ -1400,7 +1400,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "No "
@@ -1408,7 +1408,7 @@ msgstr "No "
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Sí"
@@ -1460,15 +1460,15 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
-msgstr "Desde"
+msgstr ""
#: admin/templates/admin/domains_log_headers.html:5
#: admin/templates/admin/messages_log_headers.html:5
#: lib/templatetags/lib_tags.py:118
msgid "To"
-msgstr "Hasta"
+msgstr "A"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1501,7 +1501,7 @@ msgstr "Reenvía automáticamente los correos a otra dirección"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Actualizar"
@@ -1640,7 +1640,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importar"
@@ -1717,11 +1717,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias eliminado"
msgstr[1] "Aliases eliminados"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Registros MX de {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Resumen de DNSBL para {}"
@@ -1750,11 +1750,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Cuenta eliminada"
msgstr[1] "Cuentas eliminadas"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importar dominios"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importar identidades"
@@ -1804,7 +1804,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Permitir a este administrador acceso al buzon de los usuarios"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Otros"
@@ -1817,8 +1817,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1936,7 +1935,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Sintaxis inválida"
@@ -1948,8 +1947,8 @@ msgstr "Número de rondas inváldo"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1969,31 +1968,38 @@ msgstr ""
msgid "Address book"
msgstr "Libro de direcciones"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Correo web"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Autenticación"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Tipo de autenticación"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "El sistema usado para autenticación"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Esquema de contraseña por defecto"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para cifrar las contraseñas del mailbox"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Rondas"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -2001,64 +2007,64 @@ 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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Contraseña por defecto"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Contraseña por defecto para cuentas creadas automáticamente."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Longitud de contraseña aleatoria"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Longitud de las contraseñas generadas aleatoriamente."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2066,73 +2072,76 @@ msgstr ""
msgid "LDAP settings"
msgstr "Configuración de LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Dirección del servidor"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Puerto del servidor"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
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:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "Usar una conexión segura"
+msgstr "Usa una conexión segura"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Directorio Activo"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Administrador de grupos"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2140,35 +2149,35 @@ 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:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Tipo de grupo"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "El tipo de LDAP para usar en el directorio"
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Base para la búsqueda de grupos"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atributo de la contraseña"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "El atributo usado para guardar las contraseñas del usuario"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Método de autenticación"
@@ -2180,17 +2189,17 @@ msgstr "Buscar y unir"
msgid "Direct bind"
msgstr "Unión directa"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Elegir el método de autenticación a usar"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Unir a 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2198,35 +2207,35 @@ msgstr ""
"El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació"
" para una unión anónima"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Unir contraseña"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Base para la búsqueda de usuarios"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtro de búsqueda"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2234,11 +2243,11 @@ 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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Plantilla DN del usuario"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2247,115 +2256,115 @@ msgstr ""
"La plantilla usada para contriunr un DN de usuario. Debería contener una "
"cadena reemplazables (p.e. %(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Panel de Control"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Agregación RSS personalizada"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
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"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Ocultar widget de características"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Ocultar el widget de características a revendedores y administradores de "
"dominio"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notificaciones"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Dirección del remitente"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Dirección de email usada para mandar notificaciones"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "API pública"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Establecer comunicación"
@@ -2363,59 +2372,59 @@ msgstr "Establecer comunicación"
msgid "Enable communication with Modoboa public API"
msgstr "Establecer comunicación con la API publica de Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Comprobar nuevas versiones"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Verificar automáticamente si hay una nueva versión disponible"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Destinatario"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Enviar estadísticas"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Límite para cuentas inactivas"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Límite para cuentas inactivas"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2423,40 +2432,40 @@ 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:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Intervalo de tiempo para notificaciones superiores"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo entre dos notificaciones superiores (en segundos)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Máximo tiempo de almacenamiento del log"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
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:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Items por página"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Número de elementos mostrado por página"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Redirección principal por defecto"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"La redirección que será usada cuando ninguna aplicación sea especificada."
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2609,7 +2618,7 @@ msgstr "Email alternativo, puede ser usado para recuperación."
msgid "Failed to update password: LDAP module not installed"
msgstr "Falló al actualizar la contraseña: módulo LDAP no instalado"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "cuenta"
@@ -2622,13 +2631,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "El usuario normal '%s' debe tener una dirección de email válida"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr ""
"Los campos de nombre de usuario y de email no deben ser diferentes para '%s'"
@@ -3023,7 +3034,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Usuario '{}' ha salido con éxito"
@@ -3063,15 +3074,16 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr "Registros MX de {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "Not defined"
msgid "Not resolved"
msgstr "Sin definir"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
-msgstr ""
+msgstr "Nada"
#: dmarc/models.py:11
#, fuzzy
@@ -3219,63 +3231,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3417,9 +3429,10 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Falló la conexión con el servidor IMAP: %s"
#: imap_migration/checks.py:12
@@ -3447,11 +3460,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3463,20 +3476,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Establecer comunicación con la API publica de Modoboa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Conexión a la base de datos %s no configurada"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Permiso denegado: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Permiso denegado"
@@ -3499,7 +3514,7 @@ msgid "Failed to update password: {}"
msgstr "No se ha podido actualizar la contraseña: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Tema"
@@ -3737,7 +3752,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Estadísticas"
@@ -3745,63 +3760,63 @@ msgstr "Estadísticas"
msgid "Failed to locate rrdtool binary."
msgstr "Fallo al localizar el binario rrdtool"
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Media del tráfico (msgs/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "mensajes enviados"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "mensajes recibidos"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "mensajes rebotados"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "mensajes bloqueados"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "mensajes con virus"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "Mensajes Basura"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Media normal del tamaño del tráfico (bytes/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "tamaño recibido"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "tamaño enviado"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Tráfico de correo"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Creación promedio de cuentas (cuentas/hora)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Cuentas nuevos"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Cuentas"
@@ -3817,41 +3832,41 @@ msgstr "Buscar un dominio"
msgid "Apply"
msgstr "Aplicar"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "No hay estadísticas disponibles"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Día"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Semana"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Mes"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Año"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "A medida"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Conjunto gráfico desconocido"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Conjunto gráfico desconocido"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Período elegido erróneo"
@@ -4100,13 +4115,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: límete alcanzado"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4117,39 +4132,39 @@ msgstr "%s: límete alcanzado"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Esta fecha ha pasado"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Tiempo de caducidad de respuestas automáticas"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Asunto por defecto"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
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/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4160,27 +4175,27 @@ msgstr ""
"completo del usuario."
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Contestaciones automáticas"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Hasta"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4191,17 +4206,17 @@ msgstr ""
"serán reemplazados automáticamente por su valor apropiado: "
"%(name)s,%(fromdate)s,%(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Estoy fuera"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Contenido por defecto"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4214,14 +4229,14 @@ msgstr ""
"Saludos cordiales,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Contestación automática"
@@ -4252,7 +4267,7 @@ 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
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "El mensaje de autorespuesta se ha actualizado correctamente."
@@ -4284,7 +4299,7 @@ msgstr "objetivo"
msgid "verify recipients"
msgstr "Destinatarios"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4313,22 +4328,26 @@ msgid "Use the STARTTLS extension"
msgstr "Usar la extensión STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "Configuración de IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr "Dirección de su servidor IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
msgstr "Usar una conexión segura para acceder al servidor IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr "Puerto de su servidor IMAP"
@@ -4380,7 +4399,7 @@ msgstr "no es"
#, fuzzy
#| msgid "Sender address"
msgid "Sender"
-msgstr "Remitente"
+msgstr "Enviar"
#: sievefilters/constants.py:26
msgid "Cc"
@@ -4388,7 +4407,7 @@ msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Tamaño"
+msgstr ""
#: sievefilters/constants.py:31
#, fuzzy
@@ -4434,42 +4453,38 @@ msgstr "Modo editor"
msgid "Select the mode you want the editor to work in"
msgstr "Seleccione el modo en el que desea que el editor trabaje"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
msgstr "Carpeta de basura"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "Carpeta dónde van los mensajes eliminados"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
msgstr "Carpeta de enviados"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr "Carpeta dónde van las copias de los correos enviados"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
msgstr "Carpeta de borradores"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr "Carpeta dónde van los borradores"
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Fallo al recuperar el delimitador jerárquico"
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4660,7 +4675,7 @@ msgstr ""
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Anterior"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4684,14 +4699,188 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Máximo tamaño de los adjuntos"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Tamaño máximo del adjunto en bytes (or KB, MB, GB si se especifica)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Configuración de SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Dirección de su servidor SMTP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Modo de conexión seguro"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Usar una conexión segura para acceder al servidor SMTP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Puerto de su servidor SMTP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Autenticación obligatoria"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "El servidor requiere autenticación"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr "Mostrar"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Modo por defecto para mostrar un mensaje"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Modo por defecto usado cuando se muestra un mensaje"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Activar el mostrar enlaces de HTML"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Activar/Desactivar el mostrar enlaces HTML"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Número de emails mostrados por página"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Fija el número máximo de mensajes mostrados en una página"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Tasa de refresco"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Propietario de los mailboxes"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "Carpeta de enviados"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Carpeta dónde van los mensajes eliminados"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Composición de mensajes"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Editor por defecto"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Editor por defecto para usar cuando redacta un mensaje"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Texto de la firma"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Firma de correo definida por el usuario"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Fallo al eliminar el adjunto:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Fallo al recuperar el delimitador jerárquico"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "Carpeta de borradores"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "EL adjunto es demasiado grande (límite: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Mecanismos de autenticación"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Mecanismo de autenticación preferido"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Dominio no encontrado."
@@ -4784,9 +4973,6 @@ msgstr ""
#~ msgid "Filter removed"
#~ msgstr "Filtro eliminado"
-#~ msgid "Failed to remove filter"
-#~ msgstr "La eliminación del filtro falló"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Filtros guardados"
diff --git a/modoboa/locale/es_MX/LC_MESSAGES/django.po b/modoboa/locale/es_MX/LC_MESSAGES/django.po
new file mode 100644
index 000000000..f3973a22d
--- /dev/null
+++ b/modoboa/locale/es_MX/LC_MESSAGES/django.po
@@ -0,0 +1,4388 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \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:41 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:48
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
+msgid "No authorized MX record found for this domain"
+msgstr ""
+
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
+msgid "Cannot be greater than domain quota"
+msgstr ""
+
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
+msgid "Permission denied."
+msgstr ""
+
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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: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:234
+msgid ""
+"List of administered domains (resellers and domain administrators only)."
+msgstr ""
+
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
+msgid "Not allowed for this role."
+msgstr ""
+
+#: admin/api/v1/serializers.py:376
+msgid "Must be equal to mailbox full_address"
+msgstr ""
+
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
+#: 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 calendars/serializers.py:175
+#: calendars/serializers.py:177 core/forms.py:92 core/forms.py:95
+#: core/forms.py:97
+msgid "This field is required."
+msgstr ""
+
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
+msgid "Local domain {} does not exist"
+msgstr ""
+
+#: admin/api/v1/serializers.py:516
+msgid "A list of recipient"
+msgstr ""
+
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
+msgid "This alias already exists"
+msgstr ""
+
+#: admin/api/v1/serializers.py:568
+msgid "You don't have access to this domain."
+msgstr ""
+
+#: admin/api/v1/serializers.py:577
+msgid "You don't have access to this mailbox."
+msgstr ""
+
+#: admin/api/v1/viewsets.py:183
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/api/v2/serializers.py:103 admin/forms/domain.py:320
+#, python-format
+msgid "User '%s' already exists"
+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 ""
+
+#: admin/api/v2/serializers.py:234 admin/app_settings.py:248
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
+msgid "This field only allows valid IP addresses (or networks)"
+msgstr ""
+
+#: admin/api/v2/serializers.py:259
+msgid "Please disable imap migration before disabling this option."
+msgstr ""
+
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
+msgid "Define at least one authorized network / address"
+msgstr ""
+
+#: admin/api/v2/serializers.py:509
+msgid "The left part of an email address can't be more than 64 characters."
+msgstr ""
+
+#: admin/api/v2/serializers.py:531
+msgid "A mailbox is required to create aliases."
+msgstr ""
+
+#: admin/api/v2/serializers.py:694
+msgid "Unknown status"
+msgstr ""
+
+#: 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:87 admin/views/domain.py:248
+msgid "You can't delete your own domain"
+msgstr ""
+
+#: admin/api/v2/viewsets.py:392
+msgid "No alarm ID provided"
+msgstr ""
+
+#: admin/api/v2/viewsets.py:396
+msgid "Received invalid alarm id(s)"
+msgstr ""
+
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
+#: 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 ""
+
+#: admin/app_settings.py:26 admin/app_settings.py:293
+msgid "Enable MX checks"
+msgstr ""
+
+#: admin/app_settings.py:28 admin/app_settings.py:295
+msgid "Check that every domain has a valid MX record"
+msgstr ""
+
+#: admin/app_settings.py:32 admin/app_settings.py:302
+msgid "Valid MXs"
+msgstr ""
+
+#: admin/app_settings.py:35 admin/app_settings.py:305
+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:43 admin/app_settings.py:315
+msgid "New domains must use authorized MX(s)"
+msgstr ""
+
+#: admin/app_settings.py:46 admin/app_settings.py:319
+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:52 admin/app_settings.py:327
+msgid "Enable IPV6 checks"
+msgstr ""
+
+#: admin/app_settings.py:54 admin/app_settings.py:330
+msgid "Check if MX setup for ipv6 is valid"
+msgstr ""
+
+#: admin/app_settings.py:58 admin/app_settings.py:337
+msgid "Enable SPF checks"
+msgstr ""
+
+#: admin/app_settings.py:60 admin/app_settings.py:339
+msgid "Check if every domain has a valid SPF record"
+msgstr ""
+
+#: admin/app_settings.py:64 admin/app_settings.py:346
+msgid "Enable DKIM checks"
+msgstr ""
+
+#: admin/app_settings.py:67 admin/app_settings.py:348
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+
+#: admin/app_settings.py:72 admin/app_settings.py:356
+msgid "Enable DMARC checks"
+msgstr ""
+
+#: admin/app_settings.py:74 admin/app_settings.py:358
+msgid "Check if every domain has a valid DMARC record"
+msgstr ""
+
+#: admin/app_settings.py:78 admin/app_settings.py:365
+msgid "Enable autoconfig checks"
+msgstr ""
+
+#: admin/app_settings.py:81 admin/app_settings.py:367
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+
+#: admin/app_settings.py:86 admin/app_settings.py:375
+msgid "Enable DNSBL checks"
+msgstr ""
+
+#: admin/app_settings.py:88 admin/app_settings.py:377
+msgid "Check every domain against major DNSBL providers"
+msgstr ""
+
+#: admin/app_settings.py:92 admin/app_settings.py:384
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:96 admin/app_settings.py:386
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:101 admin/app_settings.py:394
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:104 admin/app_settings.py:396
+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:112 admin/app_settings.py:405
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:115 admin/app_settings.py:407
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:119 admin/app_settings.py:414
+msgid "Default domain quota"
+msgstr ""
+
+#: admin/app_settings.py:122 admin/app_settings.py:416
+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:128 admin/app_settings.py:424
+msgid "Default domain sending limit"
+msgstr ""
+
+#: admin/app_settings.py:131 admin/app_settings.py:426
+msgid ""
+"Number of messages freshly created domains will be allowed to send per day. "
+"Leave empty for no limit."
+msgstr ""
+
+#: admin/app_settings.py:136 admin/app_settings.py:438
+#: 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
+#: sievefilters/forms.py:69
+msgid "Mailboxes"
+msgstr ""
+
+#: admin/app_settings.py:139 admin/app_settings.py:444
+msgid "Handle mailboxes on filesystem"
+msgstr ""
+
+#: admin/app_settings.py:142 admin/app_settings.py:446
+msgid ""
+"Rename or remove mailboxes on the filesystem when they get renamed or "
+"removed within Modoboa"
+msgstr ""
+
+#: admin/app_settings.py:148 admin/app_settings.py:454 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:151
+msgid ""
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
+"value specified. A value of 0 means no quota."
+msgstr ""
+
+#: admin/app_settings.py:157 admin/app_settings.py:465
+msgid "Default mailbox sending limit"
+msgstr ""
+
+#: admin/app_settings.py:160 admin/app_settings.py:467
+msgid ""
+"Number of messages freshly created mailboxes will be allowed to send per "
+"day. Leave empty for no limit."
+msgstr ""
+
+#: admin/app_settings.py:166 admin/app_settings.py:475
+msgid "Automatic account removal"
+msgstr ""
+
+#: admin/app_settings.py:169 admin/app_settings.py:477
+msgid "When a mailbox is removed, also remove the associated account"
+msgstr ""
+
+#: admin/app_settings.py:174 admin/app_settings.py:486
+msgid "Automatic domain/mailbox creation"
+msgstr ""
+
+#: admin/app_settings.py:177 admin/app_settings.py:489
+msgid "Create a domain and a mailbox when an account is automatically created."
+msgstr ""
+
+#: admin/app_settings.py:182 admin/app_settings.py:498
+msgid "Create an alias when a mailbox is renamed"
+msgstr ""
+
+#: admin/app_settings.py:185 admin/app_settings.py:501
+msgid "Create an alias using the old address when a mailbox is renamed."
+msgstr ""
+
+#: admin/app_settings.py:244 pdfcredentials/api/v2/serializers.py:59
+msgid "Directory not found."
+msgstr ""
+
+#: admin/app_settings.py:456
+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:520 admin/app_settings.py:525
+#: core/api/v2/viewsets.py:148
+msgid "Administration"
+msgstr ""
+
+#: admin/constants.py:21 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:22
+msgid "Relay domain"
+msgstr ""
+
+#: admin/constants.py:38
+msgid "Opened"
+msgstr ""
+
+#: admin/constants.py:39
+msgid "Closed"
+msgstr ""
+
+#: admin/forms/account.py:29 admin/templates/admin/domain_detail.html:159
+#: pdfcredentials/documents.py:98
+msgid "Username"
+msgstr ""
+
+#: 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:36 admin/templates/admin/account_detail.html:29
+#: core/templates/core/information.html:60
+msgid "Role"
+msgstr ""
+
+#: admin/forms/account.py:37
+msgid "Choose"
+msgstr ""
+
+#: admin/forms/account.py:38
+msgid "What level of permission this user will have"
+msgstr ""
+
+#: admin/forms/account.py:41 admin/forms/domain.py:262
+msgid "Random password"
+msgstr ""
+
+#: 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:49 pdfcredentials/documents.py:99
+msgid "Password"
+msgstr ""
+
+#: admin/forms/account.py:55 core/forms.py:36
+msgid "Confirmation"
+msgstr ""
+
+#: admin/forms/account.py:57
+msgid "Enter the same password as above, for verification."
+msgstr ""
+
+#: admin/forms/account.py:71
+msgid "Enabled"
+msgstr ""
+
+#: admin/forms/account.py:175
+msgid "Only super administrators are allowed for this mode"
+msgstr ""
+
+#: admin/forms/account.py:193
+msgid "The two password fields didn't match."
+msgstr ""
+
+#: admin/forms/account.py:206
+msgid "You can't disable your own account"
+msgstr ""
+
+#: admin/forms/account.py:234
+msgid "E-mail"
+msgstr ""
+
+#: admin/forms/account.py:236
+msgid "Create an alias using the old address"
+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 ""
+
+#: 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: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:257 admin/models/mailbox.py:95
+msgid "Number of messages this mailbox can send per day"
+msgstr ""
+
+#: 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: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:275
+msgid "Sender addresses"
+msgstr ""
+
+#: 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:339 admin/forms/alias.py:95
+#: admin/models/mailbox.py:308
+msgid "Domain does not exist"
+msgstr ""
+
+#: admin/forms/account.py:376
+msgid "Local domain does not exist"
+msgstr ""
+
+#: admin/forms/account.py:503
+msgid "Domain(s)"
+msgstr ""
+
+#: admin/forms/account.py:505
+msgid "Domain(s) that user administrates"
+msgstr ""
+
+#: 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/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
+msgid "General"
+msgstr ""
+
+#: 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:566 admin/forms/account.py:659
+msgid "Mail"
+msgstr ""
+
+#: admin/forms/account.py:573
+msgid "Permissions"
+msgstr ""
+
+#: admin/forms/account.py:642
+msgid "Account updated"
+msgstr ""
+
+#: admin/forms/account.py:668
+msgid "New account"
+msgstr ""
+
+#: admin/forms/account.py:679
+msgid "Account created"
+msgstr ""
+
+#: admin/forms/alias.py:20
+msgid "Random address"
+msgstr ""
+
+#: admin/forms/alias.py:23
+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)."
+msgstr ""
+
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
+msgid "Recipients"
+msgstr ""
+
+#: 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:119
+msgid "No recipient defined"
+msgstr ""
+
+#: admin/forms/domain.py:32
+#: admin/templates/admin/_global_statistics_widget.html:7
+msgid "Type"
+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 ""
+
+#: admin/forms/domain.py:43
+msgid "Key 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 ""
+
+#: admin/forms/domain.py:106 admin/handlers.py:181
+msgid "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 ""
+
+#: admin/forms/domain.py:130
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:166
+msgid "You can't define an unlimited quota."
+msgstr ""
+
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
+msgid "domain"
+msgstr ""
+
+#: admin/forms/domain.py:246
+msgid "Create a domain administrator"
+msgstr ""
+
+#: admin/forms/domain.py:248
+msgid "Automatically create an administrator for this domain"
+msgstr ""
+
+#: 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
+#: core/templates/core/information.html:37
+#: core/templates/core/information.html:59
+msgid "Name"
+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:264
+msgid "Generate a random password for the administrator."
+msgstr ""
+
+#: admin/forms/domain.py:269
+msgid "With a mailbox"
+msgstr ""
+
+#: admin/forms/domain.py:271
+msgid "Create a mailbox for the administrator."
+msgstr ""
+
+#: admin/forms/domain.py:276
+msgid "Create aliases"
+msgstr ""
+
+#: admin/forms/domain.py:278
+msgid "Automatically create standard aliases for this domain"
+msgstr ""
+
+#: admin/forms/domain.py:294
+msgid "Invalid format"
+msgstr ""
+
+#: admin/forms/domain.py:433
+msgid "Domain modified"
+msgstr ""
+
+#: admin/forms/domain.py:458
+msgid "Options"
+msgstr ""
+
+#: admin/forms/domain.py:467
+msgid "New domain"
+msgstr ""
+
+#: admin/forms/domain.py:481
+msgid "Domain created"
+msgstr ""
+
+#: admin/forms/export.py:9 admin/forms/import_.py:12
+msgid "Separator"
+msgstr ""
+
+#: admin/forms/forward.py:12
+msgid "Recipient(s)"
+msgstr ""
+
+#: admin/forms/forward.py:15
+msgid "Indicate one or more recipients separated by a ','"
+msgstr ""
+
+#: admin/forms/forward.py:18
+msgid "Keep local copies"
+msgstr ""
+
+#: admin/forms/forward.py:21
+msgid "Forward messages and store copies into your local mailbox"
+msgstr ""
+
+#: admin/forms/import_.py:10
+msgid "Select a file"
+msgstr ""
+
+#: admin/forms/import_.py:18
+msgid "Continue on error"
+msgstr ""
+
+#: admin/forms/import_.py:20
+msgid "Don't treat duplicated objects as error"
+msgstr ""
+
+#: 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 ""
+
+#: admin/handlers.py:229
+#, python-format
+msgid "Account import failed (%s): domain does not exist"
+msgstr ""
+
+#: admin/handlers.py:244 admin/models/mailbox.py:340
+msgid "Mailbox {} already exists"
+msgstr ""
+
+#: admin/handlers.py:253
+#, python-format
+msgid "Account import failed (%s): wrong quota value"
+msgstr ""
+
+#: admin/handlers.py:294
+#: 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:312 admin/templates/admin/forward.html:2
+msgid "Forward"
+msgstr ""
+
+#: admin/lib.py:47
+msgid "A mailbox is required"
+msgstr ""
+
+#: admin/lib.py:141
+msgid "You are not allowed to import domains"
+msgstr ""
+
+#: admin/lib.py:150
+msgid "You are not allowed to import domain aliases."
+msgstr ""
+
+#: admin/lib.py:242 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:245
+#, python-format
+msgid "No %(type)s record for %(name)s"
+msgstr ""
+
+#: admin/lib.py:249 admin/tests/test_mx.py:157
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:252 admin/tests/test_mx.py:161
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:256
+msgid "DNS name is too long: {}"
+msgstr ""
+
+#: admin/lib.py:287
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr ""
+
+#: admin/lib.py:360
+#, python-format
+msgid "Object already exists: %s"
+msgstr ""
+
+#: admin/lib.py:364
+#, python-format
+msgid "%d objects imported successfully"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:97
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:112
+#, python-format
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:123
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:29
+msgid ""
+"DKIM path non-writable (either a permission issue or the directory does not "
+"exist)"
+msgstr ""
+
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
+msgid "Failed to generate DKIM private key"
+msgstr ""
+
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
+msgid "Failed to generate DKIM public key"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:133
+msgid "MX {} listed by DNSBL provider {}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:174
+msgid "Domain has no MX record"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:177
+msgid "Domain {} has no MX record"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:195
+msgid "Invalid MX record: {}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:202
+#, python-brace-format
+msgid "MX record for domain {0} is invalid: {1}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:213
+msgid "[modoboa] MX issue(s) for domain {}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:269
+msgid "[modoboa] DNSBL issue(s) for domain {}"
+msgstr ""
+
+#: admin/models/alias.py:36
+msgid "Domain not found."
+msgstr ""
+
+#: admin/models/alias.py:91 admin/models/mailbox.py:85
+msgid "address"
+msgstr ""
+
+#: admin/models/alias.py:93
+msgid "The alias address."
+msgstr ""
+
+#: 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:98 admin/models/domain_alias.py:46
+msgid "Check to activate this alias"
+msgstr ""
+
+#: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32
+#: core/templates/core/information.html:40
+msgid "Description"
+msgstr ""
+
+#: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29
+msgid "Expire at"
+msgstr ""
+
+#: admin/models/alias.py:144
+msgid "alias"
+msgstr ""
+
+#: admin/models/alias.py:177
+msgid "Invalid address"
+msgstr ""
+
+#: admin/models/alias.py:196
+msgid "Local recipient {}@{} not found"
+msgstr ""
+
+#: admin/models/alias.py:245
+msgid "Invalid line: {}"
+msgstr ""
+
+#: admin/models/domain.py:27 admin/models/domain_alias.py:33
+msgid "name"
+msgstr ""
+
+#: admin/models/domain.py:30
+msgid "The domain name"
+msgstr ""
+
+#: admin/models/domain.py:42
+msgid "Number of messages this domain can send per day"
+msgstr ""
+
+#: admin/models/domain.py:46
+msgid "Check to activate this domain"
+msgstr ""
+
+#: admin/models/domain.py:51
+msgid "Enable DNS checks"
+msgstr ""
+
+#: admin/models/domain.py:53
+msgid "Check to enable DNS checks for this domain"
+msgstr ""
+
+#: admin/models/domain.py:61
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: 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:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
+#: core/models.py:353 relaydomains/lib.py:13
+msgid "Invalid line"
+msgstr ""
+
+#: admin/models/domain.py:376
+msgid "{}: no authorized MX record found for domain"
+msgstr ""
+
+#: admin/models/domain.py:382
+msgid "{}: invalid quota value for domain"
+msgstr ""
+
+#: admin/models/domain.py:388
+msgid "{}: invalid default mailbox quota value for domain"
+msgstr ""
+
+#: admin/models/domain.py:395
+msgid "{}: default mailbox quota cannot be greater than domain quota"
+msgstr ""
+
+#: admin/models/domain_alias.py:36
+msgid "The alias name"
+msgstr ""
+
+#: admin/models/domain_alias.py:40
+msgid "target"
+msgstr ""
+
+#: admin/models/domain_alias.py:41
+msgid "The domain this alias points to"
+msgstr ""
+
+#: admin/models/domain_alias.py:79
+#, python-format
+msgid "Unknown domain %s"
+msgstr ""
+
+#: admin/models/mailbox.py:87
+msgid "Mailbox address (without the @domain.tld part)"
+msgstr ""
+
+#: admin/models/mailbox.py:153
+#, python-format
+msgid "Failed to retrieve mailbox location (%s)"
+msgstr ""
+
+#: admin/models/mailbox.py:249
+msgid "A quota is required"
+msgstr ""
+
+#: admin/models/mailbox.py:256
+msgid "{}: domain quota exceeded"
+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
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+msgid "Raw format. Click to copy"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+msgid "Bind/named format. Click to copy"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
+msgctxt "checks"
+msgid "Disabled"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:6
+msgid "Awaiting checks"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+msgid "No record found"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
+#: admin/templates/admin/_global_statistics_widget.html:4
+msgid "Global statistics"
+msgstr ""
+
+#: admin/templates/admin/_global_statistics_widget.html:8
+msgid "Quantity"
+msgstr ""
+
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html: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 ""
+
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
+msgid "Per-domain statistics"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
+msgid "(disabled)"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
+msgid "Summary"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:26
+msgid "Full name"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
+msgid "Created"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:35
+#: core/templates/core/information.html:61
+msgid "Last login"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:38 core/models.py:87
+msgid "Secondary email"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
+msgid "Not defined"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:41 core/models.py:85
+msgid "Phone number"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:61
+msgid "Administered domains"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:67
+msgid "No domain defined."
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:81
+msgid "Aliases"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:87
+msgid "No alias defined"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:93
+msgid "Additional sender addresses"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:99
+msgid "No sender address defined"
+msgstr ""
+
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
+msgid "Domain is disabled"
+msgstr ""
+
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
+msgid "Alias"
+msgstr ""
+
+#: admin/templates/admin/alias_detail.html:27
+msgid "Modified"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:10
+msgid "Provider"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
+msgid "Address"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:114
+#: admin/templates/admin/domains_log_headers.html:6
+#: admin/templates/admin/messages_log_headers.html:6
+msgid "Status"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:21
+msgid "listed"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:29
+msgid "Everything is fine, this domain is not listed."
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:32
+msgid "No information available for this domain."
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:19
+msgid "Opened alarms for"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:25
+#: admin/templates/admin/domains_log_headers.html:3
+#: admin/templates/admin/messages_log_headers.html:3
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:119
+#: webmail/lib/imapemail.py:306
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:26 core/templates/core/logs.html:9
+msgid "Message"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:27
+msgid "Mailbox"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:40
+msgid "No opened alarm"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:29
+msgid "Creation date"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:33
+msgid "Last modification date"
+msgstr ""
+
+#: 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 ""
+
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/newdomainform.html:3
+msgid "MB"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:54
+#: admin/templates/admin/domain_detail.html:73
+msgid "Usage"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
+msgctxt "quota"
+msgid "used"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
+msgid "allocated"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:70
+msgid "per day"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:76
+msgctxt "message count"
+msgid "used"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:106
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:121
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:125
+msgid "Show key"
+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?"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
+#: lib/form_utils.py:399
+msgid "No"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:143
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
+msgid "Yes"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:149
+msgid "Not generated"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:156
+msgid "Administrators"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:168
+#: admin/templatetags/admin_tags.py:306
+msgid "Remove this permission"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:173
+msgid "No domain administrator defined yet."
+msgstr ""
+
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
+msgid "Tags"
+msgstr ""
+
+#: admin/templates/admin/domain_headers.html:7
+msgid "DNS status"
+msgstr ""
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
+msgid "Actions"
+msgstr ""
+
+#: admin/templates/admin/domain_options_form.html:10
+msgid "You can't create a new domain administrator"
+msgstr ""
+
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
+msgid "Add"
+msgstr ""
+
+#: admin/templates/admin/domains_log_headers.html:2
+msgid "Queue ID"
+msgstr ""
+
+#: 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:18
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/domains_log_headers.html:5
+#: admin/templates/admin/messages_log_headers.html:5
+#: lib/templatetags/lib_tags.py:118
+msgid "To"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
+msgid "Limit"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:4
+msgid "Used"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:5
+msgid "Allocated"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
+#, python-format
+msgid "Usage (%%)"
+msgstr ""
+
+#: admin/templates/admin/domains_table.html:5
+msgid "disabled"
+msgstr ""
+
+#: admin/templates/admin/forward.html:2
+msgid "Automatically forward emails to another address"
+msgstr ""
+
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:84
+#: core/templates/core/api_access.html:35
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
+#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
+msgid "Update"
+msgstr ""
+
+#: admin/templates/admin/identities.html:32
+msgid "Account"
+msgstr ""
+
+#: admin/templates/admin/identities_quota_headers.html:3
+msgid "Value"
+msgstr ""
+
+#: admin/templates/admin/identity_headers.html:3
+msgid "Fullname/Recipient"
+msgstr ""
+
+#: admin/templates/admin/import_domains_form.html:6
+msgid ""
+"Provide a CSV file where lines respect one of the following formats: "
+"- domain; name; quota; default mailbox quota; enabled
"
+"- domainalias; name; targeted domain; enabled
"
+"- relaydomain; name; target host; target port; service; enabled; "
+"verify recipients
The first element of each line is "
+"mandatory and must be equal to one of the previous values.
You can "
+"use a different character as separator.
"
+msgstr ""
+
+#: admin/templates/admin/import_identities_form.html:6
+msgid ""
+"Provide a CSV file where lines respect one of the following formats: "
+"- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
+"recipient; recipient; ...
The first element of each line "
+"is mandatory and must be equal to one of the previous values.
You can "
+"use a different character as separator.
"
+msgstr ""
+
+#: admin/templates/admin/importform.html:6
+msgid "Help"
+msgstr ""
+
+#: admin/templates/admin/importform.html:13
+msgid "Importing..."
+msgstr ""
+
+#: admin/templates/admin/mailboxes_raw.html:3
+msgid "Choose a value"
+msgstr ""
+
+#: admin/templates/admin/mailform.html:7
+msgid "Use domain default value"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/mx_domain_detail.html:11
+msgid "Updated"
+msgstr ""
+
+#: admin/templates/admin/mx_domain_detail.html:23
+msgid "This IP does not match any of the valid MXs defined in parameters"
+msgstr ""
+
+#: admin/templates/admin/mx_domain_detail.html:36
+msgid "No MX record found for this domain."
+msgstr ""
+
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
+#, python-format
+msgid ""
+"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
+"providers:"
+msgstr ""
+
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
+msgid ""
+"The domain's reputation will be affected and there is a chance that emails "
+"coming from it are considered as spam. You should contact those providers "
+"and ask them to unlist detected IP address(es)."
+msgstr ""
+
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
+#, python-format
+msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
+msgstr ""
+
+#: admin/templates/admin/searchform.html:6
+msgid "Search"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:18
+msgid "enabled_m"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:18
+msgid "enabled_f"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:46
+msgid "List domains"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:123
+msgid "List quotas"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:60
+msgid "Message logs"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
+#: admin/views/import_.py:50 admin/views/import_.py:71
+msgid "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 ""
+
+#: admin/templatetags/admin_tags.py:116
+msgid "List identities"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:157
+msgid "View the domain's identities"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:166
+msgid "View domain's alarms"
+msgstr ""
+
+#: 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:186 admin/templatetags/admin_tags.py:224
+#: admin/templatetags/admin_tags.py:241
+#, python-format
+msgid "Delete %s?"
+msgstr ""
+
+#: admin/tests/test_mx.py:156
+#, python-format
+msgid "No MX record for %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 ""
+
+#: 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:52
+msgid "Create"
+msgstr ""
+
+#: admin/views/alias.py:64
+msgid "New alias"
+msgstr ""
+
+#: admin/views/alias.py:64
+msgid "Alias created"
+msgstr ""
+
+#: admin/views/alias.py:76
+msgid "Alias modified"
+msgstr ""
+
+#: admin/views/alias.py:101
+msgid "Alias deleted"
+msgid_plural "Aliases deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: admin/views/dns.py:24
+msgid "MX records of {}"
+msgstr ""
+
+#: admin/views/dns.py:42
+msgid "DNSBL summary for {}"
+msgstr ""
+
+#: admin/views/domain.py:251
+msgid "Domain deleted"
+msgid_plural "Domains deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: admin/views/export.py:40
+msgid "Export identities"
+msgstr ""
+
+#: admin/views/export.py:69
+msgid "Export domains"
+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
+msgid "Invalid request"
+msgstr ""
+
+#: admin/views/identity.py:187
+msgid "Account deleted"
+msgid_plural "Accounts deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: admin/views/import_.py:49
+msgid "Import domains"
+msgstr ""
+
+#: admin/views/import_.py:70
+msgid "Import identities"
+msgstr ""
+
+#: admin/views/user.py:51
+msgid "Forward updated"
+msgstr ""
+
+#: calendars/app_settings.py:11
+msgid "Server settings"
+msgstr ""
+
+#: calendars/app_settings.py:17
+msgid "Server URL"
+msgstr ""
+
+#: calendars/app_settings.py:19
+msgid ""
+"The URL of your Radicale server. It will be used to construct calendar URLs."
+msgstr ""
+
+#: calendars/app_settings.py:31
+msgid "Rights management"
+msgstr ""
+
+#: calendars/app_settings.py:37
+msgid "Rights file's path"
+msgstr ""
+
+#: calendars/app_settings.py:39
+msgid "Path to the file that contains rights definition"
+msgstr ""
+
+#: calendars/app_settings.py:46
+msgid "Allow calendars administration"
+msgstr ""
+
+#: calendars/app_settings.py:48
+msgid "Allow domain administrators to manage user calendars (read and write)"
+msgstr ""
+
+#: calendars/app_settings.py:60 core/app_settings.py:438
+#: core/app_settings.py:1255
+msgid "Miscellaneous"
+msgstr ""
+
+#: calendars/app_settings.py:66
+msgid "Maximum size of ICS files"
+msgstr ""
+
+#: calendars/app_settings.py:68
+msgid ""
+"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
+msgstr ""
+
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
+msgid "Calendars"
+msgstr ""
+
+#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
+msgid "Server location is not set, please fix it."
+msgstr ""
+
+#: calendars/viewsets.py:197
+msgid "Uploaded file is too big (max: {} bytes)"
+msgstr ""
+
+#: contacts/app_settings.py:11
+msgid "Synchronization"
+msgstr ""
+
+#: contacts/app_settings.py:18
+msgid "Synchonize address book using CardDAV"
+msgstr ""
+
+#: contacts/app_settings.py:21
+msgid ""
+"Choose to synchronize or not your address book using CardDAV. You will be "
+"able to access your contacts from the outside."
+msgstr ""
+
+#: contacts/app_settings.py:29
+msgid "Synchronization frequency"
+msgstr ""
+
+#: contacts/app_settings.py:31
+msgid "Interval in seconds between 2 synchronization requests"
+msgstr ""
+
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
+#: core/api/v2/viewsets.py:164
+msgid "Contacts"
+msgstr ""
+
+#: contacts/constants.py:6 contacts/constants.py:12
+msgid "Home"
+msgstr ""
+
+#: contacts/constants.py:7 contacts/constants.py:13
+msgid "Work"
+msgstr ""
+
+#: contacts/constants.py:8 contacts/constants.py:14
+msgid "Other"
+msgstr ""
+
+#: contacts/constants.py:15
+msgid "Main"
+msgstr ""
+
+#: contacts/constants.py:16
+msgid "Cellular"
+msgstr ""
+
+#: contacts/constants.py:17
+msgid "Fax"
+msgstr ""
+
+#: contacts/constants.py:18
+msgid "Pager"
+msgstr ""
+
+#: contacts/serializers.py:101
+msgid "Name or display name required"
+msgstr ""
+
+#: contacts/serializers.py:233
+msgid "Minimum allowed value is 60s"
+msgstr ""
+
+#: core/api/v1/serializers.py:21
+msgid "Invalid PIN code"
+msgstr ""
+
+#: core/api/v1/serializers.py:27
+msgid "2FA is already enabled"
+msgstr ""
+
+#: 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:308
+msgid "Invalid password"
+msgstr ""
+
+#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:83
+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:153
+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:296 core/forms.py:201
+msgid "This code is invalid"
+msgstr ""
+
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
+#: core/api/v2/viewsets.py:150
+msgid "Administration console"
+msgstr ""
+
+#: core/api/v2/viewsets.py:159
+msgid "Calendar"
+msgstr ""
+
+#: core/api/v2/viewsets.py:166
+msgid "Address book"
+msgstr ""
+
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
+msgid "Authentication"
+msgstr ""
+
+#: core/app_settings.py:47 core/app_settings.py:719
+msgid "Authentication type"
+msgstr ""
+
+#: core/app_settings.py:50 core/app_settings.py:721
+msgid "The backend used for authentication"
+msgstr ""
+
+#: core/app_settings.py:55 core/app_settings.py:728
+msgid "Default password scheme"
+msgstr ""
+
+#: core/app_settings.py:58 core/app_settings.py:730
+msgid "Scheme used to crypt mailbox passwords"
+msgstr ""
+
+#: core/app_settings.py:62 core/app_settings.py:737
+msgid "Rounds"
+msgstr ""
+
+#: core/app_settings.py:65 core/app_settings.py:739
+msgid ""
+"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
+"between 1000 and 999999999, inclusive."
+msgstr ""
+
+#: core/app_settings.py:71 core/app_settings.py:749
+msgid "Update password scheme at login"
+msgstr ""
+
+#: core/app_settings.py:74 core/app_settings.py:752
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
+
+#: core/app_settings.py:79 core/app_settings.py:760
+msgid "Default password"
+msgstr ""
+
+#: core/app_settings.py:81 core/app_settings.py:762
+msgid "Default password for automatically created accounts."
+msgstr ""
+
+#: core/app_settings.py:85 core/app_settings.py:769
+msgid "Random password length"
+msgstr ""
+
+#: core/app_settings.py:88 core/app_settings.py:771
+msgid "Length of randomly generated passwords."
+msgstr ""
+
+#: core/app_settings.py:92 core/app_settings.py:778
+msgid "Update password service URL"
+msgstr ""
+
+#: core/app_settings.py:96 core/app_settings.py:780
+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:104 core/app_settings.py:790
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109 core/app_settings.py:792
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:114 core/app_settings.py:801
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:117 core/app_settings.py:804
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:122 core/app_settings.py:812
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:124 core/app_settings.py:815
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:129
+msgid "LDAP settings"
+msgstr ""
+
+#: core/app_settings.py:132 core/app_settings.py:833
+#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
+msgid "Server address"
+msgstr ""
+
+#: core/app_settings.py:134 core/app_settings.py:835
+msgid "The IP address or the DNS name of the LDAP server"
+msgstr ""
+
+#: core/app_settings.py:138 core/app_settings.py:842
+#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
+msgid "Server port"
+msgstr ""
+
+#: core/app_settings.py:140 core/app_settings.py:844
+msgid "The TCP port number used by the LDAP server"
+msgstr ""
+
+#: core/app_settings.py:144 core/app_settings.py:852
+msgid "Enable secondary server (fallback)"
+msgstr ""
+
+#: core/app_settings.py:147 core/app_settings.py:855
+msgid ""
+"Enable a secondary LDAP server which will be used if the primary one fails"
+msgstr ""
+
+#: core/app_settings.py:153 core/app_settings.py:863
+msgid "Secondary server address"
+msgstr ""
+
+#: core/app_settings.py:156 core/app_settings.py:866
+msgid "The IP address or the DNS name of the seondary LDAP server"
+msgstr ""
+
+#: core/app_settings.py:161 core/app_settings.py:873
+msgid "Secondary server port"
+msgstr ""
+
+#: core/app_settings.py:163 core/app_settings.py:876
+msgid "The TCP port number used by the LDAP secondary server"
+msgstr ""
+
+#: core/app_settings.py:167 core/app_settings.py:883
+#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
+msgid "Use a secured connection"
+msgstr ""
+
+#: core/app_settings.py:171 core/app_settings.py:885
+msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgstr ""
+
+#: core/app_settings.py:176 core/app_settings.py:892
+msgid "Active Directory"
+msgstr ""
+
+#: core/app_settings.py:178 core/app_settings.py:894
+msgid "Tell if the LDAP server is an Active Directory one"
+msgstr ""
+
+#: core/app_settings.py:182 core/app_settings.py:901
+msgid "Administrator groups"
+msgstr ""
+
+#: core/app_settings.py:185 core/app_settings.py:903
+msgid ""
+"Members of those LDAP Posix groups will be created as domain administrators. "
+"Use ';' characters to separate groups."
+msgstr ""
+
+#: core/app_settings.py:192 core/app_settings.py:912
+msgid "Group type"
+msgstr ""
+
+#: core/app_settings.py:195 core/app_settings.py:914
+msgid "The LDAP group type to use with your directory."
+msgstr ""
+
+#: core/app_settings.py:199 core/app_settings.py:921
+msgid "Groups search base"
+msgstr ""
+
+#: core/app_settings.py:202 core/app_settings.py:923
+msgid "The distinguished name of the search base used to find groups"
+msgstr ""
+
+#: core/app_settings.py:208 core/app_settings.py:931
+msgid "Password attribute"
+msgstr ""
+
+#: core/app_settings.py:210 core/app_settings.py:933
+msgid "The attribute used to store user passwords"
+msgstr ""
+
+#: core/app_settings.py:214 core/app_settings.py:940
+msgid "LDAP authentication settings"
+msgstr ""
+
+#: core/app_settings.py:217 core/app_settings.py:948
+msgid "Authentication method"
+msgstr ""
+
+#: core/app_settings.py:219 core/constants.py:59
+msgid "Search and bind"
+msgstr ""
+
+#: core/app_settings.py:220 core/constants.py:60
+msgid "Direct bind"
+msgstr ""
+
+#: core/app_settings.py:223 core/app_settings.py:951
+msgid "Choose the authentication method to use"
+msgstr ""
+
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
+msgid "Bind DN"
+msgstr ""
+
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
+msgid ""
+"The distinguished name to use when binding to the LDAP server. Leave empty "
+"for an anonymous bind"
+msgstr ""
+
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
+msgid "Bind password"
+msgstr ""
+
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
+msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
+msgstr ""
+
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
+msgid "Users search base"
+msgstr ""
+
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
+msgid "The distinguished name of the search base used to find users"
+msgstr ""
+
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
+msgid "Search filter"
+msgstr ""
+
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
+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:266 core/app_settings.py:1003
+msgid "User DN template"
+msgstr ""
+
+#: core/app_settings.py:269 core/app_settings.py:1005
+#, python-format
+msgid ""
+"The template used to construct a user's DN. It should contain one "
+"placeholder (ie. %(user)s)"
+msgstr ""
+
+#: core/app_settings.py:276 core/app_settings.py:1014
+msgid "LDAP synchronization settings"
+msgstr ""
+
+#: core/app_settings.py:299 core/app_settings.py:1042
+msgid "Enable export to LDAP"
+msgstr ""
+
+#: core/app_settings.py:302 core/app_settings.py:1044
+msgid ""
+"Enable automatic synchronization between local database and LDAP directory"
+msgstr ""
+
+#: core/app_settings.py:308 core/app_settings.py:1053
+msgid "Delete remote LDAP account when local account is deleted"
+msgstr ""
+
+#: core/app_settings.py:311 core/app_settings.py:1056
+msgid ""
+"Delete remote LDAP account when local account is deleted, otherwise it will "
+"be disabled."
+msgstr ""
+
+#: core/app_settings.py:317 core/app_settings.py:1065
+msgid "Account DN template"
+msgstr ""
+
+#: core/app_settings.py:320 core/app_settings.py:1067
+#, python-format
+msgid ""
+"The template used to construct an account's DN. It should contain one "
+"placeholder (ie. %(user)s)"
+msgstr ""
+
+#: core/app_settings.py:327 core/app_settings.py:1076
+msgid "Enable import from LDAP"
+msgstr ""
+
+#: core/app_settings.py:330 core/app_settings.py:1078
+msgid "Enable account synchronization from LDAP directory to local database"
+msgstr ""
+
+#: core/app_settings.py:354 core/app_settings.py:1108
+msgid "Username attribute"
+msgstr ""
+
+#: core/app_settings.py:357 core/app_settings.py:1110
+msgid "The name of the LDAP attribute where the username can be found."
+msgstr ""
+
+#: core/app_settings.py:362 core/app_settings.py:1119
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:365 core/app_settings.py:1121
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:370 core/app_settings.py:1129
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:374 core/app_settings.py:1131
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:379 core/app_settings.py:1144
+#: core/templates/core/dashboard.html:5
+msgid "Dashboard"
+msgstr ""
+
+#: core/app_settings.py:382 core/app_settings.py:1150
+msgid "Custom RSS feed"
+msgstr ""
+
+#: core/app_settings.py:385 core/app_settings.py:1152
+msgid "Display custom RSS feed to resellers and domain administrators"
+msgstr ""
+
+#: core/app_settings.py:390 core/app_settings.py:1160
+msgid "Hide features widget"
+msgstr ""
+
+#: core/app_settings.py:393 core/app_settings.py:1162
+msgid "Hide features widget for resellers and domain administrators"
+msgstr ""
+
+#: core/app_settings.py:397 core/app_settings.py:1174
+msgid "Notifications"
+msgstr ""
+
+#: core/app_settings.py:400 core/app_settings.py:1180
+msgid "Sender address"
+msgstr ""
+
+#: core/app_settings.py:402 core/app_settings.py:1182
+msgid "Email address used to send notifications."
+msgstr ""
+
+#: core/app_settings.py:405 core/app_settings.py:1193
+msgid "Public API"
+msgstr ""
+
+#: core/app_settings.py:408 core/app_settings.py:1199
+msgid "Enable communication"
+msgstr ""
+
+#: core/app_settings.py:410
+msgid "Enable communication with Modoboa public API"
+msgstr ""
+
+#: core/app_settings.py:414 core/app_settings.py:1208
+msgid "Check new versions"
+msgstr ""
+
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
+msgid "Automatically checks if a newer version is available"
+msgstr ""
+
+#: core/app_settings.py:420 core/app_settings.py:1219
+msgid "Send an email when new versions are found"
+msgstr ""
+
+#: core/app_settings.py:422 core/app_settings.py:1223
+msgid "Send an email to notify admins about new versions"
+msgstr ""
+
+#: core/app_settings.py:425 core/app_settings.py:1230
+#: sievefilters/constants.py:25
+msgid "Recipient"
+msgstr ""
+
+#: core/app_settings.py:427 core/app_settings.py:1233
+msgid "Recipient of new versions notification emails."
+msgstr ""
+
+#: core/app_settings.py:431 core/app_settings.py:1240
+msgid "Send statistics"
+msgstr ""
+
+#: core/app_settings.py:434 core/app_settings.py:1243
+msgid "Send statistics to Modoboa public API (counters and used extensions)"
+msgstr ""
+
+#: core/app_settings.py:441 core/app_settings.py:1262
+msgid "Enable inactive account tracking"
+msgstr ""
+
+#: core/app_settings.py:444 core/app_settings.py:1265
+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:451 core/app_settings.py:1274
+msgid "Inactive account threshold"
+msgstr ""
+
+#: core/app_settings.py:454 core/app_settings.py:1277
+msgid ""
+"An account with a last login date greater than this threshold (in days) will "
+"be considered as inactive"
+msgstr ""
+
+#: core/app_settings.py:460 core/app_settings.py:1286
+msgid "Top notifications check interval"
+msgstr ""
+
+#: core/app_settings.py:462 core/app_settings.py:1289
+msgid "Interval between two top notification checks (in seconds)"
+msgstr ""
+
+#: core/app_settings.py:466 core/app_settings.py:1296
+msgid "Maximum log record age"
+msgstr ""
+
+#: core/app_settings.py:468 core/app_settings.py:1298
+msgid "The maximum age in days of a log record"
+msgstr ""
+
+#: core/app_settings.py:472 core/app_settings.py:1305
+msgid "Items per page"
+msgstr ""
+
+#: core/app_settings.py:474 core/app_settings.py:1307
+msgid "Number of displayed items per page"
+msgstr ""
+
+#: core/app_settings.py:478 core/app_settings.py:1314
+msgid "Default top redirection"
+msgstr ""
+
+#: core/app_settings.py:482 core/app_settings.py:1316
+msgid "The default redirection used when no application is specified"
+msgstr ""
+
+#: core/app_settings.py:827
+msgid "LDAP"
+msgstr ""
+
+#: core/checks.py:13
+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.py:17
+msgid "Set `USE_TZ = True` in settings.py"
+msgstr ""
+
+#: core/checks.py:21
+msgid "The password scheme you are using is deprecated."
+msgstr ""
+
+#: core/checks.py:22
+msgid "Upgrade your password scheme to a stronger one"
+msgstr ""
+
+#: core/constants.py:6
+msgid "Simple user"
+msgstr ""
+
+#: core/constants.py:7
+msgid "Domain administrator"
+msgstr ""
+
+#: core/constants.py:8
+msgid "Reseller"
+msgstr ""
+
+#: core/constants.py:9
+msgid "Super administrator"
+msgstr ""
+
+#: core/constants.py:109
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:114
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:26
+msgid "Old password"
+msgstr ""
+
+#: core/forms.py:31
+msgid "New password"
+msgstr ""
+
+#: core/forms.py:70
+msgid "Old password mismatchs"
+msgstr ""
+
+#: core/forms.py:83
+msgid "Passwords mismatch"
+msgstr ""
+
+#: core/forms.py:130
+msgid "Enable API access"
+msgstr ""
+
+#: core/forms.py:176
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:187
+msgid "Invalid code"
+msgstr ""
+
+#: core/handlers.py:37
+msgid "added"
+msgstr ""
+
+#: core/handlers.py:40
+msgid "modified"
+msgstr ""
+
+#: core/handlers.py:42
+#, python-format
+msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
+msgstr ""
+
+#: core/handlers.py:65
+#, python-format
+msgid "%(object)s '%(name)s' %(action)s by "
+msgstr ""
+
+#: core/handlers.py:68
+msgid "deleted"
+msgstr ""
+
+#: core/handlers.py:72
+msgid "user {}"
+msgstr ""
+
+#: core/handlers.py:74
+msgid "management command"
+msgstr ""
+
+#: core/handlers.py:96
+msgid "You can't delete your own account"
+msgstr ""
+
+#: core/handlers.py:129
+msgid "One or more updates are available"
+msgstr ""
+
+#: core/handlers.py:141
+#, python-format
+msgid "You are still using a deprecated password scheme (%s)"
+msgstr ""
+
+#: core/management/commands/communicate_with_public_api.py:42
+msgid "[modoboa] Update(s) available"
+msgstr ""
+
+#: core/models.py:72
+msgid "Allow mailboxes access"
+msgstr ""
+
+#: core/models.py:74
+msgid "Allow this administrator to access user mailboxes"
+msgstr ""
+
+#: core/models.py:76 core/templates/core/user_security.html:119
+msgid "password"
+msgstr ""
+
+#: core/models.py:79
+msgid "language"
+msgstr ""
+
+#: core/models.py:83
+msgid "Prefered language to display pages."
+msgstr ""
+
+#: core/models.py:92
+msgid "An alternative e-mail address, can be used for recovery needs."
+msgstr ""
+
+#: core/models.py:151
+msgid "Failed to update password: LDAP module not installed"
+msgstr ""
+
+#: core/models.py:186 policyd/core.py:117
+msgid "account"
+msgstr ""
+
+#: core/models.py:318
+msgid "Unknown"
+msgstr ""
+
+#: core/models.py:361
+msgid "You can't import an account with a role greater than yours"
+msgstr ""
+
+#: core/models.py:376
+msgid "The simple user '{}' must have a valid email address"
+msgstr ""
+
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
+msgstr ""
+
+#: 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: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: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: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:70
+msgid "Your password must contain a combination of different character types."
+msgstr ""
+
+#: 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:62
+msgid "OVH Europe"
+msgstr ""
+
+#: 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:64
+msgid "OVH North-America"
+msgstr ""
+
+#: 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:66
+msgid "So you Start North America"
+msgstr ""
+
+#: 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:68
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:36 core/sms_backends/ovh.py:109
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:41
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:49 core/sms_backends/ovh.py:124
+msgid "Consumer key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:116
+msgid "Appication secret"
+msgstr ""
+
+#: core/templates/core/_current_features.html:6
+msgid "Features looking for sponsoring"
+msgstr ""
+
+#: core/templates/core/_current_features.html:12
+msgid "Goal:"
+msgstr ""
+
+#: core/templates/core/_current_features.html:18
+msgid "More"
+msgstr ""
+
+#: core/templates/core/_current_features.html:22
+msgid "Nothing to sponsor yet."
+msgstr ""
+
+#: core/templates/core/_latest_news_widget.html:5
+msgid "Latest news"
+msgstr ""
+
+#: core/templates/core/_latest_news_widget.html:19
+msgid ""
+"Visit the official "
+"weblog for more information."
+msgstr ""
+
+#: core/templates/core/api_access.html:3
+msgid "API access"
+msgstr ""
+
+#: core/templates/core/api_access.html:3
+msgid "Control your access to Modoboa API"
+msgstr ""
+
+#: core/templates/core/api_access.html:7
+#, python-format
+msgid ""
+"A documentation of the API is available here."
+msgstr ""
+
+#: core/templates/core/api_access.html:14
+msgid "API access token"
+msgstr ""
+
+#: core/templates/core/dashboard.html:17
+#, python-format
+msgid "Hello %(user)s."
+msgstr ""
+
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:58
+msgid "Information"
+msgstr ""
+
+#: core/templates/core/information.html:2
+msgid "Various information about Modoboa"
+msgstr ""
+
+#: core/templates/core/information.html:5
+msgid "You are using a deprecated password scheme!"
+msgstr ""
+
+#: core/templates/core/information.html:6
+#, python-format
+msgid ""
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
+msgstr ""
+
+#: core/templates/core/information.html:18
+msgid ""
+"You must apply this procedure BEFORE you install a newest "
+"version of Modoboa, otherwise you will be unable to connect to the "
+"web interface anymore."
+msgstr ""
+
+#: core/templates/core/information.html:23
+msgid ""
+"Please note that you will see this message until ALL user "
+"passwords have been converted using the new scheme."
+msgstr ""
+
+#: core/templates/core/information.html:28
+msgid "One or more updates are available!"
+msgstr ""
+
+#: core/templates/core/information.html:29
+msgid "Check the following list to find the component(s) that can be updated."
+msgstr ""
+
+#: core/templates/core/information.html:33
+msgid "Applications"
+msgstr ""
+
+#: core/templates/core/information.html:38
+msgid "Installed version"
+msgstr ""
+
+#: core/templates/core/information.html:39
+msgid "Last version"
+msgstr ""
+
+#: core/templates/core/information.html:55
+msgid "Active users"
+msgstr ""
+
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:63
+msgid "Logs"
+msgstr ""
+
+#: core/templates/core/logs.html:2
+msgid "Previously on Modoboa..."
+msgstr ""
+
+#: core/templates/core/logs.html:7
+msgid "Level"
+msgstr ""
+
+#: core/templates/core/logs.html:8
+msgid "Logger"
+msgstr ""
+
+#: core/templates/core/notifications/update_available.html:3
+msgid ""
+"\n"
+" The following update is available:\n"
+msgid_plural ""
+"\n"
+" The following updates are available:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70
+msgid "Parameters"
+msgstr ""
+
+#: core/templates/core/parameters.html:2
+msgid "Configure Modoboa"
+msgstr ""
+
+#: core/templates/core/parameters.html:6
+#: core/templates/core/user_preferences.html:10
+msgid "Save"
+msgstr ""
+
+#: core/templates/core/settings_header.html:5
+msgid "Modoboa settings"
+msgstr ""
+
+#: 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:139
+msgid "Preferences"
+msgstr ""
+
+#: core/templates/core/user_preferences.html:2
+msgid "Customize Modoboa"
+msgstr ""
+
+#: core/templates/core/user_preferences.html:14
+msgid "No preferences available."
+msgstr ""
+
+#: core/templates/core/user_profile.html:3
+msgid "Update your personal information"
+msgstr ""
+
+#: core/templates/core/user_profile.html:13
+msgid "Click here to update your password"
+msgstr ""
+
+#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:145
+msgid "Security"
+msgstr ""
+
+#: core/templates/core/user_security.html:6
+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."
+msgstr ""
+
+#: core/templates/core/user_security.html:25
+msgid "Pin code"
+msgstr ""
+
+#: core/templates/core/user_security.html:28
+msgid "Register"
+msgstr ""
+
+#: core/templates/core/user_security.html:33
+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."
+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."
+msgstr ""
+
+#: core/templates/core/user_security.html:73
+msgid "Enable 2FA"
+msgstr ""
+
+#: core/templates/core/user_security.html:84
+msgid "New recovery codes"
+msgstr ""
+
+#: core/templates/core/user_security.html:88
+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:110
+msgid "Logout"
+msgstr ""
+
+#: core/templatetags/core_tags.py:154
+msgid "API"
+msgstr ""
+
+#: core/utils.py:41
+msgid "The core part of Modoboa"
+msgstr ""
+
+#: core/views/admin.py:42
+msgid "Parameters saved"
+msgstr ""
+
+#: core/views/auth.py:70
+#, python-format
+msgid "User '%s' successfully logged in"
+msgstr ""
+
+#: core/views/auth.py:108
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:115
+#, python-format
+msgid "Password hash parameter missmatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:159
+msgid "User '{}' successfully logged out"
+msgstr ""
+
+#: core/views/user.py:55
+msgid "Profile updated"
+msgstr ""
+
+#: core/views/user.py:89
+msgid "Preferences saved"
+msgstr ""
+
+#: core/views/user.py:118
+msgid "Access updated"
+msgstr ""
+
+#: dmarc/forms.py:36 dmarc/forms.py:50
+msgid "DNS settings"
+msgstr ""
+
+#: dmarc/forms.py:39 dmarc/forms.py:56
+msgid "Enable reverse lookups"
+msgstr ""
+
+#: dmarc/forms.py:41 dmarc/forms.py:58
+msgid "Enable reverse DNS lookups (reports will be longer to display)"
+msgstr ""
+
+#: dmarc/forms.py:74 dmarc/forms.py:78
+msgid "DMARC"
+msgstr ""
+
+#: dmarc/handlers.py:21
+msgid "Show DMARC report for {}"
+msgstr ""
+
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
+msgid "Not resolved"
+msgstr ""
+
+#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
+msgid "None"
+msgstr ""
+
+#: dmarc/models.py:11
+msgid "Quarantine"
+msgstr ""
+
+#: dmarc/models.py:12
+msgid "Reject"
+msgstr ""
+
+#: dmarc/models.py:17
+msgid "Neutral"
+msgstr ""
+
+#: dmarc/models.py:18
+msgid "Pass"
+msgstr ""
+
+#: dmarc/models.py:19
+msgid "Fail"
+msgstr ""
+
+#: dmarc/models.py:20
+msgid "Temporary error"
+msgstr ""
+
+#: dmarc/models.py:21
+msgid "Permanent error"
+msgstr ""
+
+#: dmarc/models.py:24
+msgid "Policy"
+msgstr ""
+
+#: dmarc/models.py:26
+msgid "Soft failure"
+msgstr ""
+
+#: dmarc/templates/dmarc/_result_detail.html:6
+msgid "Total"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:21
+#: dmarc/templates/dmarc/domain_report.html:27
+msgid "Fully aligned"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:22
+#: dmarc/templates/dmarc/domain_report.html:28
+msgid "Partially aligned"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:23
+#: dmarc/templates/dmarc/domain_report.html:29
+msgid "Forwarded"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:24
+#: dmarc/templates/dmarc/domain_report.html:30
+msgid "Failed"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:52
+msgid "DMARC report for"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:76
+msgid "processed"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:85
+msgid "fully aligned"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:94
+msgid "partially aligned"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:103
+msgid "forwarded"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:112
+msgid "failed"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:122
+msgid "Display details"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:126
+msgid "Trusted sources"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:134
+msgid "Partially trusted sources / Forwarders"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:142
+msgid "Forwarders with ARC"
+msgstr ""
+
+#: dmarc/templates/dmarc/domain_report.html:150
+msgid "Unknown sources / Threats"
+msgstr ""
+
+#: dnstools/lib.py:82
+msgid "Wrong ip4 mechanism syntax"
+msgstr ""
+
+#: dnstools/lib.py:86
+msgid "Wrong IPv4 address format"
+msgstr ""
+
+#: dnstools/lib.py:92
+msgid "Wrong ip6 mechanism syntax"
+msgstr ""
+
+#: dnstools/lib.py:97
+msgid "Wrong IPv6 address format"
+msgstr ""
+
+#: dnstools/lib.py:111 dnstools/lib.py:136
+msgid "Invalid syntax for {} mechanism"
+msgstr ""
+
+#: dnstools/lib.py:113
+msgid "Invalid mask found {}"
+msgstr ""
+
+#: dnstools/lib.py:157
+msgid "Not an SPF record"
+msgstr ""
+
+#: dnstools/lib.py:177
+msgid "Unknown mechanism {}"
+msgstr ""
+
+#: dnstools/lib.py:179
+msgid "Unknown modifier {}"
+msgstr ""
+
+#: dnstools/lib.py:182
+msgid "Duplicate modifier {} found"
+msgstr ""
+
+#: dnstools/lib.py:186
+msgid "No mechanism found"
+msgstr ""
+
+#: dnstools/lib.py:193
+msgid "Not a valid DKIM record"
+msgstr ""
+
+#: dnstools/lib.py:201 dnstools/lib.py:254
+msgid "Invalid tag {}"
+msgstr ""
+
+#: dnstools/lib.py:206
+msgid "No key found in record"
+msgstr ""
+
+#: dnstools/lib.py:213
+msgid "Wrong value {} for tag {}"
+msgstr ""
+
+#: dnstools/lib.py:228
+msgid "Wrong value {} for tag {}:"
+msgstr ""
+
+#: dnstools/lib.py:232
+msgid " not an integer"
+msgstr ""
+
+#: dnstools/lib.py:234
+msgid " less than {}"
+msgstr ""
+
+#: dnstools/lib.py:237
+msgid " greater than {}"
+msgstr ""
+
+#: dnstools/lib.py:246
+msgid "Not a valid DMARC record"
+msgstr ""
+
+#: dnstools/lib.py:257
+msgid "Unknown tag {}"
+msgstr ""
+
+#: dnstools/lib.py:262
+msgid "Missing required p tag"
+msgstr ""
+
+#: dnstools/models.py:78
+msgid "Public key mismatchs"
+msgstr ""
+
+#: dnstools/templates/dnstools/autoconfig_records_status.html:8
+msgid "autoconfig record (Mozilla) found: "
+msgstr ""
+
+#: dnstools/templates/dnstools/autoconfig_records_status.html:12
+msgid "autoconfig record (Mozilla) not found."
+msgstr ""
+
+#: dnstools/templates/dnstools/autoconfig_records_status.html:17
+msgid "autodiscover record (Microsoft) found: "
+msgstr ""
+
+#: dnstools/templates/dnstools/autoconfig_records_status.html:21
+msgid "autodiscover record (Microsoft) not found."
+msgstr ""
+
+#: dnstools/templates/dnstools/dns_record_detail.html:8
+msgid "A DNS record has been found and is valid."
+msgstr ""
+
+#: dnstools/templates/dnstools/dns_record_detail.html:12
+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."
+msgstr ""
+
+#: dnstools/templates/dnstools/domain_dns_configuration.html:15
+msgid "IP address of your Modoboa server"
+msgstr ""
+
+#: dnstools/templates/dnstools/domain_dns_configuration.html:28
+msgid "Auto configuration"
+msgstr ""
+
+#: dnstools/templates/dnstools/domain_dns_configuration.html:30
+#: dnstools/templates/dnstools/domain_dns_configuration.html:31
+msgid "hostname of your automx server"
+msgstr ""
+
+#: dnstools/views.py:35
+msgid "{} record of {}"
+msgstr ""
+
+#: dnstools/views.py:64
+msgid "Auto configuration records for {}"
+msgstr ""
+
+#: dnstools/views.py:80
+msgid "DNS configuration for {}"
+msgstr ""
+
+#: imap_migration/api/v2/serializers.py:117
+msgid "Access denied"
+msgstr ""
+
+#: imap_migration/app_settings.py:23 imap_migration/app_settings.py:102
+msgid "Enable IMAP Migration"
+msgstr ""
+
+#: imap_migration/app_settings.py:24 imap_migration/app_settings.py:104
+msgid "Enable IMAP Migration."
+msgstr ""
+
+#: imap_migration/app_settings.py:34
+msgid "OfflineIMAP"
+msgstr ""
+
+#: imap_migration/app_settings.py:40 imap_migration/app_settings.py:110
+msgid "Concurrent sync jobs"
+msgstr ""
+
+#: 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:53
+msgid "OfflineIMAP Filter"
+msgstr ""
+
+#: imap_migration/app_settings.py:59 imap_migration/app_settings.py:118
+msgid "Create Folders"
+msgstr ""
+
+#: 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:68 imap_migration/app_settings.py:125
+msgid "Folder Filter Exclusions"
+msgstr ""
+
+#: 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:78 imap_migration/app_settings.py:135
+msgid "Folder Filter Inclusions"
+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 "
+msgstr ""
+
+#: imap_migration/app_settings.py:107
+msgid "OfflineIMAP settings"
+msgstr ""
+
+#: imap_migration/app_settings.py:115
+msgid "OfflineIMAP Filter settings"
+msgstr ""
+
+#: imap_migration/apps.py:18 imap_migration/apps.py:23
+msgid "IMAP Migration"
+msgstr ""
+
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
+msgstr ""
+
+#: imap_migration/checks.py:12
+msgid ""
+"Automatic domain/mailbox creation is disabled which means IMAP "
+"authentication won't work."
+msgstr ""
+
+#: 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:82
+msgid "Failed to create LDAP account: {}"
+msgstr ""
+
+#: ldapsync/lib.py:121
+msgid "Failed to update LDAP account: {}"
+msgstr ""
+
+#: ldapsync/lib.py:135
+msgid "Failed to delete LDAP account: {}"
+msgstr ""
+
+#: ldapsync/lib.py:144
+msgid "Failed to disable LDAP account: {}"
+msgstr ""
+
+#: 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:22
+msgid "Connection to database {} not configured"
+msgstr ""
+
+#: lib/email_utils.py:139 lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
+msgstr ""
+
+#: lib/exceptions.py:86
+msgid "Permission denied"
+msgstr ""
+
+#: lib/fields.py:14 lib/validators.py:13
+msgid "Enter a valid domain name"
+msgstr ""
+
+#: lib/fields.py:41 lib/fields.py:54
+msgid "Enter a valid email address."
+msgstr ""
+
+#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:25
+#: templates/registration/password_reset_confirm_code.html:27
+#: templates/registration/password_reset_form.html:23
+msgid "Submit"
+msgstr ""
+
+#: lib/ldap_utils.py:126
+msgid "Failed to update password: {}"
+msgstr ""
+
+#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
+msgid "Subject"
+msgstr ""
+
+#: 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:153
+msgid "Enable per-admin limits"
+msgstr ""
+
+#: 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: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: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: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: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: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: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: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:82 limits/app_settings.py:232
+msgid "Default per-domain limits"
+msgstr ""
+
+#: limits/app_settings.py:85 limits/app_settings.py:238
+msgid "Enable per-domain limits"
+msgstr ""
+
+#: limits/app_settings.py:87 limits/app_settings.py:239
+msgid "Enable or disable per-domain limits"
+msgstr ""
+
+#: 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: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: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: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:17
+msgid "Limits"
+msgstr ""
+
+#: limits/constants.py:14
+msgid "Maximum number of domains this user can create"
+msgstr ""
+
+#: limits/constants.py:23
+msgid "Maximum number of domain aliases this user can create"
+msgstr ""
+
+#: limits/constants.py:32
+msgid "Maximum number of mailboxes this user can create"
+msgstr ""
+
+#: limits/constants.py:40
+msgid "Maximum number of mailbox aliases this user can create"
+msgstr ""
+
+#: limits/constants.py:49
+msgid "Maximum number of domain administrators this user can create"
+msgstr ""
+
+#: limits/constants.py:60
+msgid "Quota shared between domains of this reseller"
+msgstr ""
+
+#: limits/constants.py:77
+msgid "Maximum number of domain aliases allowed for this domain."
+msgstr ""
+
+#: limits/constants.py:85
+msgid "Maximum number of mailboxes allowed for this domain."
+msgstr ""
+
+#: limits/constants.py:93
+msgid "Maximum number of mailbox aliases allowed for this domain."
+msgstr ""
+
+#: limits/constants.py:102
+msgid "Maximum number of domain admins allowed for this domain."
+msgstr ""
+
+#: limits/forms.py:38 limits/forms.py:88
+msgid "Invalid limit"
+msgstr ""
+
+#: limits/handlers.py:118 limits/handlers.py:151
+msgid "Resources"
+msgstr ""
+
+#: limits/lib.py:19
+#, python-format
+msgid "%s: limit reached"
+msgstr ""
+
+#: limits/lib.py:29
+msgid "Not enough resources"
+msgstr ""
+
+#: limits/lib.py:46 limits/models.py:46
+msgid "You're not allowed to define unlimited values"
+msgstr ""
+
+#: limits/models.py:56 limits/models.py:119
+msgid "unlimited"
+msgstr ""
+
+#: limits/templates/limits/poolusage.html:3
+#: limits/templates/limits/resources_widget.html:5
+msgid "Resources usage"
+msgstr ""
+
+#: maillog/api/v2/serializers.py:35
+msgid "You must provide start and end dates when period is custom"
+msgstr ""
+
+#: maillog/apps.py:20 maillog/forms.py:23
+msgid "Path to the log file"
+msgstr ""
+
+#: maillog/apps.py:22 maillog/forms.py:25
+msgid "Path to log file used to collect statistics"
+msgstr ""
+
+#: maillog/apps.py:29 maillog/forms.py:30
+msgid "Directory to store RRD files"
+msgstr ""
+
+#: maillog/apps.py:31 maillog/forms.py:32
+msgid "Path to directory where RRD files are stored"
+msgstr ""
+
+#: maillog/apps.py:38 maillog/forms.py:37
+msgid "Show greylisted messages"
+msgstr ""
+
+#: maillog/apps.py:40 maillog/forms.py:40
+msgid "Differentiate between hard and soft rejects (greylisting)"
+msgstr ""
+
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
+msgid "Statistics"
+msgstr ""
+
+#: maillog/graphics.py:91
+msgid "Failed to locate rrdtool binary."
+msgstr ""
+
+#: maillog/graphics.py:166
+msgid "Average traffic (msgs/min)"
+msgstr ""
+
+#: maillog/graphics.py:169
+msgid "sent messages"
+msgstr ""
+
+#: maillog/graphics.py:170
+msgid "received messages"
+msgstr ""
+
+#: maillog/graphics.py:171
+msgid "bounced messages"
+msgstr ""
+
+#: maillog/graphics.py:172
+msgid "rejected messages"
+msgstr ""
+
+#: maillog/graphics.py:173
+msgid "virus messages"
+msgstr ""
+
+#: maillog/graphics.py:174
+msgid "spam messages"
+msgstr ""
+
+#: maillog/graphics.py:181
+msgid "greylisted messages"
+msgstr ""
+
+#: maillog/graphics.py:198
+msgid "Average normal traffic size (bytes/min)"
+msgstr ""
+
+#: maillog/graphics.py:201
+msgid "received size"
+msgstr ""
+
+#: maillog/graphics.py:202
+msgid "sent size"
+msgstr ""
+
+#: maillog/graphics.py:209
+msgid "Mail traffic"
+msgstr ""
+
+#: maillog/graphics.py:252
+msgid "Average account creation (account/hour)"
+msgstr ""
+
+#: maillog/graphics.py:254
+msgid "New accounts"
+msgstr ""
+
+#: maillog/graphics.py:261
+msgid "Accounts"
+msgstr ""
+
+#: maillog/templates/maillog/index.html:4
+msgid "Graphical statistics"
+msgstr ""
+
+#: maillog/templates/maillog/index.html:44
+msgid "Search a domain"
+msgstr ""
+
+#: maillog/templates/maillog/index.html:77
+msgid "Apply"
+msgstr ""
+
+#: maillog/views.py:31
+msgid "No statistics available"
+msgstr ""
+
+#: maillog/views.py:37
+msgid "Day"
+msgstr ""
+
+#: maillog/views.py:38
+msgid "Week"
+msgstr ""
+
+#: maillog/views.py:39
+msgid "Month"
+msgstr ""
+
+#: maillog/views.py:40
+msgid "Year"
+msgstr ""
+
+#: maillog/views.py:41
+msgid "Custom"
+msgstr ""
+
+#: maillog/views.py:64
+msgid "Unknown graphic set"
+msgstr ""
+
+#: maillog/views.py:69
+msgid "Unknown domain"
+msgstr ""
+
+#: maillog/views.py:74
+msgid "Bad custom period"
+msgstr ""
+
+#: 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:61
+msgid "Directory is not writable"
+msgstr ""
+
+#: pdfcredentials/api/v2/serializers.py:82 pdfcredentials/views.py:26
+msgid "No document available for this user"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198
+msgid "Enable PDF credentials"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200
+msgid "Enabled PDF credentials document generation on account creation."
+msgstr ""
+
+#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203
+msgid "Documents storage"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:48 pdfcredentials/app_settings.py:206
+msgid "Directory to save documents into"
+msgstr ""
+
+#: 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:61 pdfcredentials/app_settings.py:211
+msgid "Security options"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:214
+msgid "Delete documents after the first 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 ""
+
+#: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223
+msgid "Generate documents only at account creation"
+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:94 pdfcredentials/app_settings.py:232
+msgid "Customization options"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235
+msgid "Title"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:237
+msgid "The document's title"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:107 pdfcredentials/app_settings.py:241
+msgid "Web panel url"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:108 pdfcredentials/app_settings.py:241
+msgid "URL of the Modoboa web panel"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245
+msgid "Custom message"
+msgstr ""
+
+#: 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:123 pdfcredentials/app_settings.py:251
+msgid "Include mail client connection settings"
+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 ""
+
+#: pdfcredentials/app_settings.py:133 pdfcredentials/app_settings.py:260
+#: pdfcredentials/documents.py:133
+msgid "SMTP server address"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261
+msgid "Address of the SMTP server (hostname or IP)"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:143 pdfcredentials/app_settings.py:265
+#: pdfcredentials/documents.py:134
+msgid "SMTP server port"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267
+msgid "Listening port of the SMTP server"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:151 pdfcredentials/app_settings.py:271
+#: pdfcredentials/documents.py:135
+msgid "SMTP connection security"
+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 ""
+
+#: pdfcredentials/app_settings.py:159 pdfcredentials/app_settings.py:278
+#: pdfcredentials/documents.py:136
+msgid "IMAP server address"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279
+msgid "Address of the IMAP server (hostname or IP)"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:169 pdfcredentials/app_settings.py:283
+#: pdfcredentials/documents.py:137
+msgid "IMAP server port"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285
+msgid "Listening port of the IMAP server"
+msgstr ""
+
+#: pdfcredentials/app_settings.py:177 pdfcredentials/app_settings.py:289
+#: pdfcredentials/documents.py:138
+msgid "IMAP connection security"
+msgstr ""
+
+#: pdfcredentials/apps.py:19
+msgid "PDF credentials"
+msgstr ""
+
+#: pdfcredentials/apps.py:24
+msgid "PDF Credentials"
+msgstr ""
+
+#: pdfcredentials/documents.py:65
+msgid "Powered by Modoboa - Mail hosting made simple"
+msgstr ""
+
+#: 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 ""
+
+#: pdfcredentials/documents.py:95
+msgid "Web panel:"
+msgstr ""
+
+#: 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:126
+msgid "Please change your password!"
+msgstr ""
+
+#: pdfcredentials/documents.py:130
+msgid "PC/Tablet/Smartphone configuration:"
+msgstr ""
+
+#: pdfcredentials/documents.py:153
+msgid "Use those settings for your computer, tablet or phone."
+msgstr ""
+
+#: 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:82
+msgid "Download PDF credentials"
+msgstr ""
+
+#: pdfcredentials/lib.py:28
+msgid "Can't write to selected directory to store PDF documents"
+msgstr ""
+
+#: pdfcredentials/lib.py:34
+#, python-format
+msgid "Failed to create the directory that will contain PDF documents (%s)"
+msgstr ""
+
+#: pdfcredentials/lib.py:81
+msgid ""
+"Failed to create PDF_credentials file. Please check the permissions or the "
+"path."
+msgstr ""
+
+#: policyd/core.py:99
+msgid "Daily sending limit reached"
+msgstr ""
+
+#: policyd/core.py:136
+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:42 postfix_autoreply/forms.py:86
+msgid "This date is over"
+msgstr ""
+
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
+msgid "Must be greater than start date"
+msgstr ""
+
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
+msgid "Automatic reply timeout"
+msgstr ""
+
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
+msgid "Timeout in seconds between two auto-replies to the same recipient"
+msgstr ""
+
+#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
+#: postfix_autoreply/forms.py:117
+msgid "Default subject"
+msgstr ""
+
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
+msgid ""
+"Default subject used when an auto-reply message is created automatically"
+msgstr ""
+
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
+#, 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/apps.py:14 postfix_autoreply/apps.py:20
+#: postfix_autoreply/forms.py:161
+msgid "Automatic replies"
+msgstr ""
+
+#: postfix_autoreply/forms.py:21
+msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
+msgstr ""
+
+#: postfix_autoreply/forms.py:26
+msgid "Until"
+msgstr ""
+
+#: postfix_autoreply/forms.py:29
+msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
+msgstr ""
+
+#: postfix_autoreply/forms.py:37
+#, 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:118
+msgid "I'm off"
+msgstr ""
+
+#: postfix_autoreply/forms.py:127
+msgid "Default content"
+msgstr ""
+
+#: postfix_autoreply/forms.py:129
+#, 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/handlers.py:114
+#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
+msgid "Auto-reply message"
+msgstr ""
+
+#: postfix_autoreply/handlers.py:127
+msgid "Auto reply"
+msgstr ""
+
+#: postfix_autoreply/models.py:15
+msgid "subject"
+msgstr ""
+
+#: 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:28
+msgid "Auto reply message updated successfully."
+msgstr ""
+
+#: relaydomains/api/v1/serializers.py:24
+msgid "Unsupported service"
+msgstr ""
+
+#: relaydomains/handlers.py:64
+msgid "Transport settings"
+msgstr ""
+
+#: relaydomains/handlers.py:89
+msgid "Transport"
+msgstr ""
+
+#: relaydomains/transport.py:16
+msgid "target host address"
+msgstr ""
+
+#: relaydomains/transport.py:21
+msgid "target host port"
+msgstr ""
+
+#: relaydomains/transport.py:27
+msgid "verify recipients"
+msgstr ""
+
+#: sievefilters/api/v2/viewsets.py:190
+#, python-format
+msgid "Filter %s already exists"
+msgstr ""
+
+#: sievefilters/app_settings.py:12 sievefilters/forms.py:13
+msgid "ManageSieve settings"
+msgstr ""
+
+#: sievefilters/app_settings.py:19 sievefilters/forms.py:18
+msgid "Address of your MANAGESIEVE server"
+msgstr ""
+
+#: sievefilters/app_settings.py:27 sievefilters/forms.py:25
+msgid "Listening port of your MANAGESIEVE server"
+msgstr ""
+
+#: sievefilters/app_settings.py:34 sievefilters/forms.py:30
+msgid "Connect using STARTTLS"
+msgstr ""
+
+#: sievefilters/app_settings.py:35 sievefilters/forms.py:32
+msgid "Use the STARTTLS extension"
+msgstr ""
+
+#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
+msgid "IMAP settings"
+msgstr ""
+
+#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
+msgid "Address of your IMAP server"
+msgstr ""
+
+#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
+msgid "Use a secured connection to access IMAP server"
+msgstr ""
+
+#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
+msgid "Listening port of your IMAP server"
+msgstr ""
+
+#: sievefilters/apps.py:15 sievefilters/apps.py:20
+msgid "Sieve filters"
+msgstr ""
+
+#: sievefilters/apps.py:28
+msgid "Message filters"
+msgstr ""
+
+#: sievefilters/constants.py:10
+msgid "All of the following"
+msgstr ""
+
+#: sievefilters/constants.py:11
+msgid "Any of the following"
+msgstr ""
+
+#: sievefilters/constants.py:12
+msgid "All messages"
+msgstr ""
+
+#: sievefilters/constants.py:16
+msgid "contains"
+msgstr ""
+
+#: sievefilters/constants.py:17
+msgid "does not contain"
+msgstr ""
+
+#: sievefilters/constants.py:18
+msgid "is"
+msgstr ""
+
+#: sievefilters/constants.py:19
+msgid "is not"
+msgstr ""
+
+#: sievefilters/constants.py:24
+msgid "Sender"
+msgstr ""
+
+#: sievefilters/constants.py:26
+msgid "Cc"
+msgstr ""
+
+#: sievefilters/constants.py:29
+msgid "Size"
+msgstr ""
+
+#: sievefilters/constants.py:31
+msgid "is greater than"
+msgstr ""
+
+#: sievefilters/constants.py:32
+msgid "is less than"
+msgstr ""
+
+#: sievefilters/constants.py:40
+msgid "Move message to"
+msgstr ""
+
+#: sievefilters/constants.py:46 sievefilters/constants.py:60
+msgid "Keep local copy"
+msgstr ""
+
+#: sievefilters/constants.py:54
+msgid "Redirect message to"
+msgstr ""
+
+#: sievefilters/constants.py:68
+msgid "Reject message"
+msgstr ""
+
+#: sievefilters/constants.py:71
+msgid "Stop processing"
+msgstr ""
+
+#: sievefilters/forms.py:63
+msgid "Editor mode"
+msgstr ""
+
+#: sievefilters/forms.py:65
+msgid "Select the mode you want the editor to work in"
+msgstr ""
+
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
+msgid "Trash folder"
+msgstr ""
+
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
+msgid "Folder where deleted messages go"
+msgstr ""
+
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
+msgid "Sent folder"
+msgstr ""
+
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
+msgid "Folder where copies of sent messages go"
+msgstr ""
+
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
+msgid "Drafts folder"
+msgstr ""
+
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
+msgid "Folder where drafts go"
+msgstr ""
+
+#: sievefilters/lib.py:52
+msgid "Connection to MANAGESIEVE server failed, check your configuration"
+msgstr ""
+
+#: sievefilters/lib.py:79
+msgid "Not enough space on server"
+msgstr ""
+
+#: templates/404.html:4 templates/500.html:4
+msgid "Sorry"
+msgstr ""
+
+#: templates/404.html:5
+msgid "The requested page does not exist."
+msgstr ""
+
+#: templates/500.html:5
+msgid "An internal error occured."
+msgstr ""
+
+#: templates/common/email_searchbar.html:5
+msgid "Search..."
+msgstr ""
+
+#: templates/common/email_searchbar.html:10
+msgid "From address"
+msgstr ""
+
+#: templates/common/email_searchbar.html:33
+msgid "Both"
+msgstr ""
+
+#: templates/common/error.html:4
+msgid "Error:"
+msgstr ""
+
+#: templates/common/generic_field.html:11
+#: templates/common/generic_fields_group.html:8
+msgid "Help:"
+msgstr ""
+
+#: templates/common/wizard_forms.html:31
+msgid "Previous"
+msgstr ""
+
+#: templates/common/wizard_forms.html:32
+msgid "Next"
+msgstr ""
+
+#: templates/nlayout.html:57
+msgid "New admin"
+msgstr ""
+
+#: templates/registration/base.html:8
+msgid "Welcome to Modoboa"
+msgstr ""
+
+#: templates/registration/login.html:11
+msgid "Identification"
+msgstr ""
+
+#: templates/registration/login.html:24
+msgid "Remember me"
+msgstr ""
+
+#: templates/registration/login.html:26
+msgid "Log in"
+msgstr ""
+
+#: templates/registration/login.html:29
+#: templates/registration/password_reset_confirm_code.html:7
+#: templates/registration/password_reset_done.html:7
+#: templates/registration/password_reset_form.html:17
+msgid "Forgot password?"
+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 ""
+
+#: templates/registration/password_reset_confirm.html:8
+msgid "Change password"
+msgstr ""
+
+#: templates/registration/password_reset_confirm.html:29
+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:22
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:30
+msgid "Resend code"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:45
+msgid "The code has been sent again"
+msgstr ""
+
+#: templates/registration/password_reset_done.html:8
+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:"
+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."
+msgstr ""
+
+#: templates/registration/password_reset_email.html:14
+#: templates/registration/password_reset_email_v2.html:14
+msgid "Sincerely, The Modoboa Team."
+msgstr ""
+
+#: templates/registration/password_reset_subject.txt:3
+msgid "Modoboa password reset"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:11
+msgid "Verification"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:15
+msgid "Use TOTP/backup code"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:18
+msgid "Use Webauthn device"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:27
+msgid "One-time password"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:35
+msgid ""
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:42
+msgid "Verify code"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:45
+#: templates/registration/twofactor_code_verify.html:51
+msgid "Back"
+msgstr ""
+
+#: templates/registration/twofactor_code_verify.html:49
+msgid "Log using Webauthn"
+msgstr ""
+
+#: transport/backends.py:55
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:15
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:16
+msgid "service"
+msgstr ""
+
+#: transport/models.py:17
+msgid "next hop"
+msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/fi/LC_MESSAGES/django.po b/modoboa/locale/fi/LC_MESSAGES/django.po
index d9eadb55d..a4769c6c8 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: 2023-02-17 22:03+0200\n"
"Last-Translator: Ossi Mäntylahti \n"
"Language-Team: \n"
@@ -18,7 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2.2\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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."
@@ -27,27 +27,27 @@ msgstr ""
"megatavuina (MB) (oletus) tai gigatavuina (GB). Arvo 0 tarkoittaa, ettei "
"kiintiötä ole."
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
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."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Lupa evätty."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,22 +55,22 @@ msgstr "Lupa evätty."
msgid "This field is required"
msgstr "Tämä kenttä on pakollinen"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Ei sallittu tässä roolissa."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Täytyy olla yhtä suuri kuin postilaatikon koko osoite"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -79,25 +79,25 @@ msgstr "Täytyy olla yhtä suuri kuin postilaatikon koko osoite"
msgid "This field is required."
msgstr "Tämä kenttä on pakollinen."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Paikallista verkkotunnusta {} ei ole olemassa"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Luettelo vastaanottajista"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Sinulla ei ole pääsyä tähän verkkotunnukseen."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Sinulla ei ole pääsyä tähän postilaatikkoon."
@@ -120,29 +120,29 @@ msgstr "Täytyy olla positiivinen kokonaisluku"
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Määritä vähintään yksi valtuutettu verkko/osoite"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, fuzzy
#| msgid "A mailbox is required"
msgid "A mailbox is required to create aliases."
msgstr "Tarvitaan postilaatikko"
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown tag {}"
msgid "Unknown status"
@@ -165,39 +165,39 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Verkkotunnukset"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Ota MX-tarkistukset käyttöön"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
"Tarkista, että jokaisella verkkotunnuksella on voimassa oleva MX-tietue"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Voimassa olevat MX:t"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 ""
"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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Uusien verkkotunnusten on käytettävä valtuutettuja MX:iä"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -205,98 +205,98 @@ msgstr ""
"Estä uuden verkkotunnuksen luominen, jos sen MX-tietue ei käytä jotakin "
"määritetyistä osoitteista."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, 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
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Ota SPF-tarkistukset käyttöön"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr "Tarkista, onko jokaisella verkkotunnuksella voimassa oleva SPF-tietue"
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Ota DKIM-tarkistukset käyttöön"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
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"
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Ota DMARC-tarkistukset käyttöön"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
"Tarkista, onko jokaisella verkkotunnuksella voimassa oleva DMARC-tietue"
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Ota käyttöön automaattisen määritysten tarkistus"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
"Tarkista, onko jokaisella verkkotunnuksella kelvolliset tietueet "
"automaattista määritystä varten"
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Ota DNSBL-tarkistukset käyttöön"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
"Tarkista jokainen verkkotunnus merkittävimmistä DNSBL-palveluntarjoajista"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Mukautettu DNS-palvelin"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
"Käytä mukautettua DNS-palvelinta paikallisen palvelinkonfiguraation sijasta"
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "DKIM-avainten tallennushakemisto"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
+"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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "DKIM-avaimen oletuspituus"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr "Uusien luotujen DKIM-avainten oletuspituus bitteinä."
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Verkkotunnuksen oletuskiintiö"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -304,19 +304,19 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Oletusarvo verkkotunnuksen lähetysrajalle"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
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."
+"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:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -324,11 +324,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Postilaatikot"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Käsittele postilaatikoita tiedostojärjestelmässä"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -336,9 +336,8 @@ msgstr ""
"Nimeä uudelleen tai poista postilaatikot tiedostojärjestelmästä, kun ne "
"nimetään uudelleen tai poistetaan Modoboassa"
-#: 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:454 admin/forms/domain.py:54
+#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Oletuspostilaatikkokiintiö"
@@ -351,11 +350,11 @@ msgstr ""
"postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei "
"kiintiötä ole."
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Oletuspostilaatikon lähetysraja"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -363,28 +362,27 @@ 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:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Tilin automaattinen poistaminen"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Automaattinen verkkotunnuksen/sähköpostilaatikon luominen"
-#: admin/app_settings.py:177 admin/app_settings.py:491
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:177 admin/app_settings.py:489
+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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Luo alias, kun postilaatikko nimetään uudelleen"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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 "
@@ -394,11 +392,11 @@ msgstr ""
msgid "Directory not found."
msgstr "Hakemistoa ei löydy."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
-#| "Default mailbox quota (in MB) applied to freshly created mailboxes with no "
-#| "value specified. A value of 0 means no quota."
+#| "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."
@@ -407,7 +405,7 @@ msgstr ""
"postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei "
"kiintiötä ole."
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Hallinnointinäkymä"
@@ -465,8 +463,8 @@ 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."
+"Luo satunnainen salasana. Jos päivität tätä tiliä ja valitset tämän, Modoboa "
+"luo uuden salasanan."
#: admin/forms/account.py:49 pdfcredentials/documents.py:99
msgid "Password"
@@ -513,9 +511,9 @@ msgstr "Kiintiö"
#: 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 ""
"Tämän postilaatikon kiintiö, joka voidaan ilmaista kilotavuina, megatavuina "
"(oletus) tai gigatavuina. Määritä oma arvo tai käytä toimialueen "
@@ -562,8 +560,8 @@ msgid ""
"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."
+"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:339 admin/forms/alias.py:95
#: admin/models/mailbox.py:308
@@ -587,8 +585,8 @@ msgstr "Käyttäjän hallinnoima verkkotunnus(kset)"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Yleiset"
@@ -630,8 +628,8 @@ 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)."
+"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"
@@ -659,8 +657,8 @@ 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."
+"Tämän verkkotunnuksen aliakset. Ilmoita vain yksi nimi per rivi, paina enter "
+"lisätäksesi uuden rivin."
#: admin/forms/domain.py:43
msgid "Key selector"
@@ -672,10 +670,9 @@ msgid ""
"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."
+"megatavuina (oletus) tai gigatavuina. Arvo 0 tarkoittaa, ettei kiintiötä ole."
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "verkkotunnuksen alias"
@@ -693,7 +690,7 @@ msgstr "DKIM-avainten tallennushakemistoa ei ole määritetty"
msgid "You can't define an unlimited quota."
msgstr "Et voi määritellä rajoittamatonta kiintiötä."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domain"
@@ -804,28 +801,28 @@ msgstr ""
"Valitse tämä vaihtoehto, jos tiedostosi sisältämiä salasanoja ei ole "
"salakirjoitettu"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Tilin tuonti epäonnistui (%s): verkkotunnusta ei ole olemassa"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Postilaatikko {} on jo olemassa"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Tilin tuonti epäonnistui (%s): väärä kiintiöarvo"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Välitä"
@@ -862,8 +859,7 @@ 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:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -881,16 +877,16 @@ msgstr "Kohde on jo olemassa: %s"
msgid "%d objects imported successfully"
msgstr "%d objektit tuotu onnistuneesti"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, 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"
@@ -901,11 +897,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1026,18 +1022,18 @@ msgstr ""
msgid "Key length"
msgstr "Avaimen pituus"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Virheellinen rivi"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1096,9 +1092,8 @@ 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"
@@ -1272,6 +1267,7 @@ msgstr "Avatut hälytykset"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Päivämäärä"
@@ -1353,12 +1349,11 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Ei"
@@ -1366,7 +1361,7 @@ msgstr "Ei"
msgid "Generate new key"
msgstr "Luo uusi avain"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Kyllä"
@@ -1416,7 +1411,7 @@ msgstr "Jonon 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Lähde"
@@ -1455,7 +1450,7 @@ msgstr "Lähetä sähköpostit automaattisesti eteenpäin toiseen osoitteeseen"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Päivitä"
@@ -1483,29 +1478,28 @@ msgid ""
"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ä.
"
+"- verkkotunnus; kiintiö; oletuspostilaatikon kiintiö; käytössä"
+"li>
- 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; "
+"
- 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 ""
"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ä.
"
+"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"
@@ -1547,8 +1541,8 @@ 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:"
+"Modoboa havaitsi, että verkkotunnus %(domain)s on listattu seuraavilla DNSBL-"
+"palveluntarjoajilla:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
@@ -1558,8 +1552,7 @@ msgid ""
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."
+"palveluntarjoajiin ja pyytää heitä poistamaan havaitut IP-osoitteet listalta."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
@@ -1593,7 +1586,7 @@ msgid "Message logs"
msgstr "Viestilokit"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Tuonti"
@@ -1667,11 +1660,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias poistettu"
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "MX-tietueet {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL-tiivistelmä {}"
@@ -1700,11 +1693,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Tili poistettu"
msgstr[1] "Poistetut tilit"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Tuo verkkotunnuksia"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Tuo identiteetit"
@@ -1754,7 +1747,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Salli tämän järjestelmänvalvojan pääsy käyttäjien postilaatikoihin"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Sekalaiset"
@@ -1767,8 +1760,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1806,8 +1798,7 @@ msgstr "LDAP-synkronointiasetukset"
msgid "Interval in seconds between 2 synchronization requests"
msgstr ""
-#: contacts/app_settings.py:51
-#: contacts/templates/modoboa_contacts/index.html:6
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
#: core/api/v2/viewsets.py:164
#, fuzzy
#| msgid "Domains"
@@ -1886,7 +1877,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Virheellinen syntaksi"
@@ -1898,8 +1889,7 @@ msgstr "Virheellinen kierrosluku"
msgid "This code is invalid"
msgstr "Tämä koodi on virheellinen"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr "Käytä seuraavaa koodia saadaksesi takaisin Modoboa-salasanasi: {}"
@@ -1919,31 +1909,38 @@ msgstr ""
msgid "Address book"
msgstr "Osoite"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Sähköpostiosoite"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Tunnistautuminen"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Autentikointityyppi"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Tunnistautumiseen käytettävä taustajärjestelmä"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Oletussalasanojen järjestelmä"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Sähköpostilaatikon salasanojen salaamiseen käytetty järjestelmä"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Kierrokset"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1951,37 +1948,37 @@ 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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Päivitä salasanajärjestelmä kirjautumisen yhteydessä"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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ää"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Oletussalasana"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Automaattisesti luotujen tilien oletussalasana."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Satunnaisen salasanan pituus"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Satunnaisesti luotujen salasanojen pituus."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Päivitä salasanapalvelun URL-osoite"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -1991,29 +1988,29 @@ msgstr ""
"Koskee vain muita kuin paikallisia käyttäjiä. Eli niitä, jotka luodaan "
"automaattisesti onnistuneen ulkoisen todennuksen jälkeen (LDAP, SMTP)."
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Ilmoitus salasanan palautuksesta"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Ota salasanan palautus käyttöön tekstiviestillä"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS-palveluntarjoaja"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
"Valitse palveluntarjoaja, joka lähettää salasanan palautustekstiviestin"
@@ -2022,111 +2019,114 @@ msgstr ""
msgid "LDAP settings"
msgstr "LDAP-asetukset"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Palvelimen osoite"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP-palvelimen IP-osoite tai DNS-nimi"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Palvelimen portti"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP-palvelimen käyttämän TCP-portin numero"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Toisen palvelimen käyttöönotto (varapalvelin)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Toisen palvelimen osoite"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Toisen palvelimen portti"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Käytä suojattua yhteyttä"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Kerro, onko LDAP-palvelin Active Directory -palvelin"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Järjestelmänvalvojien ryhmät"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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 ""
"Näiden LDAP Posix -ryhmien jäsenet luodaan verkkotunnuksen "
"järjestelmänvalvojiksi. Käytä ';'-merkkejä ryhmien erottamiseen."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Ryhmän tyyppi"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Ryhmien hakupohja"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Salasana-attribuutti"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Määrite, jota käytetään käyttäjien salasanojen tallentamiseen"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP-todennusasetukset"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Tunnistusmenetelmä"
@@ -2138,17 +2138,17 @@ msgstr "Etsi ja sido"
msgid "Direct bind"
msgstr "Suora sidonta"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Valitse käytettävä todennusmenetelmä"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Sido 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2156,35 +2156,35 @@ msgstr ""
"Erotusnimi, jota käytetään LDAP-palvelimeen sitoutumisessa. Jätä tyhjäksi "
"anonyymiä sidontaa varten"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Sido salasana"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Käyttäjien hakupohja"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Etsi suodatin"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2192,11 +2192,11 @@ msgstr ""
"Valinnainen suodatinmerkkijono (esim. '(objectClass=person)'). Tämän on "
"oltava suluissa."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Käyttäjän DN-malli"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2205,26 +2205,26 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP-synkronointiasetukset"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Ota käyttöön vienti LDAP:iin"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
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:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr "Etäisen LDAP-tilin poistaminen, kun paikallinen tili poistetaan"
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2232,11 +2232,11 @@ msgstr ""
"Poista etä-LDAP-tili, kun paikallinen tili poistetaan. Muuten se poistetaan "
"käytöstä."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Tilin DN-malli"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2245,81 +2245,80 @@ msgstr ""
"Malli, jota käytetään tilin DN:n muodostamiseen. Sen tulisi sisältää yksi "
"paikanvaraaja (eli %(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Ota käyttöön tuonti LDAP:stä"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-"Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen "
-"tietokantaan"
+"Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen tietokantaan"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Käyttäjätunnus-määrite"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Ota Dovecot LDAP-synkronointi käyttöön"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr "LDAP-todennusasetuksia sovelletaan Dovecot-konfiguraatioon."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP -asetustiedosto"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Työpöytä"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Mukautettu RSS-syöte"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Piilota ominaisuudet-widget"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Piilota ominaisuudet-widget jälleenmyyjiltä ja verkkotunnuksen ylläpitäjiltä"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Ilmoitukset"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Lähettäjän osoite"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Ilmoitusten lähettämiseen käytettävä sähköpostiosoite."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Julkinen API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Ota viestintä käyttöön"
@@ -2327,102 +2326,101 @@ msgstr "Ota viestintä käyttöön"
msgid "Enable communication with Modoboa public API"
msgstr "Ota käyttöön viestintä Modoboan julkisen API:n kanssa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Tarkista uudet versiot"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Tarkistaa automaattisesti, onko uudempi versio saatavana"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Lähetä sähköpostia, kun uusia versioita löytyy"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
"Lähetä sähköpostiviesti, joka ilmoittaa ylläpitäjille uusista versioista"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Vastaanottaja"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Uusia versioita koskevien ilmoitussähköpostiviestien vastaanottaja."
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Lähetä tilastot"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Lähetä tilastoja Modoboan julkiseen API:han (laskurit ja käytetyt "
"laajennukset)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Inaktiivisen tilin kynnysarvo"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Inaktiivisen tilin kynnysarvo"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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 ""
"Tiliä, jonka viimeisin kirjautumispäivä on suurempi kuin tämä kynnysarvo "
"(päivinä), pidetään inaktiivisena"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Ylimpien ilmoitusten tarkistusväli"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Kahden ylimmän ilmoituksen tarkistuksen välinen aika (sekunteina)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Lokitiedoston enimmäisikä"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Lokitietueen enimmäisikä päivinä"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Kohteita per sivu"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Näytettävien kohteiden määrä sivua kohti"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
"määritetty"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2577,7 +2575,7 @@ msgstr "Vaihtoehtoista sähköpostiosoitetta voidaan käyttää palautukseen."
msgid "Failed to update password: LDAP module not installed"
msgstr "Salasanan päivittäminen epäonnistui: LDAP-moduulia ei ole asennettu"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "tili"
@@ -2590,14 +2588,16 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
"Yksinkertaisella käyttäjällä '%s' on oltava voimassa oleva sähköpostiosoite"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr ""
"käyttäjätunnus ja sähköpostiosoite eivät saa erota toisistaan kentissä '%s'"
@@ -2748,15 +2748,15 @@ msgstr ""
#: core/templates/core/information.html:6
#, python-format
msgid ""
-"The password scheme %(scheme)s has been deprecated and will"
-" be removed in the next minor version. The procedure to upgrade to a "
-"stronger scheme is as follows: - Go to Parameters > "
-"General section
- Change the value of Default "
-"password scheme
- Make sure Update password scheme "
-"at login option is enabled
- Save your changes
"
-"- Logout / Login with your current account so its password gets "
-"updated
- Inform ALL your users that they must login"
-" to Modoboa to complete the operation
"
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
msgstr ""
#: core/templates/core/information.html:18
@@ -2879,8 +2879,8 @@ 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."
+"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"
@@ -2993,7 +2993,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Käyttäjä '{}' kirjautui onnistuneesti ulos"
@@ -3033,13 +3033,14 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr "Ei MX-tietuetta %s"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "Not defined"
msgid "Not resolved"
msgstr "Ei määritelty"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -3191,63 +3192,63 @@ msgstr "Virheellinen maski löydetty {}"
msgid "Not an SPF record"
msgstr "Tämä ei ole SPF-tietue"
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr "Tuntematon mekanismi {}"
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr "Tuntematon muunnin {}"
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr "Havaittu kaksoismuunnin {}"
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr "Mekanismia ei löydetty"
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr "DKIM-tietue ei kelpaa"
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr "Virheellinen tunniste {}"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr "Tietueesta ei löytynyt avainta"
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr "Väärä arvo {} tunnisteelle {}"
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr "Väärä arvo {} tunnisteelle {}:"
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr " ei kokonaisluku"
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr " pienempi kuin {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr " on suurempi kuin {}"
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr "Epäkelpo DMARC-tietue"
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr "Tuntematon tunniste {}"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr "Puuttuu vaadittu p-tunniste"
@@ -3281,8 +3282,8 @@ 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."
+"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."
@@ -3373,8 +3374,8 @@ 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
@@ -3393,9 +3394,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr "Automaattinen asetusten määrittäminen"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3423,11 +3424,11 @@ msgstr "LDAP-tilin luominen epäonnistui: {}"
msgid "Failed to update LDAP account: {}"
msgstr "LDAP-tilin päivittäminen epäonnistui: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "LDAP-tilin poistaminen epäonnistui: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "LDAP-tilin poistaminen käytöstä epäonnistui: {}"
@@ -3439,20 +3440,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Ota käyttöön viestintä Modoboan julkisen API:n kanssa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Yhteyttä tietokantaan %s ei ole määritetty"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Lupa evätty: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Lupa evätty"
@@ -3475,7 +3478,7 @@ msgid "Failed to update password: {}"
msgstr "Salasanan päivitys epäonnistui: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Aihe"
@@ -3493,8 +3496,8 @@ msgstr ""
"Ota käyttöön tai poista käytöstä järjestelmänvalvojakohtaiset rajoitukset"
#: 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
msgid "Domain admins"
msgstr "Verkkotunnuksen ylläpitäjät"
@@ -3503,9 +3506,9 @@ 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)"
+"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:39 limits/app_settings.py:175
msgid ""
@@ -3517,8 +3520,8 @@ msgstr ""
#: 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)"
+"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)"
@@ -3561,8 +3564,8 @@ msgstr "Ota käyttöön tai poista käytöstä verkkotunnuskohtaiset rajoitukset
#: 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)"
+"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)"
@@ -3580,13 +3583,13 @@ 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)"
+"Uuden verkkotunnuksen sallittujen postilaatikoiden 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)"
+"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)"
@@ -3694,7 +3697,7 @@ msgstr "Näytä harmaalle listalle merkityt viestit"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Kovien ja pehmeiden hylkäysten erottaminen toisistaan (greylisting)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Tilastot"
@@ -3702,63 +3705,63 @@ msgstr "Tilastot"
msgid "Failed to locate rrdtool binary."
msgstr "Rrdtoolsin binääritiedostoa ei löydy."
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Keskimääräinen liikenne (msgs/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "lähetetyt viestit"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "vastaanotetut viestit"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "palautuneet viestit"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "hylätyt viestit"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "virusviestit"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "roskapostiviestit"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "harmaalla listalla olevat viestit"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Keskimääräinen normaali liikennekoko (tavua/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "vastaanotettu koko"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "lähetetty koko"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Postiliikenne"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Keskimääräinen tilin luominen (tili/tunti)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Uudet tilit"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Tilit"
@@ -3774,39 +3777,39 @@ msgstr "Etsi verkkotunnusta"
msgid "Apply"
msgstr "Käytä"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Tilastoja ei ole saatavilla"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Päivä"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Viikko"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Kuukausi"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Vuosi"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Mukautettu"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Tuntematon graafinen sarja"
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr "Tuntematon verkkotunnus %s"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Väärä mukautettu ajanjakso"
@@ -4057,11 +4060,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr "Päivittäinen lähetysraja saavutettu"
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr "[modoboa] Lähetysraja saavutettu"
@@ -4070,37 +4073,37 @@ msgstr "[modoboa] Lähetysraja saavutettu"
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:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Tämä koodi on virheellinen"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4108,25 +4111,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Tilin automaattinen poistaminen"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4134,17 +4137,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Verkkotunnuksen oletuskiintiö"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4153,14 +4156,14 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
#, fuzzy
#| msgid "spam messages"
msgid "Auto-reply message"
msgstr "roskapostiviestit"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -4190,7 +4193,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4218,7 +4221,7 @@ msgstr "kohde-isännän portti"
msgid "verify recipients"
msgstr "tarkistaa vastaanottajat"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4249,24 +4252,28 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "LDAP-asetukset"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
#, fuzzy
#| msgid "IP address of your Modoboa server"
msgid "Address of your IMAP server"
msgstr "Modoboa-palvelimen IP-osoite"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4376,42 +4383,38 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
msgstr "Luo aliaksia"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "hylätyt viestit"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
msgstr "Luo aliaksia"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
msgstr "Luo aliaksia"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4587,8 +4590,8 @@ msgstr "Vanha salasana"
#: templates/registration/twofactor_code_verify.html:35
msgid ""
-"Enter the code from the two-factor app on your mobile device. If you've lost"
-" your device, you may enter one of your recovery codes."
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
msgstr ""
#: templates/registration/twofactor_code_verify.html:42
@@ -4622,14 +4625,192 @@ msgstr "palvelu"
msgid "next hop"
msgstr "seuraava hyppy"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "LDAP-asetukset"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "IP address of your Modoboa server"
+msgid "Address of your SMTP server"
+msgstr "Modoboa-palvelimen IP-osoite"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Käytä suojattua yhteyttä"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "IP address of your Modoboa server"
+msgid "Listening port of your SMTP server"
+msgstr "Modoboa-palvelimen IP-osoite"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Tunnistusmenetelmä"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "LDAP-todennusasetukset"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr ""
+"Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
+"määritetty"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Näytettävien kohteiden määrä sivua kohti"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr "Luo aliaksia"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "Luo aliaksia"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "hylätyt viestit"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "lähetetyt viestit"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr ""
+"Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
+"määritetty"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "LDAP-tilin luominen epäonnistui: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "Luo aliaksia"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Tunnistusmenetelmä"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "LDAP-todennusasetukset"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Hakemistoa ei löydy."
diff --git a/modoboa/locale/fr/LC_MESSAGES/django.po b/modoboa/locale/fr/LC_MESSAGES/django.po
index 457e30ecf..966ad5a8d 100644
--- a/modoboa/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/locale/fr/LC_MESSAGES/django.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: 2011-07-01 08:15+0000\n"
"Last-Translator: Antoine Nguyen , 2016-2017,2020,2023-2024\n"
"Language-Team: French (http://app.transifex.com/tonio/modoboa/language/fr/)\n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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."
@@ -33,27 +33,27 @@ 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 "
"signifie pas de quota."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Permission refusée."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -61,22 +61,22 @@ msgstr "Permission refusée."
msgid "This field is required"
msgstr "Ce champ est requis"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Liste des domaines administrés (revendeurs et administrateurs de domaine "
"seulement)."
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Non autorisé pour ce rôle."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Doit être égale au champ full_address dans mailbox"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -85,23 +85,23 @@ msgstr "Doit être égale au champ full_address dans mailbox"
msgid "This field is required."
msgstr "Ce champ est requis."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Le domaine local {} n'existe pas"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Une liste de destinataire"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr "Cet alias existe déjà"
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Vous n'avez pas accès à ce domaine."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Vous n'avez pas accès à cette boîtes aux lettres."
@@ -126,29 +126,29 @@ msgstr ""
"impossible de trouver openssl, veuillez vous assurer vous qu'il est "
"installé."
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
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:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
"Veuillez désactiver la migration IMAP avant de désactiver cette option"
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Définissez au moins un réseau / une adresse autorisé"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
"La partie gauche d'un courriel ne peut pas faire plus de 64 caractères."
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
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:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr "Statut inconnu"
@@ -169,26 +169,26 @@ msgstr "Aucun ID d'alarme fourni"
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:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domaines"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Activer la vérification des MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
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:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "MX(s) valide(s)"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -197,11 +197,11 @@ msgstr ""
"respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la "
"respecte pas."
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Les nouveaux domaines doivent utiliser un ou plusieurs MX autorisés"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -209,73 +209,73 @@ 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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr "Activer les tests IPv6"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr "Vérifier si la configuration du MX pour IPv6 est correcte"
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Activer les tests SPF"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Activer les tests DKIM"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
"Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un "
"enregistrement DNS valide"
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Activer les tests DMARC"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Activer les tests d'autoconfiguration"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
"Vérifie que chaque domaine a les enregistrements nécessaires à "
"l'autoconfiguration"
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Activer les vérifications DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Vérifie chaque domaine auprès des fournisseurs de DNSBL"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Serveur DNS personnalisé"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
"Utiliser un serveur DNS personnalisé à la place de la configuration par "
"défaut du serveur"
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Répertoire de stockage des clés DKIM"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
@@ -285,19 +285,19 @@ msgstr ""
"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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Taille par défaut d'une clé DKIM"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Quota de domaine par défaut"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -305,11 +305,11 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Limite d'envoi par défaut du domaine"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
@@ -317,7 +317,7 @@ 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:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -325,11 +325,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Boites"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Gérer les boites sur le système de fichiers"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -337,7 +337,7 @@ 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:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -351,11 +351,11 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Limite d'envoi par défaut d'une boîte aux lettres"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -363,32 +363,32 @@ 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:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Suppression automatique de compte"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en "
"même temps"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Création automatique de domaine/boite aux lettres"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid ""
"Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Créer un domaine et une boite aux lettres quand un compte est créé "
"automatiquement."
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
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:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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 "
@@ -398,7 +398,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Répertoire introuvable."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
@@ -406,7 +406,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administration"
@@ -589,8 +589,8 @@ msgstr "Domaine(s) que cet utilisateur administre"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Général"
@@ -676,7 +676,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "alias de domaine"
@@ -694,7 +694,7 @@ msgstr "Répertoire de stockage des clés DKIM non configuré"
msgid "You can't define an unlimited quota."
msgstr "Vous ne pouvez pas définir de quota illimité"
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domaine"
@@ -806,28 +806,28 @@ msgstr ""
"Cocher cette option si les mots de passe contenus dans votre fichier ne sont"
" pas chiffrés"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, 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:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "La boite {} existe déjà"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "L'import du compte a échoué (%s): mauvais quota"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Transfert"
@@ -864,8 +864,9 @@ 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:256
-#, python-format
-msgid "DNS name is too long: %s"
+#, fuzzy
+#| msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr "Le nom DNS est trop long : %s"
#: admin/lib.py:287
@@ -883,18 +884,18 @@ msgstr "L'objet existe déjà : %s"
msgid "%d objects imported successfully"
msgstr "%d objets importés avec succès"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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"
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -908,11 +909,11 @@ msgstr ""
"Le chemin d'accès DKIM n'est pas modifiable (soit à cause d'un problème de "
"permission, soit parce que le répertoire n'existe pas)"
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr "Echec lors de la génération de la clé privée DKIM"
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr "Echec lors de la génération de la clé publique DKIM"
@@ -1030,16 +1031,16 @@ msgstr ""
msgid "Key length"
msgstr "Taille de la clé"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Ligne invalide"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr "{} : aucun enregistrement MX autorisé n'a été trouvé pour ce domaine"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr "{} : valeur incorrecte de quota pour ce domaine"
@@ -1267,6 +1268,7 @@ msgstr "Alarms ouvertes pour"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Date"
@@ -1354,7 +1356,7 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Non"
@@ -1362,7 +1364,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:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Oui"
@@ -1412,7 +1414,7 @@ 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:117 postfix_autoreply/forms.py:20
+#: lib/templatetags/lib_tags.py:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "De"
@@ -1420,7 +1422,7 @@ msgstr "De"
#: admin/templates/admin/messages_log_headers.html:5
#: lib/templatetags/lib_tags.py:118
msgid "To"
-msgstr "À"
+msgstr "A"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1451,7 +1453,7 @@ msgstr "Transférer automatiquement les messages vers une autre adresse"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Mettre à jour"
@@ -1588,7 +1590,7 @@ msgid "Message logs"
msgstr "Historique des messages"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importer"
@@ -1662,11 +1664,11 @@ msgstr[0] "Alias supprimé"
msgstr[1] "Alias supprimés"
msgstr[2] "Alias supprimés"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Enregistrements MX de {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Résumé DNSBL pour {}"
@@ -1697,11 +1699,11 @@ msgstr[0] "Compte supprimé"
msgstr[1] "Comptes supprimés"
msgstr[2] "Comptes supprimés"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importer des domaines"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importer des identités"
@@ -1751,7 +1753,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Autoriser cet administrateur à accéder aux boites des utilisateurs"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Divers"
@@ -1764,8 +1766,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1885,7 +1886,7 @@ 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:535
#: core/app_settings.py:543 core/app_settings.py:551
-#: postfix_autoreply/forms.py:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Syntaxe invalide"
@@ -1897,8 +1898,8 @@ msgstr "Nombre invalide de tours"
msgid "This code is invalid"
msgstr "Ce code n'est pas valide"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
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 "
@@ -1920,32 +1921,39 @@ msgstr ""
msgid "Address book"
msgstr "Carnet d'adresse"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Authentification"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Type d'authentification"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Le backend utilisé pour l'authentification"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Méthode de chiffrement par défaut"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Méthode utilisée pour chiffrer les mots de passe des boites aux lettres"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Tours"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1953,38 +1961,38 @@ msgstr ""
"Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit "
"être compris entre 1000 et 999999999 inclue."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
"Mettre à jour la méthode de chiffrement du mot de passe à la connexion"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Mot de passe par défaut"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Mot de passe par défaut pour les comptes créés automatiquement."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Taille d'un mot de passe aléatoire"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Taille des mots de passe générés aléatoirement."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "URL de service de mise à jour du mot de passe"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -1994,31 +2002,31 @@ msgstr ""
" 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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Annonce pour la récupération de mot de passe"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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"
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Activer la récupération de mot de passe par SMS"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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"
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "Fournisseur SMS"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
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"
@@ -2027,75 +2035,78 @@ msgstr ""
msgid "LDAP settings"
msgstr "Paramètres LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Adresse du serveur"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Port utilisé par le serveur"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Le port TCP utilisé par le serveur LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Activer le serveur secondaire (secours)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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"
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Adresse du serveur secondaire"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Port du serveur secondaire"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Utiliser une connexion sécurisée"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Groupes administrateurs"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2104,37 +2115,37 @@ msgstr ""
"qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les "
"groupes."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Type de groupe"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Le type de groupe LDAP à utiliser avec votre annuaire."
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Base de recherche des groupes"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Attribut 'mot de passe'"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "L'attribut utilisé pour stocker les mots de passe"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "Paramètres d'authentification LDAP"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Méthode d'authentification"
@@ -2146,17 +2157,17 @@ msgstr "Recherche et connexion"
msgid "Direct bind"
msgstr "Connexion directe"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Choisir la méthode d'authentification à utiliser"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "ND de connexion"
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2164,37 +2175,37 @@ msgstr ""
"Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser "
"vide pour une connexion anonyme"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Mot de passe de connexion"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Base de recherche des utilisateurs"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtre de recherche"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2202,11 +2213,11 @@ msgstr ""
"Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être "
"valide, il doit être entouré de parenthèses."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Modèle de nom distinctif utilisateur"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2215,26 +2226,26 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "Paramètres de synchronisation LDAP"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Activer l'export LDAP"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
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"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
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:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2242,11 +2253,11 @@ msgstr ""
"Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement "
"il sera désactivé."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Modèle des DN de compte"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2255,88 +2266,88 @@ 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:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Activer l'import LDAP"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
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"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Attribut nom d'utilisateur"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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é."
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Activer la synchronisation LDAP pour Dovecot"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
"Les paramètres d'authentification LDAP seront appliqués à la configuration "
"de Dovecot."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Fichier de configuration Dovecot pour LDAP"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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"
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Tableau de bord"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Flux RSS personnalisé"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Afficher un flux RSS personnalisé aux revendeurs et administrateurs de "
"domaine"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Masquer le widget des fonctionnalités"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Masquer le widget des fonctionnalités pour les revendeurs et les "
"administrateurs de domaine"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notifications"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Adresse d'envoi"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Adresse utilisée pour envoyer les notifications."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "API publique"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Activer la communication"
@@ -2344,49 +2355,49 @@ msgstr "Activer la communication"
msgid "Enable communication with Modoboa public API"
msgstr "Activer la communication avec l'API publique de Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Vérifier les nouvelles versions"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Vérifie automatiquement si une nouvelle version est disponible"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Envoyer un email quand de nouvelles versions sont trouvées"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
"Envoyer un email pour notifier les administrateurs à propos des nouvelles "
"versions"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Destinataire"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Destinataire des emails de notification pour les nouvelles versions"
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Envoyer des statistiques"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr "Activer le suivi des comptes inactifs"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account"
" is considered inactive if the user hasn't logged in"
@@ -2394,11 +2405,11 @@ 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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Seuil des comptes inactifs"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2406,40 +2417,40 @@ msgstr ""
"Un compte avec une date de dernière connexion antérieure à ce seuil sera "
"considéré comme inactif"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Intervalle de vérification des notifications"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalle entre deux vérifications de notification (en secondes)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Age maximal d'un enregistrement du journal"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
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:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Eléments par page"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Nombre d'éléments affichés par page"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Redirection par défaut"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
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"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr "LDAP"
@@ -2597,7 +2608,7 @@ 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é"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "compte"
@@ -2610,13 +2621,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "L'utilisateur simple '%s' doit avoir une adresse email valide"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "Les champs username et email de '%s' ne doivent pas différer"
#: core/password_validation.py:25
@@ -3040,7 +3053,7 @@ msgstr ""
"Le paramètre de hash du mot de passe ne correspond pas. Mise à jour %s du "
"mot de passe"
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Utilisateur '{}' déconnecté avec succès"
@@ -3078,11 +3091,12 @@ msgstr "DMARC"
msgid "Show DMARC report for {}"
msgstr "Afficher le rapport DMARC pour {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr "Non résolu"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Aucun"
@@ -3218,63 +3232,63 @@ msgstr "Masque incorrect trouvé {}"
msgid "Not an SPF record"
msgstr "Ce n'est pas un enregistrement SPF"
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr "Mécanisme inconnu {}"
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr "Modificateur inconnu {}"
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr "Modificateur dupliqué {} trouvé"
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr "Aucun mécanisme trouvé"
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr "Ce n'est pas un enregistrement DKIM"
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr "Tag incorrect {}"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr "Pas de clé trouvée dans l'enregistrement"
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr "Mauvaise valeur {} pour le tag {}"
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr "Mauvaise valuer {} pour le tag {} :"
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr " ce n'est pas un entier"
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr " inférieur à {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr " supérieur à {}"
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr "Ce n'est pas un enregistrement DMARC"
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr "Tag inconnu {}"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr "Tag obligatoire p introuvable"
@@ -3413,9 +3427,10 @@ msgstr "Paramètres de filtragre OfflineIMAP"
msgid "IMAP Migration"
msgstr "Migration IMAP"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Echec lors de la connexion au serveur IMAP : %s"
#: imap_migration/checks.py:12
@@ -3445,11 +3460,11 @@ msgstr "Impossible de créer le compte LDAP : {}"
msgid "Failed to update LDAP account: {}"
msgstr "Impossible de mettre à jour le compte LDAP : {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Impossible de supprimer le compte LDAP : {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Impossible de désactiver le compte LDAP : {}"
@@ -3460,20 +3475,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Impossible de communiquer avec l'API : %s"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Connexion à la base de données %s non configurée"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Permission refusée : %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Permission refusée"
@@ -3496,7 +3513,7 @@ msgid "Failed to update password: {}"
msgstr "Impossible de mettre à jour le mot de passe : {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Sujet"
@@ -3716,7 +3733,7 @@ msgstr "Afficher les messages greylistés"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Différencie les rejets en douceur des rejets durs (greylisting)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistiques"
@@ -3724,63 +3741,63 @@ msgstr "Statistiques"
msgid "Failed to locate rrdtool binary."
msgstr "Impossible de trouver le binaire rrdtool"
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Trafic moyen (msgs/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "messages envoyés"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "messages reçus"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "messages non remis"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "messages rejetés"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "messages de type virus"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "messages de type spam"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "Messages greylistés"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Taille moyenne du trafic normal (octets/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "taille reçue"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "taille envoyée"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Trafic messagerie"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Moyenne des créations de compte (compte/heure)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Nouveaux comptes"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Comptes"
@@ -3796,39 +3813,39 @@ msgstr "Chercher un domaine"
msgid "Apply"
msgstr "Appliquer"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Aucune statistique disponible"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Jour"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Semaine"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Mois"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Année"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Personnalisée"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Jeu de graphiques inconnu"
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr "Domaine inconnu"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Mauvaise période personnalisée"
@@ -4077,11 +4094,11 @@ msgstr ""
"Echec lors de la création du fichier PDF_credentials. Veuillez vérifier les "
"permissions et le chemin d'accès."
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr "Limite d'envoi quotidienne atteinte"
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr "[modoboa] Limite d'envoi atteinte"
@@ -4091,37 +4108,37 @@ msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
"Limite quotidienne d'envoi du %(ltype)s suivant a été atteinte : %(name)s."
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr "Cette date est dépassée"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr "Doit être supérieure à la date de début"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Timeout de réponse automatique"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Sujet par défaut"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
"Sujet par défaut utilisé quand un message de réponse automatique est crée "
"automatiquement"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4132,27 +4149,27 @@ msgstr ""
"l'utilisateur "
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr "Réponses automatiques"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
"Activez votre réponse automatique à partir de cette date. Format : YYYY-MM-"
"DD HH:mm:ss"
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Jusqu'au"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
"Activez cette réponse automatique jusqu'à cette date. Format : YYYY-MM-DD "
"HH:mm:ss"
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4163,15 +4180,15 @@ msgstr ""
"qui seront automatiquement remplacées par les valeurs appropiées : %(name)s,"
" %(fromdate)s, %(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Je suis absent"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr "Contenu par défaut"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4184,12 +4201,12 @@ msgstr ""
"Cordialement,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr "Message de réponse automatique"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Réponse automatique"
@@ -4218,7 +4235,7 @@ msgid "Define a message to automatically send when you are off"
msgstr ""
"Définissez un message à enoyer automatiquement lorsque vous êtes absent"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Message de réponse automatique mis à jour avec succès."
@@ -4246,7 +4263,7 @@ msgstr "Port de l'hôte cible"
msgid "verify recipients"
msgstr "Vérifier les destinataires"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr "Le filtre %s existe déjà"
@@ -4272,18 +4289,22 @@ msgid "Use the STARTTLS extension"
msgstr "Utiliser l'extension STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr "Paramètres IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr "Adresse de votre serveur IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr "Utiliser une connexion sécurisée pour accéder au serveur IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr "Port d'écoute de votre serveur IMAP"
@@ -4371,33 +4392,29 @@ msgstr "Mode éditeur"
msgid "Select the mode you want the editor to work in"
msgstr "Sélectionnez le mode de fonctionnement de l'éditeur"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
-msgstr "Dossier poubelle"
+msgstr "Dossier 'poubelle'"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
-msgstr "Dossier dans lequel vont les messages supprimés"
+msgstr "Dossier de destination des messages supprimés"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
-msgstr "Dossier envoyé"
+msgstr "Dossier 'envoyé'"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr "Dossier dans lequel vont les copies de messages envoyés"
+msgstr "Dossier de destination des copies de messages envoyés"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
-msgstr "Dossier brouillon"
+msgstr "Dossier 'brouillons'"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr "Dossier dans lequel vont les brouillons"
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Echec lors de la récupération du séparateur de hierarchie"
+msgstr "Dossier de destination des brouillons"
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
@@ -4604,3 +4621,185 @@ msgstr "service"
#: transport/models.py:17
msgid "next hop"
msgstr "saut suivant"
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Taille maximale d'une pièce jointe"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+"Taille maximum d'une pièce jointe en octets (ou Ko, Mo, Go si précisé)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "IMAP settings"
+msgid "SMTP settings"
+msgstr "Paramètres SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Adresse de votre serveur SMTP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Mode de connexion sécurisé"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Utiliser une connexion sécurisée pour accéder au serveur SMTP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Port d'écoute de votre serveur SMTP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Authentification requise"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "The backend used for authentication"
+msgid "Server needs authentication"
+msgstr "Le serveur nécessite une authentification"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Afficher"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Mode d'affichage par défaut d'un message"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Le mode utilisé par défaut pour afficher un message"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Activer l'affichage des liens HTML"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Activer/Désactiver l'affichage des liens HTML"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Nombre d'emails affichés par page"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Définit le nombre maximal de messages affichés dans une page"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Taux de rafraichissement de la liste"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Largeur de conteneur de dossier"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "La largeur du conteneur de la liste des dossiers"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Folders"
+msgstr "Dossiers"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Sent folder"
+msgid "Junk folder"
+msgstr "Dossier pourriel"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "Folder where deleted messages go"
+msgid "Folder where junk messages should go"
+msgstr "Dossier dans lequel les pourriels vont"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Composer des messages"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Editeur par défaut"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "L'éditeur a utiliser par défaut pour écrire un message"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Texte de signature"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Signature personnalisée"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Impossible de supprimer la pièce jointe :"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Impossible de récuperer le séparateur de hiérarchie"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Boîte de réception"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Drafts folder"
+msgid "Drafts"
+msgstr "Brouillons"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Spam"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Messages envoyés"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Corbeille"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Pièce jointe trop grosse (limite : %s)"
diff --git a/modoboa/locale/hu/LC_MESSAGES/django.po b/modoboa/locale/hu/LC_MESSAGES/django.po
index 7aabc7dfc..f3973a22d 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,31 +18,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -50,20 +50,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -72,23 +72,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -111,27 +111,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -152,137 +152,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -290,17 +290,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -311,37 +311,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -349,13 +349,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -521,8 +521,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -600,7 +600,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -618,7 +618,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -725,28 +725,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -783,8 +783,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -802,16 +801,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -822,11 +821,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -942,16 +941,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1174,6 +1173,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1259,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1267,7 +1267,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1317,7 +1317,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1356,7 +1356,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1470,7 +1470,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1543,11 +1543,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1576,11 +1576,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1622,7 +1622,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1635,8 +1635,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1743,7 +1742,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1755,7 +1754,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1771,92 +1770,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1864,107 +1868,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1976,170 +1983,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2147,92 +2154,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2382,7 +2389,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2395,13 +2402,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2774,7 +2779,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2810,11 +2815,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2950,63 +2956,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3138,9 +3144,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3166,11 +3172,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3181,20 +3187,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3217,7 +3221,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3413,7 +3417,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3421,63 +3425,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3493,39 +3497,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3748,11 +3752,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3761,33 +3765,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3795,23 +3799,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3819,15 +3823,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3836,12 +3840,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3869,7 +3873,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3897,7 +3901,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3923,18 +3927,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4022,34 +4030,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4237,3 +4241,148 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/it/LC_MESSAGES/django.po b/modoboa/locale/it/LC_MESSAGES/django.po
index bf2ee3090..67176bd89 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,7 +21,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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."
@@ -29,28 +29,28 @@ 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Spazio massimo predefinito in MB applicato alle caselle di posta. Un valore "
"0 indica nessun limite."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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"
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Permesso negato."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -58,22 +58,22 @@ msgstr "Permesso negato."
msgid "This field is required"
msgstr "Questo campo è obbligatorio"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Non consentito per questo ruolo."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Deve essere uguale a full_address della casella di posta"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -82,25 +82,25 @@ msgstr "Deve essere uguale a full_address della casella di posta"
msgid "This field is required."
msgstr "Questo campo è obbligatorio."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Il dominio locale {} non esiste"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Una lista di destinatari"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Non hai accesso a questo dominio"
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Non hai accesso a questa casella di posta."
@@ -123,29 +123,29 @@ msgstr "Dev'essere un intero positivo"
msgid "openssl not found, please make sure it is installed."
msgstr "openssl non trovato, assicurarsi che sia installato."
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Definire almeno una rete / indirizzo autorizzato"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, fuzzy
#| msgid "A mailbox is required"
msgid "A mailbox is required to create aliases."
msgstr "É necessaria una casella"
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -168,26 +168,26 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domini"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Abilita i controlli MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "Verifica che ogni dominio abbia un record MX valido"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "MX validi"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -195,11 +195,11 @@ 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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Nuovi domini devono utilizzare MX autorizzati"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -207,85 +207,85 @@ msgstr ""
"Impedisci la creazione di un nuovo dominio se il suo record MX non utilizza "
"uno degli indirizzi definiti."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable IPV6 checks"
msgstr "Abilita i controlli DNS"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable SPF checks"
msgstr "Abilita i controlli DNS"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
#, 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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DKIM checks"
msgstr "Abilita i controlli MX"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
#, 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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DMARC checks"
msgstr "Abilita i controlli MX"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable autoconfig checks"
msgstr "Abilita i controlli MX"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
#, 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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Abilita i controlli DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Verifica ciascun dominio sui principali provider DNSBL"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "DNS server custom"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Cartella di salvataggio delle chiavi DKIM"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
@@ -295,19 +295,19 @@ msgstr ""
"salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e"
" che non sia leggibile da altri."
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Lunghezza predefinita delle chiavi DKIM"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Quota predefinita per il domini"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -315,19 +315,19 @@ msgstr ""
"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
"Un valore 0 implica nessuna quota."
-#: admin/app_settings.py:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "Quota predefinita per il domini"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -335,11 +335,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Caselle di posta"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Gestione delle caselle di posta nel filsystem"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -347,7 +347,7 @@ msgstr ""
"Rinomina o rimuovi le caselle di posta nel filesystem quando vengono "
"rinominate o cancellate in Modoboa "
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -365,43 +365,43 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default mailbox quota"
msgid "Default mailbox sending limit"
msgstr "Dimensione massima predefinita per le mailbox"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Rimozione automatica dell'account"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Quando una casella postale viene rimossa rimuovi anche l'account associato"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Creazione automatica del domini/casella di posta elettronica"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Crea un alias quando una mailbox viene rinominata"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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."
@@ -410,7 +410,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Cartella non trovata."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -422,7 +422,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Amministrazione"
@@ -605,8 +605,8 @@ msgstr "Dominio(i) amministrato(i) dall'utente"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Generale"
@@ -693,7 +693,7 @@ msgstr ""
"essere espresso in KB, MB (predefinito) o GB. Il valore 0 indica nessun "
"limite."
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "alias del dominio"
@@ -711,7 +711,7 @@ msgstr "Cartella di salvataggio per le chiavi DKIM non configurata."
msgid "You can't define an unlimited quota."
msgstr "Non puoi definire uno spazio illimitato."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "dominio"
@@ -822,28 +822,28 @@ msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Seleziona questa opzione se le password contenute nel file non sono criptate"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importazione dell'account fallito (%s): il dominio non esiste"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "La La casella di posta {} esiste già"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importazione account fallito(%s): valore della quota errato"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Inoltra"
@@ -884,8 +884,7 @@ msgstr ""
" %s "
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -903,16 +902,16 @@ msgstr "L'oggetto esiste già: %s"
msgid "%d objects imported successfully"
msgstr "%d oggetti importati correttamente"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -924,11 +923,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1053,18 +1052,18 @@ msgstr ""
msgid "Key length"
msgstr "Lunghezza della chiave"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Riga non valida"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1302,6 +1301,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Data"
@@ -1393,7 +1393,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "No"
@@ -1401,7 +1401,7 @@ msgstr "No"
msgid "Generate new key"
msgstr "Genera una nuova chiave"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Si"
@@ -1451,9 +1451,9 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
-msgstr "Da"
+msgstr ""
#: admin/templates/admin/domains_log_headers.html:5
#: admin/templates/admin/messages_log_headers.html:5
@@ -1490,7 +1490,7 @@ msgstr "Inoltra automaticamente le e-mail ad un altro indirizzo"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Aggiorna"
@@ -1627,7 +1627,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importa"
@@ -1703,11 +1703,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias eliminato"
msgstr[1] "Alias eliminati"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Record MX di {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Sommario DNSBL per {}"
@@ -1736,11 +1736,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Account cancellato"
msgstr[1] "Account cancellati"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importa domini"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Identità di importazione"
@@ -1792,7 +1792,7 @@ msgstr ""
"utenti"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Varie"
@@ -1805,8 +1805,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1928,7 +1927,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Sintassi errata"
@@ -1940,8 +1939,8 @@ msgstr "Numero di cicli non valido"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1961,32 +1960,39 @@ msgstr ""
msgid "Address book"
msgstr "Rubrica"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Autenticazione"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Tipo di autenticazione"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Il backend utilizzato per l'autenticazione"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Schema password predefinito"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Schema utilizzato per la criptazione delle password delle caselle di posta"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Cicli"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1994,68 +2000,68 @@ msgstr ""
"Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). Deve "
"essere compreso tra 1000 e 999999999."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password scheme at login"
msgstr "Aggiorna lo schema di password"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Password predefinita"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Password predefinita per gli account creati automaticamente."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Lunghezza della password casuale"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Lunghezza delle password generate casualmente"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password service URL"
msgstr "Aggiorna lo schema di password"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2063,81 +2069,84 @@ msgstr ""
msgid "LDAP settings"
msgstr "Impostazioni LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Indirizzo del server"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Porta del server"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Il numero della porta TCP utilizzata dal server LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Indirizzo del server"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
#, 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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Porta del server"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
#, 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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "Utilizza connessione sicura"
+msgstr "Usa una connessione sicura"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Segnala se il server LDAP è una Active Directory"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Gruppi degli amministratori"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2146,39 +2155,39 @@ msgstr ""
"amministratori di dominio. Utilizza il carattere ';' per separare valori "
"multipli."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Tipo di gruppo"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Il tipo di gruppo LDAP da utilizzare nella Directory"
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Base di ricerca per i gruppi"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Attributo della password"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "L'attributo utilizzato per memorizzare le password degli utenti"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Metodo di autenticazione"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Metodo di autenticazione"
@@ -2190,17 +2199,17 @@ msgstr "Cerca e collega"
msgid "Direct bind"
msgstr "Collegamento diretto"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Scegli il metodo di autenticazione da usare"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Collega 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2208,37 +2217,37 @@ msgstr ""
"DN (Nome distinto univoco) da usare quando ci si collega al server LDAP. "
"Lasciare vuoto per un collegamento anonimo"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Password del collegamento"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Base di ricerca per gli utenti"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtro ricerca"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2246,11 +2255,11 @@ msgstr ""
"Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere "
"valida deve essere racchiusa tra parentesi."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Modello DN dell'utente"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2259,38 +2268,38 @@ msgstr ""
"Il modello utilizzato per comporre il DN degli utenti. Deve contenere un "
"segnaposto (p.es. %(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "Impostazioni LDAP"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Modello DN dell'utente"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -2302,81 +2311,81 @@ msgstr ""
"Il modello utilizzato per comporre il DN degli utenti. Deve contenere un "
"segnaposto (p.es. %(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Attributo della password"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
#, fuzzy
#| msgid "Enable communication"
msgid "Enable Dovecot LDAP sync"
msgstr "Abilita comunicazione"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "RSS feed custom"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
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:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Nascondi il widget delle feature"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notifiche"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Indirizzo di invio"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Indirizzo email utilizzato per inviare le notifiche"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "API pubblica"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Abilita comunicazione"
@@ -2384,59 +2393,59 @@ msgstr "Abilita comunicazione"
msgid "Enable communication with Modoboa public API"
msgstr "Abilita la comunicazione con l'API pubblica di modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Controlla nuove versioni"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Controlla automaticamente se è disponibile una nuova versione"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Destinatario"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Invia statistiche"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Invia statistiche all'API pubblica di modoboa (contatori ed estensioni "
"utilizzate)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Soglia account inattivo"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Soglia account inattivo"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2444,41 +2453,41 @@ msgstr ""
"Un account con una data di ultimo accesso più vecchia di questa soglia (in "
"giorni) verrà considerato inattivo"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Intervallo notifiche"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
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:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Età massima dei log"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "La persistenza massima in giorni dei log"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Elementi per pagina"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Numero degli elementi visualizzati in ciascuna pagina"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Reindirizzamento principale predefinito"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"Redirezione predefinita utilizzata quando non è specificata alcuna "
"applicazione"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2639,7 +2648,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Aggiornamento della password fallito: il modulo LDAP non è installato"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "account"
@@ -2652,13 +2661,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "L'utente '%s' deve avere un indirizzo email valido"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "I campi nome utente e email di '%s' devono avere lo stesso valore"
#: core/password_validation.py:25
@@ -3062,7 +3073,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Utente '{}' disconnesso"
@@ -3100,11 +3111,12 @@ msgstr "Strumenti DMARC"
msgid "Show DMARC report for {}"
msgstr "Mostra DMARC report per {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Nessuno"
@@ -3244,63 +3256,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3446,9 +3458,10 @@ msgstr "Impostazioni OfflineIMAP"
msgid "IMAP Migration"
msgstr "Migrazione IMAP"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Connessione al server IMAP fallita: %s"
#: imap_migration/checks.py:12
@@ -3474,11 +3487,11 @@ msgstr "Impossibile creare un account LDAP: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Impossibile aggiornare l'account LDAP: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Impossibile eliminare l'account LDAP: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Impossibile disabilitare l'account LDAP: {}"
@@ -3490,20 +3503,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Abilita la comunicazione con l'API pubblica di modoboa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "La connessione con il database %s non è configurata"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Accesso negato: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Accesso negato"
@@ -3526,7 +3541,7 @@ msgid "Failed to update password: {}"
msgstr "Aggiornamento della password fallito: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Oggetto"
@@ -3748,7 +3763,7 @@ msgstr "messaggi respinti"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistiche"
@@ -3756,71 +3771,71 @@ msgstr "Statistiche"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
#, fuzzy
msgid "Average traffic (msgs/min)"
msgstr "Dimensione del traffico normale medio"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "messaggi inviati"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "messaggi ricevuti"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "messaggi di rimbalzo"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "messaggi respinti"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
#, fuzzy
#| msgid "sent messages"
msgid "virus messages"
msgstr "messaggi inviati"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "sent messages"
msgid "spam messages"
msgstr "messaggi inviati"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
#, fuzzy
#| msgid "rejected messages"
msgid "greylisted messages"
msgstr "messaggi respinti"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
#, fuzzy
msgid "Average normal traffic size (bytes/min)"
msgstr "Dimensione del traffico normale medio"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "dimensione di ricezione"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "dimensione di spedizione"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Traffico mail"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3836,41 +3851,41 @@ msgstr "Ricerca un dominio"
msgid "Apply"
msgstr "Applica"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Non sono disponibili statistiche"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Giorno"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Settimana"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Mese"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Anno"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Impostazione grafica sconosciuta"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Impostazione grafica sconosciuta"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Periodo personalizzato sbagliato"
@@ -4120,13 +4135,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: raggiunto il limite"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4137,39 +4152,39 @@ msgstr "%s: raggiunto il limite"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Questa data è passata"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Tempo massimo della risposta automatica"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Oggetto predefinito"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr "Oggetto predefinito utilizzato nei messaggi di risposta automatica"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4179,25 +4194,25 @@ msgstr ""
"macro '%(name)s' verrà sostituita con il nome dell'utente. "
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Risposte automatiche"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Fino al"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4205,17 +4220,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Sono via"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Corpo del messaggio predefinito"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4228,14 +4243,14 @@ msgstr ""
"Distinti saluti,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Risposte automatiche"
@@ -4265,7 +4280,7 @@ msgstr "Attiva/disattiva la tua risposta automatica"
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
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Messaggio di risposta automatica aggiornato con successo."
@@ -4293,7 +4308,7 @@ msgstr "Porta dell'host di destinazione"
msgid "verify recipients"
msgstr "Verifica destinatari"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4326,22 +4341,26 @@ msgid "Use the STARTTLS extension"
msgstr "Usa l'estensione STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "Impostazioni IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
-msgstr "Indirizzo del server IMAP"
+msgstr "Indirizzo del tuo server IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr "Utilizza una connessione sicura per l'accesso al server IMAP"
+msgstr "Usa una connessione sicura per accedere al server IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr "Porta in ascolto del server IMAP"
+msgstr "Porta di ascolto del tuo server IMAP"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4391,7 +4410,7 @@ msgstr "non è"
#, fuzzy
#| msgid "Sender address"
msgid "Sender"
-msgstr "Mittente"
+msgstr "Invia"
#: sievefilters/constants.py:26
msgid "Cc"
@@ -4399,7 +4418,7 @@ msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Dimensione"
+msgstr ""
#: sievefilters/constants.py:31
#, fuzzy
@@ -4447,36 +4466,32 @@ msgstr "Modo editor"
msgid "Select the mode you want the editor to work in"
msgstr "Seleziona la modalità di lavoro che desideri per l'editor"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr "Cestino"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "Cartella dove finiscono i messaggi eliminati"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr "Inviati"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr "Cartella dove finiscono le copie dei messaggi spediti"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr "Bozze"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr "Cartella dove finiscono le bozze"
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Impossibile recuperare il delimitatore delle gerarchie"
-
#: sievefilters/lib.py:52
#, fuzzy
#| msgid "Connection to IMAP server failed: %s"
@@ -4671,7 +4686,7 @@ msgstr "Notifiche"
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Indietro"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4693,14 +4708,191 @@ msgstr "servizio"
msgid "next hop"
msgstr "prossimo salto"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Dimensione massima degli allegati"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+"Dimensione massima degli allegati in bytes (o KB, MB, GB se specificato)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Impostazioni SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Indirizzo del tuo server SMTP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Modalità di connessione sicura"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Usa una connessione sicura per accedere al server SMTP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Porta di ascolto del tuo server SMTP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "È richiesta l'autenticazione"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Il server richiede l'autenticazione"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Mostra"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Modalità di visualizzazione del messaggio predefinita"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr ""
+"La modalità di visualizzazione predefinita quando viene mostrato il "
+"messaggio"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Attiva la visualizzazione dei collegamenti HTML"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Attiva/Disattiva la visualizzazione dei collegamenti HTML"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Numero di e-mail mostrate in ogni pagina"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Imposta il numero massimo di messaggi da visualizzare in una pagina"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Frequenza di aggiornamento dell'elenco"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Larghezza del contenitore delle caselle"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "Larghezza della lista delle caselle"
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Sent folder"
+msgid "Junk folder"
+msgstr "Inviati"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Cartella dove finiscono i messaggi eliminati"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Composizione messaggi"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Editor predefinito"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "L'editor predefinito da usare quando si scrive un messaggio"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Testo signature"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Signature delle e-mail personalizzato dall'utente"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Rimozione allegato fallita: "
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Impossibile recuperare il delimitatore delle gerarchie"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Drafts folder"
+msgid "Drafts"
+msgstr "Bozze"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "L'allegato è troppo grande (limite: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Meccanismo di autenticazione"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Meccanismo di autenticazione preferito"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Cartella non trovata."
@@ -4794,9 +4986,6 @@ msgstr "prossimo salto"
#~ msgid "Filter removed"
#~ msgstr "Filtro eliminato"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Rimozione del filtro fallita"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Gruppo filtri salvato"
diff --git a/modoboa/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/locale/ja_JP/LC_MESSAGES/django.po
index 54a934225..1405e9392 100644
--- a/modoboa/locale/ja_JP/LC_MESSAGES/django.po
+++ b/modoboa/locale/ja_JP/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:
# cwatanab , 2016
# Ian Moone, 2014
@@ -12,41 +12,42 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: 2011-07-01 08:15+0000\n"
"Last-Translator: INOUE Daisuke, 2025\n"
"Language-Team: Japanese (Japan) (http://app.transifex.com/tonio/modoboa/language/ja_JP/)\n"
+"Language: ja_JP\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ja_JP\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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 "すべてのメールボックス全体の容量制限。KB、MB(デフォルト)または GB で指定します。値を 0 にすると容量制限しないことを意味します。"
+msgstr ""
+"すべてのメールボックス全体の容量制限。KB、MB(デフォルト)または GB で指定します。値を 0 にすると容量制限しないことを意味します。"
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr "メールボックスの容量制限のデフォルト値を MB で指定します。値を 0 にすると容量制限しません。"
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr "このドメインの承認済み MX レコードが見つかりません"
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr "ドメインの容量制限より大きくすることはできません"
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "権限がありません。"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -54,20 +55,20 @@ msgstr "権限がありません。"
msgid "This field is required"
msgstr "このフィールドは必須です"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "管理下ドメイン一覧 ( リセラーとドメイン管理者のみ )"
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "このロールは許可されていません。"
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "メールボックスの full_address と同じにしてください"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -76,23 +77,23 @@ msgstr "メールボックスの full_address と同じにしてください"
msgid "This field is required."
msgstr "このフィールドは必須です。"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "ローカルドメイン {} は、存在しません"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "受信者一覧"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr "このエイリアスはすでに存在します"
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "このドメインにはアクセスできません。"
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "このメールボックスにアクセスできません。"
@@ -115,27 +116,27 @@ msgstr "正の整数を入力してください"
msgid "openssl not found, please make sure it is installed."
msgstr "openssl が見つかりません。インストールを確認してください。"
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr "有効な IP アドレス ( またはネットワーク ) を入力してください"
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr "この設定を無効にする前に、IMAP 移行を無効にしてください。"
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "認証済みのネットワークかアドレスを少なくとも 1 つ以上定義してください"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr "メールアドレスの左部分を 64 文字以下にしてください。"
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr "エイリアスを作成するにはメールボックスが必要です。"
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr "不明な状態"
@@ -156,137 +157,139 @@ msgstr "アラート ID が指定されていません"
msgid "Received invalid alarm id(s)"
msgstr "無効なアラート ID を受信"
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "ドメイン"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "MX チェック有効"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "各ドメインに有効な MX レコードがあるかをチェックします"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "有効な MX"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "新しいドメインには承認済みの MX 利用を強制"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr "IPV6 チェック有効"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr "IPV6 用の MX の設定が有効かチェックします"
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "SPF チェック有効"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr "各ドメインに有効な SPF レコードがあるかをチェックします"
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "DKIM チェック有効"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr "各 DKIM 署名のあるすべてのドメインに有効な DNS レコードがあるかをチェックします"
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "DMARC チェック有効"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr "各ドメインに有効な DMARC レコードがあるかをチェックします"
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "自動構成チェック有効"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr "各ドメインに有効な自動構成のレコードがあるかをチェックします"
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "DNSBL チェック有効"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "各ドメインを主な DNSBL でチェックします"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "カスタム DNS サーバー"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr "ローカルサーバーで設定された DNS サーバーではなく、カスタム DNS サーバーを利用します"
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "DKIM キー保存ディレクトリー"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr "DKIM プライベートキーを保存するディレクトリーの絶対パス。このディレクトリーが root ユーザー所有で、外の世界からは読めないことを確認してください。"
+msgstr ""
+"DKIM プライベートキーを保存するディレクトリーの絶対パス。このディレクトリーが root "
+"ユーザー所有で、外の世界からは読めないことを確認してください。"
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "DKIM キー長のデフォルト"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr "新たに生成する DKIM キーの長さのデフォルト値です。"
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "ドメイン容量制限のデフォルト"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "ドメイン送信通数制限のデフォルト"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr "新たにドメインを作成する際、1 日間に送信可能なメッセージ数。空にすると制限しません。"
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -294,17 +297,17 @@ msgstr "新たにドメインを作成する際、1 日間に送信可能なメ
msgid "Mailboxes"
msgstr "メールボックス"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "ファイルシステムのメールボックスも操作"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr "Modoboa でメールボックスを変名・削除すると、ファイルシステム上も変名・削除する"
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -316,38 +319,38 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr "特に値をせずに新たにメールボックスを作成する際の容量制限のデフォルト値 ( MB ) 。値を 0 にすると容量制限しません。"
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "メールボックス送信通数制限のデフォルト"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr "新たにメールボックスを作成する際に設定する、1 日に送信できるメッセージ数。空にすると制限しません。"
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "自動アカウント削除"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr "メールボックスを削除すると、関連するアカウントも削除します"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "自動ドメイン・メールボックス作成"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid ""
"Create a domain and a mailbox when an account is automatically created."
msgstr "アカウントを作成するとドメインとメールボックスも自動で作成します。"
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "メールボックスの変名でエイリアスを作成"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr "メールボックスの名前を変更する際、古いアドレスをエイリアスとして作成します。"
@@ -355,13 +358,13 @@ msgstr "メールボックスの名前を変更する際、古いアドレスを
msgid "Directory not found."
msgstr "ディレクトリーが見つかりません。"
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "管理"
@@ -466,7 +469,9 @@ 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 "このメールボックスの容量制限。KB、MB ( デフォルト ) または GB で指定します。独自の値を指定するか、ドメインのデフォルト値を利用します。空にすると制限しません ( ドメイン管理者には許可されていません )。"
+msgstr ""
+"このメールボックスの容量制限。KB、MB ( デフォルト ) または GB "
+"で指定します。独自の値を指定するか、ドメインのデフォルト値を利用します。空にすると制限しません ( ドメイン管理者には許可されていません )。"
#: admin/forms/account.py:254 admin/models/domain.py:39
#: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50
@@ -492,7 +497,9 @@ msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "このメールボックスのエイリアス。入力ごとに 1 つのアドレスのみを記入します。ENTER を押すと新しい入力欄が追加されます。「すべてキャッチ」エイリアスを作成するには、ドメイン名のみ ( @domain.tls ) を入力してください。"
+msgstr ""
+"このメールボックスのエイリアス。入力ごとに 1 つのアドレスのみを記入します。ENTER "
+"を押すと新しい入力欄が追加されます。「すべてキャッチ」エイリアスを作成するには、ドメイン名のみ ( @domain.tls ) を入力してください。"
#: admin/forms/account.py:275
msgid "Sender addresses"
@@ -503,7 +510,8 @@ 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 "このアカウントへの追加の送信者アドレス。ユーザーにこのアドレス――実際にはこのアドレスが存在しなくても――を使ってメールを送信することを許可します。"
+msgstr ""
+"このアカウントへの追加の送信者アドレス。ユーザーにこのアドレス――実際にはこのアドレスが存在しなくても――を使ってメールを送信することを許可します。"
#: admin/forms/account.py:339 admin/forms/alias.py:95
#: admin/models/mailbox.py:308
@@ -527,8 +535,8 @@ msgstr "ユーザーが管理しているドメイン"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "全般"
@@ -604,9 +612,10 @@ msgstr "キー セレクター"
msgid ""
"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
"GB. A value of 0 means no quota."
-msgstr "各メールボックスの容量制限のデフォルト値。KB、MB(デフォルト)または GB で指定します。値を 0 にすると容量制限しないことを意味します。"
+msgstr ""
+"各メールボックスの容量制限のデフォルト値。KB、MB(デフォルト)または GB で指定します。値を 0 にすると容量制限しないことを意味します。"
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "ドメインエイリアス"
@@ -624,7 +633,7 @@ msgstr "DKIM キー保存ディレクトリーを設定してください"
msgid "You can't define an unlimited quota."
msgstr "容量制限を無制限に設定できません。"
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "ドメイン"
@@ -731,28 +740,28 @@ msgstr "パスワード暗号化"
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "ファイルに含まれるパスワードが暗号化されていない場合は、このオプションをチェックしてください"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "アカウントインポート失敗 ( %s ) : ドメインがありません"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "{} メールボックスはすでに存在します"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "アカウントインポート失敗 ( %s ) : 容量制限の値に誤り"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "転送"
@@ -789,8 +798,9 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr "DNS 名前解決でタイムアウトが発生し、今のところ %s の問い合わせはできません"
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+#, fuzzy
+#| msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr "DNS 名が長すぎます : %s"
#: admin/lib.py:287
@@ -808,16 +818,16 @@ msgstr "オブジェクトはすでに存在します : %s"
msgid "%d objects imported successfully"
msgstr "%d 個のオブジェクトをインポートしました"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr "CSV ファイルが UTF-8 でエンコードされていません。エンコードの推測を試みます"
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr "CSV ファイルを %(encoding)s エンコードで読んでいます"
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "%(encoding)s エンコードでは CSV ファイルをデコードできません"
@@ -828,11 +838,11 @@ msgid ""
"exist)"
msgstr "DKIM パスが書き込みできません ( 権限問題か、ディレクトリーが存在しないかのいずれかです )"
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr "DKIM プライベートキーの生成に失敗"
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr "DKIM 公開キーの生成に失敗"
@@ -948,16 +958,16 @@ msgstr "この機能を有効にすると、このドメインの DKIM キーを
msgid "Key length"
msgstr "キー長"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "行が無効"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr "{} : ドメインの承認済み MX レコードが見つかりません"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr "{} : ドメインの容量制限の値が無効です"
@@ -1181,8 +1191,9 @@ msgstr "要対応アラート : "
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
-msgstr "日付"
+msgstr "日時"
#: admin/templates/admin/domain_alarms.html:26 core/templates/core/logs.html:9
msgid "Message"
@@ -1267,7 +1278,7 @@ msgid ""
msgstr "このドメインの DKIM キーはすでに存在します。上書きしてよろしいですか?"
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "いいえ"
@@ -1275,7 +1286,7 @@ msgstr "いいえ"
msgid "Generate new key"
msgstr "新しいキーを生成"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "はい"
@@ -1308,7 +1319,7 @@ msgstr "DNS 状態"
#: admin/templates/admin/domain_headers.html:9
#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
-msgstr "操作"
+msgstr "アクション"
#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
@@ -1325,15 +1336,15 @@ msgstr "キュー 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:117 postfix_autoreply/forms.py:18
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:118
msgid "To"
-msgstr "宛先"
+msgstr "To"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1364,7 +1375,7 @@ msgstr "別のアドレスにメールを自動転送"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "更新"
@@ -1390,7 +1401,12 @@ msgid ""
"verify recipients The first element of each line is "
"mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
-msgstr "各行、以下のいずれかの形式で CSV ファイルを作成してください : - domain; ドメイン名; 容量制限; メールボックス容量制限のデフォルト値; 有効?
- domainalias; ドメインエイリアス名; 対象ドメイン; 有効?
- relaydomain; リレードメイン名; 対象ホスト名; 対象ポート; サービス; 有効?; 受信者を確認?
各行の最初の項目は、必須であり、上記の通りにする必要があります。
区切り文字に別の文字も使えます。
"
+msgstr ""
+"各行、以下のいずれかの形式で CSV ファイルを作成してください : - domain; ドメイン名; 容量制限; "
+"メールボックス容量制限のデフォルト値; 有効?
- domainalias; ドメインエイリアス名; 対象ドメイン; "
+"有効?
- relaydomain; リレードメイン名; 対象ホスト名; 対象ポート; サービス; 有効?; "
+"受信者を確認?
各行の最初の項目は、必須であり、上記の通りにする必要があります。
"
+"区切り文字に別の文字も使えます。
"
#: admin/templates/admin/import_identities_form.html:6
msgid ""
@@ -1400,7 +1416,11 @@ 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 "各行、以下のいずれかの形式で CSV ファイルを作成してください : - account; ログイン名; パスワード; 姓; 名; 有効?; グループ; アドレス; 容量制限; [, ドメイン, ...]
- alias; アドレス; 有効?; 受信者; 受信者; ...
各行の最初の項目は、必須であり、上記の通りにする必要があります。
区切り文字に別の文字も使えます。
"
+msgstr ""
+"各行、以下のいずれかの形式で CSV ファイルを作成してください : - account; ログイン名; パスワード; 姓; 名;"
+" 有効?; グループ; アドレス; 容量制限; [, ドメイン, ...]
- alias; アドレス; 有効?; "
+"受信者; 受信者; ...
各行の最初の項目は、必須であり、上記の通りにする必要があります。
"
+"区切り文字に別の文字も使えます。
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1446,7 +1466,9 @@ msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "ドメインの格付けが影響を与え、このドメインからのメールが SPAM とみなされる可能性があります。DNSBL 提供元に連絡し、検出された IP アドレスのリストからの削除を依頼する必要があります。"
+msgstr ""
+"ドメインの格付けが影響を与え、このドメインからのメールが SPAM とみなされる可能性があります。DNSBL 提供元に連絡し、検出された IP "
+"アドレスのリストからの削除を依頼する必要があります。"
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
@@ -1478,7 +1500,7 @@ msgid "Message logs"
msgstr "メッセージログ"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "インポート"
@@ -1550,11 +1572,11 @@ msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "エイリアスを削除しました"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "{} の MX レコード"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "{} の DNSBL 概要"
@@ -1581,11 +1603,11 @@ msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "アカウントを削除しました"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "ドメインをインポート"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "ユーザーをインポート"
@@ -1627,7 +1649,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "ドメイン管理者にユーザーカレンダーの管理 ( 読み取り・書き込み ) を許可します"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "その他"
@@ -1640,8 +1662,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr "インポートする ICS ファイルの最大サイズをバイト ( または KB、MB、GB ) で指定"
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr "カレンダー"
@@ -1749,7 +1770,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "不正な構文"
@@ -1761,8 +1782,8 @@ msgstr "不正なラウンド数"
msgid "This code is invalid"
msgstr "このコードは無効です"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr "Modoboa のパスワード再設定で利用するコード : {}"
@@ -1778,92 +1799,102 @@ msgstr "カレンダー"
msgid "Address book"
msgstr "アドレス帳"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Web メール"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "認証"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "認証の種類"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "認証バックエンド"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "デフォルトのパスワードスキーマ"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "メールボックス パスワードを暗号化する際のスキーマ"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "ラウンド"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr "ラウンド数 ( sha256crypt と sha512crypt のみ使用 ) 。1000 ~ 999999999 の間で設定してください。"
+msgstr ""
+"ラウンド数 ( sha256crypt と sha512crypt のみ使用 ) 。1000 ~ 999999999 の間で設定してください。"
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "ログイン時にパスワード スキーマを更新"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr "デフォルトのパスワード スキーマに切り替えるため、ログイン時にパスワードを更新します"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "デフォルト パスワード"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "アカウント自動作成で使用するデフォルト パスワード"
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "ランダムパスワード長"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "ランダムで生成するパスワードの長さ。"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "パスワードサービス URL を更新"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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。ローカルユーザー以外のユーザー、つまり外部認証 ( LDAP、SMTP ) が成功した後に自動作成されるユーザにのみ適用されます。"
+msgstr ""
+"ユーザがパスワードを更新するための外部ページの URL。ローカルユーザー以外のユーザー、つまり外部認証 ( LDAP、SMTP ) "
+"が成功した後に自動作成されるユーザにのみ適用されます。"
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "パスワード再設定の案内"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr "パスワード再設定ページに表示する一時的なメッセージ"
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "SMS を使ったパスワード再設定"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr "電話番号を入力したユーザーは SMS によるパスワード再設定を有効にする"
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS 事業者"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "パスワード再設定の SMS を送信する業者を選んでください"
@@ -1871,107 +1902,111 @@ msgstr "パスワード再設定の SMS を送信する業者を選んでくだ
msgid "LDAP settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "サーバーアドレス"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP サーバーの IP アドレスまたは DNS 名"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "サーバーポート"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP サーバーの TCP ポート番号"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "セカンダリーサーバー ( フォールバック ) を有効にする"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr "セカンダリー LDAP サーバー。プライマリーサーバーで失敗した際に利用します。"
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "セカンダリーサーバー アドレス"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "セカンダリー LDAP サーバーの IP アドレスまたは DNS 名"
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "セカンダリーサーバー ポート"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr "セカンダリー LDAP サーバーの TCP ポート番号"
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "暗号化接続を使う"
+msgstr "セキュアな接続を使う"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "LDAP サーバー に接続する際に SSL/STARTTLS を使います"
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "LDAP サーバーは Active Directory ですか?"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "管理者グループ"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
-msgstr "ここで指定する LDAP の Posix グループのメンバーをドメイン管理者として作成します。複数のグループを指定する際は「;」で区切ってください。"
+msgstr ""
+"ここで指定する LDAP の Posix グループのメンバーをドメイン管理者として作成します。複数のグループを指定する際は「;」で区切ってください。"
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "グループタイプ"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "ディレクトリーで使用している LDAP グループのタイプ。"
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "グループの検索ベース"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr "グループを探す際の検索ベースの識別名 ( DN )"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "パスワード属性"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "ユーザーパスワードを格納している属性"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP 認証設定"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "認証方式"
@@ -1983,170 +2018,170 @@ msgstr "検索とバインド"
msgid "Direct bind"
msgstr "ダイレクトバインド"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "使用する認証方式を選択"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "バインド 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr "LDAP サーバーにバインドする際の識別名。空のままにすると匿名バインドです。"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "バインド パスワード"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "(「バインド DN」で ) LDAP サーバーにバインドする際のパスワード"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "ユーザーの検索ベース"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr "ユーザーを探す際の検索ベースの識別名 ( DN )"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "検索フィルター"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "ユーザー DN テンプレート"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP 同期設定"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "LDAP へのエクスポートを有効"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr "ローカル データベース・LDAP ディレクトリー間での自動同期を有効にする"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr "ローカルアカウントを削除するとリモート LDAP のアカウントも削除する"
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr "ローカルアカウントを削除すると、リモートLDAPアカウントも削除、または無効にします。"
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "アカウント DN テンプレート"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
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:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "LDAP からのインポートを有効"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr "LDAP ディレクトリーからローカル データベースへのアカウント同期を有効にします"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "ユーザー名属性"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr "ユーザー名を格納している LDAP 属性名。"
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Dovecot LDAP 同期を有効"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr "LDAP 認証設定を Dovecot の設定に適用します。"
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP 設定ファイル"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr "Dovecot の LDAP 設定ファイルの場所。"
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "ダッシュボード"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "カスタム RSS フィード"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "リセラーとドメイン管理者に表示する独自 RSS フィードを設定します。"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "機能ウィジェットを非表示に"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr "リセラーとドメイン管理者の機能ウィジェットを非表示にします"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "通知"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "送信者アドレス"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "通知を送信するメールアドレスです。"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "パブリック API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "通信を有効に"
@@ -2154,93 +2189,93 @@ msgstr "通信を有効に"
msgid "Enable communication with Modoboa public API"
msgstr "Modoboa パブリック API との通信を有効にします"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "新しいバージョンをチェックする"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "新しいバージョンのリリースを自動チェックする"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "新バージョンリリースでメールを送信"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr "新しいバージョンがリリースされたら管理者にメールで通知"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "受信者"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "新しいバージョンのリリースを通知するメールの受信者を指定してください。"
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "統計を送信"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr "Modoboa パブリック API の統計 ( 数と利用拡張機能 ) を送信します"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr "非利用アカウント追跡を有効に"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "アカウントを非利用とみなすログイン間隔"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
msgstr "最終ログイン日が、このしきい値 ( 日数 ) よりも以前になったアカウントを非利用とみなします"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "ページトップ通知のチェック間隔"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "2 つのページトップの通知のチェックの間隔 ( 秒 )"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "最大ログ記録期間"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "ログを記録する日数の最大期間"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "ページあたりの件数"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "ページあたりに表示される項目の数"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "デフォルトのリダイレクト先"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr "アプリケーションが未指定の際、デフォルトとなるリダイレクト先"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr "LDAP"
@@ -2249,7 +2284,9 @@ 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 を False にすると、夏時間・冬時間の移行の際に問題となる可能性があります ( 例 : 時計が変更されることで、同じローカル時刻が 2 度発生します )。"
+msgstr ""
+"USE_TZ を False にすると、夏時間・冬時間の移行の際に問題となる可能性があります ( 例 : 時計が変更されることで、同じローカル時刻が 2"
+" 度発生します )。"
#: core/checks.py:17
msgid "Set `USE_TZ = True` in settings.py"
@@ -2390,7 +2427,7 @@ msgstr "もう 1 つのメールアドレス。万が一の際に利用します
msgid "Failed to update password: LDAP module not installed"
msgstr "パスワードの更新に失敗 : LDAP モジュールがインストールされていません"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "アカウント"
@@ -2403,13 +2440,15 @@ msgid "You can't import an account with a role greater than yours"
msgstr "自分のロール以上のアカウントはインポートできません"
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "標準ユーザー「%s」に有効なメールアドレスがありません"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "「%s」の場合、ユーザー名とメールアドレスの項目は同一にしてください。"
#: core/password_validation.py:25
@@ -2508,7 +2547,9 @@ msgstr "新着情報"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr "詳しくは 公式ブログ をご覧ください。"
+msgstr ""
+"詳しくは 公式ブログ "
+"をご覧ください。"
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -2558,14 +2599,24 @@ msgid ""
"Logout / Login with your current account so its password gets "
"updated Inform ALL your users that they must login"
" to Modoboa to complete the operation "
-msgstr "%(scheme)s のパスワード スキーマは非推奨となり、次のマイナーバージョンで削除します。より強力なスキーマにアップグレードする手順は以下の通りです : - パラメーター > 全般 のセクションへ
- パスワード スキーマのデフォルトの値を変更
- ログイン時にパスワード スキーマを更新が「はい」になっていることを確認
- 変更を [ 保存 ]
- ご自身のアカウントでログアウト → ログインすることでパスワードが更新されます
- かならずすべての ユーザーに Modoboa にログインして操作を完了しなければならないことをアナウンスしてください
"
+msgstr ""
+"%(scheme)s のパスワード "
+"スキーマは非推奨となり、次のマイナーバージョンで削除します。より強力なスキーマにアップグレードする手順は以下の通りです : "
+"- パラメーター > 全般 のセクションへ
- パスワード "
+"スキーマのデフォルトの値を変更
- ログイン時にパスワード "
+"スキーマを更新が「はい」になっていることを確認
- 変更を [ 保存 ]
"
+"- ご自身のアカウントでログアウト → ログインすることでパスワードが更新されます
"
+"- かならずすべての ユーザーに Modoboa "
+"にログインして操作を完了しなければならないことをアナウンスしてください
"
#: core/templates/core/information.html:18
msgid ""
"You must apply this procedure BEFORE you install a newest "
"version of Modoboa, otherwise you will be unable to connect to the "
"web interface anymore."
-msgstr "Modoboa の 新バージョンをインストールする前に 、必ずこの手順を実施してください。今後 Web インターフェースを開けなくなります。"
+msgstr ""
+"Modoboa の 新バージョンをインストールする前に 、必ずこの手順を実施してください。今後 Web"
+" インターフェースを開けなくなります。"
#: core/templates/core/information.html:23
msgid ""
@@ -2620,7 +2671,9 @@ msgid ""
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "\n 以下の更新が用意されています :\n"
+msgstr[0] ""
+"\n"
+" 以下の更新が用意されています :\n"
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70
msgid "Parameters"
@@ -2676,7 +2729,8 @@ msgstr "2 要素認証"
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 "FreeOTP や Google 認証システムなどのソフトウェアトークン認証アプリをインストールし、そのアプリでこの QR コードをスキャンします。"
+msgstr ""
+"FreeOTP や Google 認証システムなどのソフトウェアトークン認証アプリをインストールし、そのアプリでこの QR コードをスキャンします。"
#: core/templates/core/user_security.html:25
msgid "Pin code"
@@ -2724,7 +2778,9 @@ msgstr "復元コードのリセット"
msgid ""
"Two-Factor Authentication (2FA) is not yet activated for your account. "
"Enabling this feature will increase your account's security."
-msgstr "あなたのアカウントは、まだ 2 要素認証 ( 2 Factor Authentication - 2FA ) が有効になっていません。この機能を有効にすることであなたのアカウントのセキュリティーが向上します。"
+msgstr ""
+"あなたのアカウントは、まだ 2 要素認証 ( 2 Factor Authentication - 2FA ) "
+"が有効になっていません。この機能を有効にすることであなたのアカウントのセキュリティーが向上します。"
#: core/templates/core/user_security.html:73
msgid "Enable 2FA"
@@ -2777,7 +2833,7 @@ msgstr "パスワード スキーマが一致しません。%s のパスワー
msgid "Password hash parameter missmatch. Updating %s password"
msgstr "パスワードのハッシュ パラメーターが一致しません。%s パスワードを更新しています"
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "ユーザー「{}」がログアウトしました"
@@ -2813,11 +2869,12 @@ msgstr "DMARC"
msgid "Show DMARC report for {}"
msgstr "{} の DMARC レポートを表示"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr "未解決"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "なし"
@@ -2953,63 +3010,63 @@ msgstr "{} に無効なマスク"
msgid "Not an SPF record"
msgstr "SPF レコードではありません"
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr "不明なメカニズム {}"
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr "不明な節 : {}"
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr "モディフィアの重複 {}"
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr "メカニズムなし"
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr "有効な DKIM レコードなし"
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr "無効なタグ {}"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr "レコードにキーが見つかりません"
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr "タグ {} の値 {} に誤り"
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr "タグ {} の値 {} に誤り : "
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr "整数ではありません"
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr "{} より小さい"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr "{} より大きい"
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr "有効な DMARC レコードではありません"
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr "不明なタグ {}"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr "必要な p タグが見つかりません"
@@ -3127,7 +3184,9 @@ 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 "除外フォルダーフィルターで対象から外れても同期に含めるフォルダーをカンマ区切りで明示します。例 : debian.user, debian.personal"
+msgstr ""
+"除外フォルダーフィルターで対象から外れても同期に含めるフォルダーをカンマ区切りで明示します。例 : debian.user, "
+"debian.personal"
#: imap_migration/app_settings.py:107
msgid "OfflineIMAP settings"
@@ -3141,9 +3200,10 @@ msgstr "オフライン IMAP フィルター設定"
msgid "IMAP Migration"
msgstr "IMAP 移行"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "IMAP サーバーへの接続に失敗 : %s"
#: imap_migration/checks.py:12
@@ -3169,11 +3229,11 @@ msgstr "LDAP アカウントの作成に失敗 : {}"
msgid "Failed to update LDAP account: {}"
msgstr "LDAP アカウントの更新に失敗 : {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "LDAP アカウントの削除に失敗 : {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "LDAP アカウントの無効化に失敗 : {}"
@@ -3184,20 +3244,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "パブリック API での通信に失敗 : %s"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "%s データベースへの接続が未構成"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr "文字列のエンコード検出ができませんでした"
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "アクセス拒否 : %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "アクセス拒否"
@@ -3220,7 +3282,7 @@ msgid "Failed to update password: {}"
msgstr "パスワードの更新に失敗しました: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "件名"
@@ -3416,7 +3478,7 @@ msgstr "greylist のメッセージを表示"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "ハード拒否とソフト拒否を区別する ( greylist )"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "統計"
@@ -3424,63 +3486,63 @@ msgstr "統計"
msgid "Failed to locate rrdtool binary."
msgstr "rrdtool バイナリーの場所に到達できません。"
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "平均通信量 ( メッセージ / 分 )"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "送信メッセージ"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "受信メッセージ"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "バウンスメッセージ"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "拒否メッセージ"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "ウイルスメッセージ"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "SPAM メッセージ"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "greylist メッセージ"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "通常トラフィックサイズの平均値 ( bytes / 分 )"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "受信サイズ"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "送信サイズ"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "メールトラフィック"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "アカウント作成数の平均 ( アカウント / 時間 )"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "新しいアカウント"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "アカウント"
@@ -3496,39 +3558,39 @@ msgstr "ドメインを検索"
msgid "Apply"
msgstr "適用"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "統計がありません"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "日"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "週"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "月"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "年"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "カスタム"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "不明なグラフィックセット"
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr "不明なドメイン"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "不正な期間のカスタム"
@@ -3697,7 +3759,11 @@ msgid ""
"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%s 様、この文書には Modoboa メールサーバーへの接続に必要な認証情報を記しています。\n認証情報が第三者に漏れれば、メールの内容をすべて読み取られるほか、なりすましによるメール送信も可能になります。\n内容を理解し必要な設定を終えたら、厳重に管理する・廃棄するなど、対応をおねがいします。\n"
+msgstr ""
+"\n"
+"%s 様、この文書には Modoboa メールサーバーへの接続に必要な認証情報を記しています。\n"
+"認証情報が第三者に漏れれば、メールの内容をすべて読み取られるほか、なりすましによるメール送信も可能になります。\n"
+"内容を理解し必要な設定を終えたら、厳重に管理する・廃棄するなど、対応をおねがいします。\n"
#: pdfcredentials/documents.py:95
msgid "Web panel:"
@@ -3708,7 +3774,10 @@ msgid ""
"\n"
"Here you can view your emails anytime online, create filters or manage\n"
"your contacts.\n"
-msgstr "\nこの画面からあなたのメールをオンラインで確認できるほか、表示フィルターを\n作成したり、連絡先を管理することができます。\n"
+msgstr ""
+"\n"
+"この画面からあなたのメールをオンラインで確認できるほか、表示フィルターを\n"
+"作成したり、連絡先を管理することができます。\n"
#: pdfcredentials/documents.py:126
msgid "Please change your password!"
@@ -3751,11 +3820,11 @@ msgid ""
"path."
msgstr "認証情報 PDF ファイルの作成に失敗。権限またはパスを確認してください。"
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr "1 日の送信通数制限に到達"
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr "[modoboa] 送信通数制限に到達"
@@ -3764,33 +3833,33 @@ msgstr "[modoboa] 送信通数制限に到達"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr "%(ltype)s にもとづく 1 日あたりの制限に到達しました : %(name)s"
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr "過去の日付です"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr "開始日より後を設定してください"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "自動応答でタイムアウト"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr "同じ受信者への 2 通の自動応答の間隔でタイムアウトが発生しました"
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "件名のデフォルト"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr "自動応答メッセージを自動生成する際の件名のデフォルト"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3798,53 +3867,60 @@ msgid ""
msgstr "自動応答メッセージを自動生成する際の本文のデフォルト値。「%(name)s」マクロはユーザーのフルネームに置き換えます。"
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr "自動応答"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "終了日"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, 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"
+msgstr ""
+"応答の本文。以下の変数を利用すると、それぞれ適切な値に置き換えられます : %(name)s、%(fromdate)s、%(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "不在にしております"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr "本文のデフォルト"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, 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\n%(name)s\n"
+msgstr ""
+"本日お休みをいただいております。\n"
+"\n"
+"出勤し次第、お返事いたします。\n"
+"ご迷惑をおかけいたしますが、よろしくお願いいたします。\n"
+"\n"
+"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr "自動応答メッセージ"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "自動応答"
@@ -3872,7 +3948,7 @@ msgstr "自動応答の稼働・停止"
msgid "Define a message to automatically send when you are off"
msgstr "不在の際に自動応答するメッセージを設定します"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "自動応答メッセージを更新しました。"
@@ -3900,7 +3976,7 @@ msgstr "対象ホストポート"
msgid "verify recipients"
msgstr "受信者の確認"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr "フィルター、%s はすでに存在します"
@@ -3926,20 +4002,24 @@ msgid "Use the STARTTLS extension"
msgstr "STARTTLS 拡張を使用"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr "IMAP 設定"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr "IMAP サーバーのアドレス"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr "IMAP サーバーに暗号化接続する"
+msgstr "IMAP サーバーへのアクセスにセキュアな接続を使う"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr "IMAP サーバーのポート"
+msgstr "IMAP サーバーの待受ポート"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
msgid "Sieve filters"
@@ -3979,15 +4059,15 @@ msgstr "一致しない"
#: sievefilters/constants.py:24
msgid "Sender"
-msgstr "送信者"
+msgstr "送信"
#: sievefilters/constants.py:26
msgid "Cc"
-msgstr "CC"
+msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "サイズ"
+msgstr ""
#: sievefilters/constants.py:31
msgid "is greater than"
@@ -4025,33 +4105,29 @@ msgstr "エディターモード"
msgid "Select the mode you want the editor to work in"
msgstr "作業エディターのモードを選択してください"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
-msgstr "ごみ箱"
+msgstr "ゴミ箱フォルダー"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
-msgstr "削除メッセージの行き先フォルダー"
+msgstr "削除されたメッセージが置かれるフォルダ"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr "送信済みフォルダー"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr "送信済みメッセージの行き先フォルダー"
+msgstr "送信されたメッセージのコピーが置かれるフォルダ"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr "下書きフォルダー"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr "下書きの行き先フォルダー"
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "階層区切りの取得に失敗"
+msgstr "下書きが置かれるフォルダ"
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
@@ -4144,7 +4220,8 @@ msgstr "パスワードを変更"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
-msgstr "パスワードの再設定リンクが無効です。おそらくこのリンクからはすでに操作を終えたものと思われます。もう一度「パスワード再設定」の操作をしてください。"
+msgstr ""
+"パスワードの再設定リンクが無効です。おそらくこのリンクからはすでに操作を終えたものと思われます。もう一度「パスワード再設定」の操作をしてください。"
#: templates/registration/password_reset_confirm_code.html:22
msgid "Enter the code you've just received by SMS"
@@ -4164,7 +4241,9 @@ 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 "入力したメールアドレスが登録済みのものであれば、パスワード設定方法を記載したメールが届きます。
メールが届かなければ、入力したアドレスが正しいものだったかどうか、または SPAM フォルダーに配信されていないかを確認してください。
"
+msgstr ""
+"入力したメールアドレスが登録済みのものであれば、パスワード設定方法を記載したメールが届きます。
"
+"メールが届かなければ、入力したアドレスが正しいものだったかどうか、または SPAM フォルダーに配信されていないかを確認してください。
"
#: templates/registration/password_reset_email.html:4
#: templates/registration/password_reset_email_v2.html:4
@@ -4172,7 +4251,9 @@ msgstr "入力したメールアドレスが登録済みのものであれば
msgid ""
"To initiate the password reset process for your %(username)s Modoboa "
"account, click the link below:"
-msgstr "パスワードの再設定処理をはじめます。対象のアカウントは %(username)s でよろしいですか? よろしければ以下のリンクをクリックしてください : "
+msgstr ""
+"パスワードの再設定処理をはじめます。対象のアカウントは %(username)s でよろしいですか? よろしければ以下のリンクをクリックしてください :"
+" "
#: templates/registration/password_reset_email.html:10
#: templates/registration/password_reset_email_v2.html:10
@@ -4210,7 +4291,9 @@ msgstr "ワンタイム パスワード"
msgid ""
"Enter the code from the two-factor app on your mobile device. If you've lost"
" your device, you may enter one of your recovery codes."
-msgstr "あなたのスマートフォンの 2 要素認証アプリのコードを入力してください。スマートフォンをなくしているなどの場合は、再設定コードのいずれかを入力してください。"
+msgstr ""
+"あなたのスマートフォンの 2 "
+"要素認証アプリのコードを入力してください。スマートフォンをなくしているなどの場合は、再設定コードのいずれかを入力してください。"
#: templates/registration/twofactor_code_verify.html:42
msgid "Verify code"
@@ -4240,3 +4323,187 @@ msgstr "サービス"
#: transport/models.py:17
msgid "next hop"
msgstr "次のホップ"
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "最大添付サイズ"
+
+#: webmail/app_settings.py:19
+#, fuzzy
+#| msgid ""
+#| "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "最大添付サイズ (B, KB, MB, GB 指定)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "IMAP settings"
+msgid "SMTP settings"
+msgstr "SMTP 設定"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "SMTP サーバーのアドレス"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "セキュア接続モード"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "SMTP サーバーへのアクセスにセキュアな接続を使う"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "SMTP サーバーの待受ポート"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "認証が必要"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "The backend used for authentication"
+msgid "Server needs authentication"
+msgstr "サーバーが認証を求めています"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "表示"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "デフォルトのメッセージ表示モード"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "メッセージを表示するときのデフォルトのモード"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "HTMLリンクの表示を有効にします"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "HTMLリンクの表示を有効または無効にします"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "ページあたりに表示される電子メールの数"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "1ページに表示されるメッセージの最大数を設定します"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "リストのリフレッシュレート"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "メールボックスコンテナの幅"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "メールボックスリストコンテナの幅"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Sent folder"
+msgid "Junk folder"
+msgstr "送信済みフォルダー"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "Folder where deleted messages go"
+msgid "Folder where junk messages should go"
+msgstr "削除されたメッセージが置かれるフォルダ"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "メッセージの作成"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "デフォルトエディタ"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "メッセージを作成するときのデフォルトのエディター"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "署名テキスト"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "ユーザー定義の電子メール署名"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "添付ファイルの削除に失敗しました:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "階層区切り文字を取得できませんでした"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "受信トレイ"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Drafts folder"
+msgid "Drafts"
+msgstr "下書き"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "迷惑メール"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "送信済み"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "ごみ箱"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "添付ファイルが大きすぎます (上限: %s)"
diff --git a/modoboa/locale/ka/LC_MESSAGES/django.po b/modoboa/locale/ka/LC_MESSAGES/django.po
index 725ed8302..a9b23d35b 100644
--- a/modoboa/locale/ka/LC_MESSAGES/django.po
+++ b/modoboa/locale/ka/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,31 +18,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -50,20 +50,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -72,23 +72,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -111,27 +111,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -152,137 +152,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -290,17 +290,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -311,37 +311,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -349,13 +349,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -521,8 +521,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -600,7 +600,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -618,7 +618,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -725,28 +725,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -783,8 +783,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -802,16 +801,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -822,11 +821,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -942,16 +941,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1174,6 +1173,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1259,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1267,7 +1267,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1317,7 +1317,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1356,7 +1356,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1470,7 +1470,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1543,11 +1543,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1576,11 +1576,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1622,7 +1622,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1635,8 +1635,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1743,7 +1742,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1755,7 +1754,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1771,92 +1770,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1864,107 +1868,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1976,170 +1983,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2147,92 +2154,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2382,7 +2389,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2395,13 +2402,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2774,7 +2779,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2810,11 +2815,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2950,63 +2956,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3138,9 +3144,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3166,11 +3172,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3181,20 +3187,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3217,7 +3221,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3413,7 +3417,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3421,63 +3425,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3493,39 +3497,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3748,11 +3752,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3761,33 +3765,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3795,23 +3799,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3819,15 +3823,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3836,12 +3840,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3869,7 +3873,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3897,7 +3901,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3923,18 +3927,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4022,34 +4030,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4237,3 +4241,148 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/locale/nl_NL/LC_MESSAGES/django.po
index fc75a8583..4c5025347 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: 2024-07-17 11:46+0200\n"
"Last-Translator: J Rosier \n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/language/nl_NL/)\n"
@@ -29,7 +29,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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."
@@ -37,25 +37,25 @@ 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:49
+#: admin/api/v1/serializers.py:48
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:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr "Kan niet groter zijn dan domeinquotum"
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Toegang geweigerd."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -63,20 +63,20 @@ msgstr "Toegang geweigerd."
msgid "This field is required"
msgstr "Dit veld is verplicht"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "Lijst van beheerde domeinen (alleen resellers en domeinbeheerders)."
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Niet toegestaan voor deze rol."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Moet gelijk zijn aan de mailbox full_address"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -85,25 +85,25 @@ msgstr "Moet gelijk zijn aan de mailbox full_address"
msgid "This field is required."
msgstr "Dit veld is verplicht."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Lokaal domein {} bestaat niet"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Lijst ontvangers."
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Je hebt geen toegang tot dit domein."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Je hebt geen toegang tot deze mailbox."
@@ -126,27 +126,27 @@ msgstr "Dit moet een positief geheel getal zijn."
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
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:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Definieer ten minste 1 geautoriseerd netwerk / adres"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
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:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown tag {}"
msgid "Unknown status"
@@ -169,26 +169,26 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domeinen"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "MX Controles inschakelen"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "Controleer of ieder domein een geldig MX-record heeft"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Geldige MX'en"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -196,82 +196,82 @@ 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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Nieuwe domeinen moeten geauthoriseerde MX-record(s) gebruiken."
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable SPF checks"
msgid "Enable IPV6 checks"
msgstr "Activeer SPF controle"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Activeer SPF controle"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr "Controleer of ieder domein een geldig SPF-record heeft"
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Activeer DKIM-controle"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
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"
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Activeer DMARC-controle"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr "Controleer of ieder domein een geldig DMARC-record heeft"
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Activeer controle van automatische configuratie"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
"Controleer of ieder domein geldige records voor automatische configuratie "
"heeft."
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "DNSBL Controles inschakelen"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Controleer ieder domein tegen de bekende DNSBL providers"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Eigen DNS server"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "DKIM Key opslagdirectory"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
@@ -281,19 +281,19 @@ msgstr ""
"erop dat deze directory van de root-gebruiker is en niet leesbaar is voor "
"andere gebruikers."
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Standaard DKIM key lengte"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr "Standaard lengte in bits voor nieuw gegenereerde DKIM keys."
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Standaard domeinquotum"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -301,11 +301,11 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Standaard verzendlimiet per domein"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
@@ -313,7 +313,7 @@ msgstr ""
"Aantal mails dat nieuwe domeinen per dag mogen verzenden. Laat leeg voor "
"geen limiet."
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -321,11 +321,11 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Pas mailboxen op het bestandssysteem aan"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -333,7 +333,7 @@ msgstr ""
"Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of "
"verwijderd worden in Modoboa."
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -347,11 +347,11 @@ msgstr ""
"Standaard mailboxquotum (in MB), toegepast op nieuwe mailboxen zonder "
"gespecificeerde waarde. De waarde '0' betekent geen quotum."
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Standaard verzendlimiet voor mailboxen"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -359,31 +359,31 @@ msgstr ""
"Aantal mails dat nieuwe mailboxen per dag mogen verzenden. Laat leeg voor "
"geen limiet."
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Automatish een account verwijderen"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Als een mailbox wordt verwijderd, verwijder dan ook het bijbehorende account"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Domein en mailbox automatisch aanmaken"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Maak een alias aan als een mailbox hernoemd wordt."
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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."
@@ -392,7 +392,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Map niet gevonden."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
@@ -400,7 +400,7 @@ msgstr ""
"Standaard mailboxquota (in MB) die worden toegepast op nieuwe domeinen "
"zonder gespecificeerde waarde. Een 0 betekent geen quota."
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Beheer"
@@ -581,8 +581,8 @@ msgstr "Domein(en) die gebruiker mag beheren"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Algemeen"
@@ -668,7 +668,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "domeinalias"
@@ -686,7 +686,7 @@ msgstr "DKIM Key opslagdirectory niet geconfigureerd"
msgid "You can't define an unlimited quota."
msgstr "Je kunt geen onbeperkt quotum definiëren."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domein"
@@ -794,28 +794,28 @@ 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"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Accounts importeren mislukt (%s): domein bestaat niet"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Mailbox {} bestaat al"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Account import is mislukt (%s): verkeerde quotumwaarde"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Doorsturen"
@@ -852,8 +852,9 @@ 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:256
-#, python-format
-msgid "DNS name is too long: %s"
+#, fuzzy
+#| msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr "DNS naam is te lang: %s"
#: admin/lib.py:287
@@ -871,18 +872,18 @@ msgstr "Object bestaat al: %s"
msgid "%d objects imported successfully"
msgstr "%d objecten succesvol geïmporteerd"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
"CSV bestand is niet gecodeerd in UTF-8, aan het proberen om de codering te "
"raden"
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "Kan CSV bestand niet decoderen met %(encoding)scodering"
@@ -893,11 +894,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1017,16 +1018,16 @@ msgstr ""
msgid "Key length"
msgstr "Sleutellengte"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Onjuiste regel"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr "{}: geen goedgekeurd MX record gevonden voor dit domein"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr "{}: ongeldige quotumwaarde voor dit domein"
@@ -1250,6 +1251,7 @@ msgstr "Geopende alarmen voor"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Datum"
@@ -1336,7 +1338,7 @@ msgid ""
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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Nee"
@@ -1344,7 +1346,7 @@ msgstr "Nee"
msgid "Generate new key"
msgstr "Nieuwe sleutel genereren"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Ja"
@@ -1394,7 +1396,7 @@ msgstr "Queue 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Van"
@@ -1433,10 +1435,10 @@ msgstr "Mail automatisch doorsturen naar een ander adres"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
-msgstr "Toepassen"
+msgstr "Bijwerken"
#: admin/templates/admin/identities.html:32
msgid "Account"
@@ -1572,7 +1574,7 @@ msgid "Message logs"
msgstr "Berichtenlogboek"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importeren"
@@ -1646,11 +1648,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias verwijderd"
msgstr[1] "Aliassen verwijderd"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "MX-records van {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL overzicht voor {}"
@@ -1679,11 +1681,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Account verwijderd"
msgstr[1] "Accounts verwijderd"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importeer domeinen"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importeer identiteiten"
@@ -1733,7 +1735,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Sta deze beheerder toe om mailboxen van gebruikers te benaderen"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Diversen"
@@ -1746,8 +1748,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1867,7 +1868,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Ongeldige zinsbouw"
@@ -1879,8 +1880,8 @@ msgstr "Ongeldig nummer van rondes"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr "Gebruik de volgende code om het Modoboa wachtwoord te herstellen: {}"
@@ -1900,31 +1901,38 @@ msgstr ""
msgid "Address book"
msgstr "Adres"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Authenticatie"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Authenticatie type"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "De backend gebruikt voor authenticatie"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Standaard wachtwoord encryptiemethode"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schema dat gebruikt wordt om mailboxwachtwoorden te versleutelen"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Rondes"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1932,37 +1940,37 @@ msgstr ""
"Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en "
"sha512crypt). Moet tussen de 1000 en 999999999 liggen."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Update wachtwoordschema bij inloggen"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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. "
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Standaard wachtwoord"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Standaard wachtwoord voor automatisch gecreëerde accounts."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Lengte van willekeurig wachtwoord"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Lengte van willekeurig gegenereerde wachtwoorden"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Service-url voor wachtwoorden updaten"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -1972,29 +1980,29 @@ msgstr ""
"bijwerken. Alleen van toepassing op niet-lokale gebruikers die automatisch "
"worden aangemaakt na een succesvolle externe authenticatie (LDAP, SMTP)."
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Melding wachtwoordherstel"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Wachtwoordherstel via SMS activeren"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS provider"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "Kies een provider voor het sturen van een SMS voor wachtwoordherstel."
@@ -2002,74 +2010,77 @@ msgstr "Kies een provider voor het sturen van een SMS voor wachtwoordherstel."
msgid "LDAP settings"
msgstr "LDAP instellingen"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
-msgstr "Server adres"
+msgstr "Serveradres"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
-msgstr "Server poort"
+msgstr "Serverpoort"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Het TCP poortnummer van de LDAP-server"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Secundaire server activeren (fallback)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Adres van secundaire server"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "secundaire-serverpoort"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr "TCP poortnummer van de secundaire LDAP server"
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr ""
+msgstr "Gebruik een beveiligde verbinding"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "De LDAP-server is een Active Directory"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Beheerdergroepen"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2077,35 +2088,35 @@ msgstr ""
"Leden van deze LDAP POSIX-groepen zullen aangemaakt worden als "
"domeinbeheerders. Gebruik ';' karakters om groepen te scheiden."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Groeptype"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Groepen zoekbasis"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Wachtwoord attribuut"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Het attribuut dat gebruikt wordt om wachtwoorden op te slaan"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP authenticatie-instellingen"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Authenticatiemethode"
@@ -2117,17 +2128,17 @@ msgstr "Zoeken en koppelen"
msgid "Direct bind"
msgstr "Directe koppeling"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Kies de te gebruiken authenticatiemethode"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Koppeling 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2135,35 +2146,35 @@ msgstr ""
"De gedistingeerde naam om te gebruiken bij het koppelen met de LDAP-server. "
"Laat leeg voor een anonieme koppeling."
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Koppel wachtwoord"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Gebruikers zoekbasis"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Zoekfilter"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2171,11 +2182,11 @@ msgstr ""
"Een optionele filter string (zoals '(objectClass=person)'). Om geldig te "
"kunnen zijn, moet het tussen haakjes staan."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Gebruiker DN template"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2184,26 +2195,26 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP synchronisatie-instellingen"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Activeer export naar LDAP"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
"Activeer automatische synchronisatie tussen lokale database en LDAP "
"directory"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
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:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2211,11 +2222,11 @@ msgstr ""
"Verwijder extern LDAP account als het lokale account wordt verwijderd. Zo "
"niet, dan wordt het gedeactiveerd."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Account DN sjabloon"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2224,79 +2235,79 @@ msgstr ""
"Het sjabloon voor het opbouwen van het DN (distinguishedname). Het moet een "
"tijdelijke aanduiding (placeholder) bevatten (bijvoorbeeld %(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Activeer import van LDAP"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
"Activeer accountsynchronisatie van LDAP directory naar lokale database"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Gebruikersnaamattribuut"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Activeer Dovecot LDAP synchronisatie"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
"LDAP authenticatie-instellingen worden toegepast op Dovecot-configuratie."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP configuratiebestand"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr "Locatie van het configuratiebestand met Dovecot LDAP-instellingen."
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Bedieningspaneel"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Aangepaste RSS feed."
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "Toon aangepaste RSS feed aan resellers en domein beheerders. "
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Verberg opties widget"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr "Verberg features widget voor resellers en domein administrators. "
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notificaties"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Afzenderadres"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "E-mailadres dat gebruikt wordt om notificaties te versturen"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Publieke API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Communicatie toestaan"
@@ -2304,59 +2315,59 @@ msgstr "Communicatie toestaan"
msgid "Enable communication with Modoboa public API"
msgstr "Communicatie met publieke Modoboa API toestaan"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Controleer of er een nieuwe versie beschikbaar is"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Controleert automatisch of een nieuwere versie beschikbaar is"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Stuur een e-mail als er nieuwe versies worden gevonden"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr "Stuur een e-mail naar administrators over nieuwe versies"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Ontvanger"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Ontvanger van notificatiemails over nieuwe versies"
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Verstuur statistieken"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Verstuur statistieken naar de publieke Modoboa API (statistieken en "
"gebruikte extenties)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Drempelwaarde inactieve gebruikers"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Drempelwaarde inactieve gebruikers"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2364,41 +2375,41 @@ msgstr ""
"Een gebruiker die langer dan dit aantal dagen niet ingelogd is, wordt op "
"inactief gezet."
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Top notificaties controle interval"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Interval tussen twee notificatiecontroles (in seconden)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Maximum bewaartijd van logs"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "De maximum bewaartijd in dagen van een log record"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Items per pagina"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Aantal getoonde items per pagina"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Standaard top omleiding"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"De standaard omleiding die gebruikt wordt als er geen andere applicatie is "
"opgegeven"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2555,7 +2566,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Mislukt om wachtwoord aan te passen: LDAP-module niet geinstalleerd"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "account"
@@ -2568,13 +2579,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "De gebruiker '%s' moet een geldig e-mailadres hebben"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "gebruikersnaam en e-mail -velden moeten niet verschillen van '%s'"
#: core/password_validation.py:25
@@ -2974,7 +2987,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Gebruiker '{}' is uitgelogd."
@@ -3012,11 +3025,12 @@ msgstr "DMARC gereedschappen"
msgid "Show DMARC report for {}"
msgstr "Toon DMARC rapportage voor {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Geen"
@@ -3156,63 +3170,63 @@ msgstr "Ongeldig masker gevonden {}"
msgid "Not an SPF record"
msgstr "Geen SPF record"
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr "Onbekend mechanisme {}"
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr "Onbekende modifier {}"
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr "Dubble modifier {} gevonden"
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr "Geen mechanisme gevonden"
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr "Ongeldig DKIM record"
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr "Ongeldige tag {}"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr "Geen sleutel gevonden in record"
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr "Ongeldige waarde {} voor tag {}"
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr "Ongeldige waarde {} voor tag {}"
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr "Geen geheel getal"
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr " minder dan {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr " groter dan {}"
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr "Geen geldig DMARC record"
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr "Onbekende tag {}"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr "Mist benodigde p tag"
@@ -3360,9 +3374,10 @@ msgstr "OfflineIMAP instellingen"
msgid "IMAP Migration"
msgstr "IMAP migratie"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Verbinding naar IMAP server mislukt: %s"
#: imap_migration/checks.py:12
@@ -3388,11 +3403,11 @@ msgstr "Aanmaken LDAP account mislukt: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Wijzigen LDAP account mislukt: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Verwijderen LDAP account mislukt: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Uitschakelen LDAP account mislukt: {}"
@@ -3404,20 +3419,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Communicatie met publieke Modoboa API toestaan"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Verbinding naar database %s niet geconfigureerd"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Toegang geweigerd: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Toegang geweigerd"
@@ -3440,7 +3457,7 @@ msgid "Failed to update password: {}"
msgstr "Aanpassen van wachtwoord mislukt: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Onderwerp"
@@ -3676,7 +3693,7 @@ msgstr "geweigerde berichten"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistieken"
@@ -3684,69 +3701,69 @@ msgstr "Statistieken"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Gemiddeld verkeer per minuut (berichten)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "verstuurde berichten"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "ontvangen berichten"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "geweigerde berichten"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "geweigerde berichten"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
#, fuzzy
#| msgid "sent messages"
msgid "virus messages"
msgstr "verstuurde berichten"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "sent messages"
msgid "spam messages"
msgstr "verstuurde berichten"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
#, fuzzy
#| msgid "rejected messages"
msgid "greylisted messages"
msgstr "geweigerde berichten"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Gemiddelde bandbreette per minuut (bytes)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "ontvangen grootte"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "verstuurde grootte"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Mailverkeer"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3762,41 +3779,41 @@ msgstr "Zoek een domein"
msgid "Apply"
msgstr "Toepassen"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Geen statistieken beschikbaar"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Dag"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Week"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Maand"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Jaar"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Aangepast"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Onbekende grafische set"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Onbekende grafische set"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Ongeldige aangepaste periode"
@@ -4044,13 +4061,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: limiet bereikt"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4061,40 +4078,40 @@ msgstr "%s: limiet bereikt"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Deze datum is over"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, fuzzy
#| msgid "Cannot be greater than domain quota"
msgid "Must be greater than start date"
msgstr "Moet na de startdatum liggen"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Automatisch antwoorden timeout"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Standaard onderwerp"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
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/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4105,29 +4122,29 @@ msgstr ""
"naam van de gebruiker."
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Automatische antwoorden"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Tot"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4135,17 +4152,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Ik ben nu niet aanwezig"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Standaard inhoud"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4158,14 +4175,14 @@ msgstr ""
"Met vriendelijke groet,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Automatisch antwoord"
@@ -4196,7 +4213,7 @@ 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
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Auto antwoord bericht successvol aangepast."
@@ -4230,7 +4247,7 @@ msgstr "doel host"
msgid "verify recipients"
msgstr "controleer ontvangers"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4263,22 +4280,26 @@ msgid "Use the STARTTLS extension"
msgstr "Gebruik de STARTTLS extensie (aanbevolen)"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
-msgstr "ManageSieve instellingen"
+msgstr "IMAP instellingen"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
-msgstr "Adres van uw MANAGESIEVE server"
+msgstr "Adres van uw IMAP-server"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr ""
+msgstr "Gebruik een beveiligde verbinding met de IMAP-server"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr "Poort van uw MANAGESIEVE server"
+msgstr "Poort van uw IMAP-server"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4328,15 +4349,15 @@ msgstr "is niet"
#, fuzzy
#| msgid "Sender address"
msgid "Sender"
-msgstr "Afzender"
+msgstr "Versturen"
#: sievefilters/constants.py:26
msgid "Cc"
-msgstr "CC"
+msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Grootte"
+msgstr ""
#: sievefilters/constants.py:31
#, fuzzy
@@ -4384,33 +4405,29 @@ msgstr "Editor mode"
msgid "Select the mode you want the editor to work in"
msgstr "Selecteer de mode waarin u de editor wilt hebben"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
-msgstr ""
+msgstr "Prullenbak"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
-msgstr ""
+msgstr "Map voor verwijderde berichten"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
-msgstr ""
+msgstr "Verzonden items"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr ""
+msgstr "Map waar verzonden berichten worden opgeslagen"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
-msgstr ""
+msgstr "Concepten"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr ""
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Mislukt om de filterset te te laden"
+msgstr "Map waar concepten heen gaan"
#: sievefilters/lib.py:52
#, fuzzy
@@ -4601,7 +4618,7 @@ msgstr "Verificatiecode"
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Terug"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4625,14 +4642,181 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Maximale grootte van bijlage"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+"Maximale grootte van een bijlage in bytes (of KB, MB, GB als opgegeven)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "SMTP instellingen"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Adres van uw IMAP-server"
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr "Modus van beveiligde verbinding"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Gebruik een beveiligde verbinding met de SMTP-server"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Poort van de SMTP-server"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Authenticatie vereist"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "De server vereist authenticatie"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Weergeven"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Standaard berichtweergave"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "De standaard modus wanneer een bericht weergegeven wordt"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Activeer weergave van HTML-koppelingen"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "(De)activeer weergave van HTML-koppelingen"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Aantal weergegeven e-mails per pagina"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Stelt het maximum aantal weergegeven berichten per pagina in"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Lijst vernieuwen frequentie"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Mappenlijst wijdte"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "De wijdte van de mappenlijst"
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr "Mappen"
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr "Ongewenste e-mail map"
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr "Map voor ongewenste e-mail"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Berichten opstellen"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Standaard editor"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "De standaard editor voor het schrijven van een bericht"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Handtekeningtekst"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Door gebruiker opgegeven e-mailhandtekening"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Bijlage verwijderen is mislukt:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Mislukt om het hiërarchische scheidingsteken te verkrijgen"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Postvak in"
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr "Concepten"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Ongewenste e-mail"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Verzonden items"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Prullenbak"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Bijlage is te groot (maximaal toegestane grootte: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Authenticatie mechanisme"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Geprefereerde authenticatie mechanisme"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Map niet gevonden."
@@ -4724,9 +4908,6 @@ msgstr ""
#~ msgid "Filter removed"
#~ msgstr "Filter verwijderd"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Mislukt om het filter te verwijderen"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Filterset opgeslagen"
diff --git a/modoboa/locale/no/LC_MESSAGES/django.po b/modoboa/locale/no/LC_MESSAGES/django.po
index eb8adad6d..6e234bd30 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,31 +21,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -53,20 +53,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -75,23 +75,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -114,27 +114,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -155,137 +155,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -293,17 +293,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -314,37 +314,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -352,13 +352,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -524,8 +524,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -603,7 +603,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -621,7 +621,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -728,28 +728,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -786,8 +786,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -805,16 +804,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -825,11 +824,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -945,16 +944,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1177,6 +1176,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1262,7 +1262,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1270,7 +1270,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1320,7 +1320,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1359,7 +1359,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1473,7 +1473,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1546,11 +1546,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1579,11 +1579,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1638,8 +1638,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1746,7 +1745,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1758,7 +1757,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1774,92 +1773,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1867,107 +1871,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1979,170 +1986,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2150,92 +2157,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2387,7 +2394,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Kunne ikke oppdatere LDAP-konto: {}"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2400,13 +2407,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2779,7 +2784,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2815,11 +2820,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2955,63 +2961,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3143,9 +3149,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3171,11 +3177,11 @@ msgstr "Kunne ikke opprette LDAP-konto: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Kunne ikke oppdatere LDAP-konto: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Kunne ikke slette LDAP-konto: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Kunne ikke deaktivere LDAP-konto: {}"
@@ -3186,20 +3192,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3224,7 +3228,7 @@ msgid "Failed to update password: {}"
msgstr "Kunne ikke oppdatere LDAP-konto: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3420,7 +3424,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3428,63 +3432,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3500,39 +3504,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3755,11 +3759,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3768,33 +3772,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3802,23 +3806,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3826,15 +3830,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3843,12 +3847,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3876,7 +3880,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3904,7 +3908,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3930,18 +3934,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4029,34 +4037,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4244,3 +4248,150 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Kunne ikke opprette LDAP-konto: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/locale/pl_PL/LC_MESSAGES/django.po
index 3b2bac85a..2e8ff3e1f 100644
--- a/modoboa/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/locale/pl_PL/LC_MESSAGES/django.po
@@ -15,45 +15,48 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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"
+"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
+"language/pl_PL/)\n"
"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && "
+"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
+"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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."
+"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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak "
"ograniczenia."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Odmowa dostępu"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -61,21 +64,21 @@ msgstr "Odmowa dostępu"
msgid "This field is required"
msgstr "To pole jest obowiązkowe"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Niedozwolone dla tej roli."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Musi być równe z full_address skrzynki."
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -84,25 +87,25 @@ msgstr "Musi być równe z full_address skrzynki."
msgid "This field is required."
msgstr "To pole jest wymagane"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Lokalna domena {} nie istnieje"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Lista odbiorców"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Nie masz dostępu do tej domeny."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Nie masz dostępu do tej skrzynki."
@@ -125,29 +128,29 @@ msgstr "Musi być liczbą całkowitą dodatnią"
msgid "openssl not found, please make sure it is installed."
msgstr "Brak openssl , upewnij się że jest zainstalowany."
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Zdefiniuj przynajmniej jedną autoryzowaną sieć / adres"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, fuzzy
#| msgid "A mailbox is required"
msgid "A mailbox is required to create aliases."
msgstr "Skrzynka jest obowiązkowa"
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -170,38 +173,38 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domeny"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Włącz sprawdzanie rekordów MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Poprawne MXy"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 ""
-"Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie"
-" wysłany w przypadku błędu."
+"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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Nowe domeny muszą używać autoryzowanych MX'ów"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -209,93 +212,93 @@ msgstr ""
"Zapobiegaj tworzeniu nowych domen jeśli ich MXy nie są jednym ze "
"zdefiniowanych adresów."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, 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
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Włącz sprawdzanie rekordów SPF"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr "Sprawdź czy każda domena posiada aktualny SPF rekord"
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Włącz sprawdzanie rekordów DKIM"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Włącz sprawdzanie DMARC"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr "Sprawdź czy każda domena posiada aktualny DMARC rekord"
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Włącz sprawdzanie poprawności autokonfiguracji"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
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ę"
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Włącz sprawdzanie DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
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:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Własny serwer DNS"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Katalog przechowywania kluczy DKIM"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
+"Ś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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Domyślna długość klucza DKIM"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Domyślne ograniczenie dla domeny"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -303,19 +306,19 @@ msgstr ""
"Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - "
"brak ograniczenia)"
-#: admin/app_settings.py:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Domyślny limit wysyłania dla domey"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
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."
+"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:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -323,21 +326,20 @@ msgstr ""
msgid "Mailboxes"
msgstr "Skrzynki pocztowe"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Przechowuj skrzynka na filesystemie"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
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"
+"Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub "
+"usuniętę przez Modoboa"
-#: 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:454 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"
@@ -349,11 +351,11 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Domyślny limit wysyłania skrzynki"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -361,28 +363,27 @@ 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:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Automatyczne usuwanie konta"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Automatyczne tworzenie domeny/skrzynki"
-#: admin/app_settings.py:177 admin/app_settings.py:491
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:177 admin/app_settings.py:489
+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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Utwórz alias podczas zmiany nazwy skrzynki"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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."
@@ -390,11 +391,11 @@ msgstr "Utwórz alias używając starego adresu podczas zmiany nazwy skrzynki."
msgid "Directory not found."
msgstr "Katalog nie znaleziony."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
-#| "Default mailbox quota (in MB) applied to freshly created mailboxes with no "
-#| "value specified. A value of 0 means no quota."
+#| "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."
@@ -402,7 +403,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administracja"
@@ -508,9 +509,9 @@ msgstr "Limit"
#: 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 ""
"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 "
@@ -556,9 +557,9 @@ 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 ""
-"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."
+"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:339 admin/forms/alias.py:95
#: admin/models/mailbox.py:308
@@ -582,8 +583,8 @@ msgstr "Domena(y), którmi zarządza użytkownik"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Ogólne"
@@ -668,7 +669,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "alias domeny"
@@ -686,7 +687,7 @@ msgstr "Katalog przechowywania kluczy DKIM nie został skonfigurowany"
msgid "You can't define an unlimited quota."
msgstr "Nie możesz przypisać nielimitowanej przestrzeni"
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domena"
@@ -795,28 +796,28 @@ 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:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Błąd importu (%s): domena nie istnieje"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Skrzynka {} już istnieje"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Błąd importu (%s): błędna wartość limitu"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Przekaż"
@@ -851,12 +852,11 @@ msgstr "Znaleziono nie działające serwery nazw"
#, 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"
+"Upłynąć czas na rozwiązanie nazwy w DNS, w tym momencie nie potrafię odpytać "
+"%s"
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -874,16 +874,16 @@ msgstr "Obiekt %s już istnieje"
msgid "%d objects imported successfully"
msgstr "Zaimportowano %d obiektów z sukcesem"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "Nie potrafię zdekodować pliku CSV używając kodowania %(encoding)s"
@@ -894,11 +894,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1013,25 +1013,25 @@ msgstr "Włącz podpisywanie DKIM"
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"
+"Jeśli włączysz tą funkcjonalność, dla tej domeny zostanie wygenerowany klucz "
+"DKIM"
#: admin/models/domain.py:70
msgid "Key length"
msgstr "Długość klucza"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Niepoprawna linia"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1090,9 +1090,8 @@ 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"
@@ -1266,6 +1265,7 @@ msgstr "Alarm otwarty dla"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Data"
@@ -1347,12 +1347,11 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Nie"
@@ -1360,7 +1359,7 @@ msgstr "Nie"
msgid "Generate new key"
msgstr "Wygeneruj nowy klucz"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "tak"
@@ -1410,7 +1409,7 @@ msgstr "ID kolejki"
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Od"
@@ -1449,7 +1448,7 @@ msgstr "Automatycznie przekazuj wiadomości do do innych odbiorców"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Zaktualizuj"
@@ -1477,28 +1476,33 @@ msgid ""
"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"
+" - domain; nazwa; quota; domyślna quota skrzynki; enabled"
+"li> \n"
"
- domainalias; nazwa; docelowa domena; enabled
\n"
-"- relaydomain; nazwa; docelowy host; docelowy port; service; enabled; verify recipients
\n"
+"- relaydomain; nazwa; docelowy host; docelowy port; service; enabled; "
+"verify recipients
\n"
"\n"
-"Pierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną z powyższych wartości.
\n"
+"Pierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną "
+"z powyższych wartości.
\n"
"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; "
+"
- 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 ""
"Przygotuj plik CSV gdzie linie są następującego formatu:\n"
" \n"
-"- konto; login; hasło; imię; nazwisko; enabled; grupa; addres; quota; [, domena, ...]
\n"
+"- konto; login; hasło; imię; nazwisko; enabled; grupa; addres; quota; "
+"[, domena, ...]
\n"
"- alias; addres; enabled; recipient; recipient; ...
\n"
"
\n"
-"Pierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną z powyższych wartości.
\n"
+"Pierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną "
+"z powyższych wartości.
\n"
"Możesz użyć różnych znaków jako separatora pól."
#: admin/templates/admin/importform.html:6
@@ -1527,8 +1531,7 @@ 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."
@@ -1584,7 +1587,7 @@ msgid "Message logs"
msgstr "Logi wiadomości"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importuj"
@@ -1660,11 +1663,11 @@ msgstr[1] "Alias skasowano"
msgstr[2] "Alias skasowano"
msgstr[3] "Aliasy skasowano"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Rekordy MX dla {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL podsumowanie dla {}"
@@ -1697,11 +1700,11 @@ msgstr[1] "Konta usunięte"
msgstr[2] "Konta usunięte"
msgstr[3] "Konta usunięte"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importuj domeny"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importuj tożsamości"
@@ -1751,7 +1754,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Zezwól temu administratorowi na dostęp do skrzynek użytkowników"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Różne"
@@ -1764,8 +1767,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1805,8 +1807,7 @@ msgstr "Częstotliwość synchronizacji"
msgid "Interval in seconds between 2 synchronization requests"
msgstr "Odstęp pomiędzy synchronizacjami, w sekundach"
-#: contacts/app_settings.py:51
-#: contacts/templates/modoboa_contacts/index.html:6
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
#: core/api/v2/viewsets.py:164
#, fuzzy
#| msgid "Domains"
@@ -1885,7 +1886,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Nieprawidłowa składnia"
@@ -1897,8 +1898,7 @@ msgstr "Nieprawidłowa liczba rund"
msgid "This code is invalid"
msgstr "Ten kod jest nieprawidłowy"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr "Proszę użyć następującego kodu, aby odzyskać hasło Modoboa: {}"
@@ -1918,31 +1918,38 @@ msgstr ""
msgid "Address book"
msgstr "Książka adresowa"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "E-mail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Uwierzytelnianie"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Typ uwierzytelniania"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Backend używany do uwierzytelniania"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Domyślny schemat hasła"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schemat używany do szyfrowania haseł do skrzynek"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Rund"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1950,37 +1957,37 @@ msgstr ""
"Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać "
"pomiędzy 1000 a 999999999 włącznie."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Aktualizuj schemat haseł przy logowaniu"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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ł"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Domyślne hasło"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Domyślne hasło dla automatycznie dodawanych kont."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Długość losowego hasła"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Długość losowo wygenerowanego hasła"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Zaktualizuj URL usługi hasła"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -1991,30 +1998,30 @@ msgstr ""
"utworzonych automatycznie po prawidłowym zalogowaniu do zewnętrznych usług "
"(LDAP, SMTP)."
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Komunikat o odzyskiwaniu hasła"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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."
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Włącz odzyskiwania hasła przez SMS"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "Dostawca SMS"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "Wybierz dostawcę, aby wysłać SMS odzyskiwania hasła Dostawca SMS"
@@ -2022,111 +2029,114 @@ msgstr "Wybierz dostawcę, aby wysłać SMS odzyskiwania hasła Dostawca SMS"
msgid "LDAP settings"
msgstr "Ustawienia LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Adres serwera"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP lub nazwa DNS serwera LDAP"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Port serwera"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Port TCP używany przez LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Włącz dodatkowy serwer (awaryjny)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Adres serwera dodatkowego"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Port na serwerze dodatkowym"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Użyj bezpiecznego polączenia"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Czy LDAP jest Active Directory "
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Administrator grup"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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 ""
-"Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny."
-" Użyj znaku ';' jako separatora grup."
+"Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. "
+"Użyj znaku ';' jako separatora grup."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Typ grupy"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Typ grupy LDAP do wykorzystania z Twoim katalogiem."
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Wyszukiwarka grup"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atrybut hasła"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Atrybut używany do przechowywania haseł użytkowników"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "Ustawienia uwierzytelniania LDAP"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Metoda autentykacji"
@@ -2138,17 +2148,17 @@ msgstr "Wyszukaj i powiąż"
msgid "Direct bind"
msgstr "Bezpośrednie powiązanie"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Wybierz metode autentykacji"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Przypnij do 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2156,43 +2166,43 @@ msgstr ""
"DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego "
"podłączenia"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Hasło"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Wyszukiwania użytkowników"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtr wyszukiwania"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Użyj szablonu DN"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2201,120 +2211,118 @@ msgstr ""
"Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden "
"symbol zastępczy (np. %(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "Ustawienia synchronizacji z LDAP"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Włącz export do LDAP"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
-msgstr ""
-"Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP"
+msgstr "Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
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:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
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."
+"Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne, w innym "
+"przypadku zostanie ono wyłączone."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Szablon konta DN"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, 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)"
+"Szablon używany do budowy DN konta. Powinien zawierać jeden placeholder (ie. "
+"%(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Włącz import z LDAP"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
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:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Atrybut nazwa użytkownika"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Włącz synchronizację Dovecot LDAP"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-"Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji "
-"Dovecot."
+"Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji Dovecot."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Plik konfiguracyjny Dovecot LDAP"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Panel główny"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Spersonalizowany kanał RSS"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Ukryj kontrolki opcji"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr "Ukryj kontrolki opcji dla administratorów domeny i resellerów"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Powiadomienia"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Adres nadawcy"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Adres e-mail używany do wysyłania powiadomień"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Publiczne API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Włącz komunikację"
@@ -2322,99 +2330,97 @@ msgstr "Włącz komunikację"
msgid "Enable communication with Modoboa public API"
msgstr "Włącz komunikację z publicznym API Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Sprawdź nowe wersje"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Automatycznie sprawdzaj czy nowa wersja jest dostępna"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Wyślij email, jeżeli została znaleziona nowa wersja"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
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:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Odbioraca"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Odbiorca emaili z powiadomieniem o nowej wersji"
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Wyślij statystyki"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-"Prześlij statystyki do publicznego API Modoboa (licznik i użyte "
-"rozszerzenia)"
+"Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Próg nieaktywności konta"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Próg nieaktywności konta"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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 ""
"Konto z datą ostatniego logowania większą niż podany próg (w dniach) "
"zostanie uznane za nieaktywne. "
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Odstęp pomiędzy powiadomieniami "
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Odstęp pomiędzy dwoma powiadomieniami (w sek.)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Max wiek wpisu w logu"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Max wiek w dniach dla wpisu w logu"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Elementów na stronie"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Liczba wyświetlanych elementów na stronie"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Domyślne górne przekierowanie"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2569,7 +2575,7 @@ msgstr "Alternatywny email, może zostać użyty do odzyskania hasła"
msgid "Failed to update password: LDAP module not installed"
msgstr "Nieudana zmiana hasła: moduł LDAP nie został zainstalowany"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "konto"
@@ -2582,13 +2588,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Prosty uzytkownik '%s' musi posiadać prawidłowy adres email"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "pola nazwa użytkownika i email nie mogą się różnić dla '%s'"
#: core/password_validation.py:25
@@ -2746,15 +2754,15 @@ msgstr ""
#: core/templates/core/information.html:6
#, python-format
msgid ""
-"The password scheme %(scheme)s has been deprecated and will"
-" be removed in the next minor version. The procedure to upgrade to a "
-"stronger scheme is as follows:
- Go to Parameters > "
-"General section
- Change the value of Default "
-"password scheme
- Make sure Update password scheme "
-"at login option is enabled
- Save your changes
"
-"- Logout / Login with your current account so its password gets "
-"updated
- Inform ALL your users that they must login"
-" to Modoboa to complete the operation
"
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
msgstr ""
#: core/templates/core/information.html:18
@@ -2777,8 +2785,7 @@ msgstr "Aktualizacje są dostępne!"
#: core/templates/core/information.html:29
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."
+"Sprawdź poniższą listę, aby znaleźć komponenty, które mogą być aktualizowane."
#: core/templates/core/information.html:33
msgid "Applications"
@@ -2884,8 +2891,8 @@ 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."
+"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 "
@@ -2916,8 +2923,8 @@ msgid ""
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."
+"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."
@@ -3001,7 +3008,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Użytkownik '{}' wylogowany pomyślnie"
@@ -3041,13 +3048,14 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr "Brak wpisów MX dla %s"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "Not defined"
msgid "Not resolved"
msgstr "Nie zdefiniowano"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Brak"
@@ -3199,63 +3207,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3289,8 +3297,8 @@ 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."
+"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
@@ -3379,8 +3387,8 @@ 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
@@ -3397,9 +3405,10 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Błąd połączenia do serwera IMAP: %s"
#: imap_migration/checks.py:12
@@ -3427,11 +3436,11 @@ msgstr "Niepowodzenie w trakcie dodawania konta LDAP"
msgid "Failed to update LDAP account: {}"
msgstr "Niepowodzenie w trakcie aktualizacji konta LDAP"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Niepowodzenie w trakcie usuwania konta LDAP"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Niepowodzenie w trakcie wyłaczania konta LDAP"
@@ -3443,20 +3452,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Włącz komunikację z publicznym API Modoboa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Połączenie do bazy danych %s nie zostało skonfigurowane"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Odmowa dostepu: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Dostęp zabroniony"
@@ -3479,7 +3490,7 @@ msgid "Failed to update password: {}"
msgstr "Nieudana zmiana hasła: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Temat"
@@ -3496,8 +3507,8 @@ 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: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
msgid "Domain admins"
msgstr "Administratorzy domeny"
@@ -3506,21 +3517,21 @@ 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ść)"
+"Maksymalna dozwolona liczba administratorów domen dla nowego administratora. "
+"(0 - 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ść)"
+"Maksymalna dozwolona ilość 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)"
+"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ść)"
@@ -3563,8 +3574,8 @@ msgstr "Włącz lub wyłącz limity na domenę"
#: 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)"
+"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)"
@@ -3587,8 +3598,8 @@ msgstr ""
#: 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)"
+"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ść)"
@@ -3696,7 +3707,7 @@ msgstr "Pokaż greylistowane wiadomości"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Rozróżniaj twarde i miękkie odrzuty (greylisting)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statystyki"
@@ -3704,63 +3715,63 @@ msgstr "Statystyki"
msgid "Failed to locate rrdtool binary."
msgstr "Nie znaleziono binarki rrdtool."
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Średni ruch (wiadomości/minutę)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "Wysłane wiadomości"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "Odebrane wiadomości"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "Odbite wiadomości"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "Odrzucone wiadomości"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "wiadomości zawirusowane"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "wiadomości spam"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "wiadomości opóźnione (greylisting)"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Średnia normalna wielkość ruchu (bajtów/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "Ilość odebranych danych"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "Ilość wysłanych danych"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Ruch e-mail"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Średnia ilość tworzonych kont (konto/godzina)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Nowe konta"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Konta"
@@ -3776,41 +3787,41 @@ msgstr "Wyszukaj domenę"
msgid "Apply"
msgstr "Zastosuj"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Brak dostępnych statysty"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Dzień"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Tydzień"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Miesiąc"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Rok"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Własne"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Unknown graphic set"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Unknown graphic set"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Nieprawudłowy przedział czasowy"
@@ -3866,8 +3877,7 @@ msgid ""
"Automatically delete a document just after its first download from this "
"interface"
msgstr ""
-"Automatycznie usuwaj dokumenty jak tylko zostaną pobranie przez ten "
-"interfejs"
+"Automatycznie usuwaj dokumenty jak tylko zostaną pobranie przez ten interfejs"
#: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223
msgid "Generate documents only at account creation"
@@ -3879,8 +3889,7 @@ msgid ""
"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."
+"ustawione na nie, to nowy dokument będzie tworzony przy każdej zmianie hasła."
#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232
msgid "Customization options"
@@ -3994,7 +4003,9 @@ msgid ""
"the document as soon as possible.\n"
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"
+"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:95
msgid "Web panel:"
@@ -4007,7 +4018,8 @@ msgid ""
"your contacts.\n"
msgstr ""
"\n"
-"Pod tym adresem możesz online przeczytać swoje wiadomości, stworzyć filtry lub zarządzać\n"
+"Pod tym adresem możesz online przeczytać swoje wiadomości, stworzyć filtry "
+"lub zarządzać\n"
" listą kontaktów.\n"
#: pdfcredentials/documents.py:126
@@ -4040,8 +4052,7 @@ msgstr "Poświadczenia PDF"
#: 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)"
@@ -4056,13 +4067,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "Osiągnięto limit: %s"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4073,38 +4084,38 @@ msgstr "Osiągnięto limit: %s"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Data z przeszłości"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Automatyczny limit czasu odpowiedzi"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Domyślny temat"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr "Domyślny temat używany dla automatycznych autoodpowiedzi"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4114,25 +4125,25 @@ msgstr ""
"zostanie zastąpione przez pełną nazwę użytkownika."
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Autoamtyczne odpowiedzi"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Do"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4143,17 +4154,17 @@ msgstr ""
"zostaną automatycznie zastąpione odpowiednią wartością: %(name)s, "
"%(fromdate)s, %(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Jestem niedostępny"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Domyślna zawartość"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4166,14 +4177,14 @@ msgstr ""
"Pozdrawiam,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Automatyczna odpowidź"
@@ -4203,7 +4214,7 @@ msgstr "Włącz/Wyłącz auto-odpowiedzi"
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
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Auto reply message updated successfully."
@@ -4233,7 +4244,7 @@ msgstr "docelowy port hosta"
msgid "verify recipients"
msgstr "sprawdź odbiorców"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4264,24 +4275,28 @@ msgid "Use the STARTTLS extension"
msgstr "Użyj rozszerzenia STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "Ustawienia IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
#, fuzzy
#| msgid "Address of the IMAP server (hostname or IP)"
msgid "Address of your IMAP server"
msgstr "Adres serwera IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
msgstr "Użyj bezpiecznego połączenia do serwera IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
#, fuzzy
#| msgid "Listening port of the IMAP server"
msgid "Listening port of your IMAP server"
@@ -4391,42 +4406,38 @@ msgstr "Tryb edycji"
msgid "Select the mode you want the editor to work in"
msgstr "Wybierz tryb w jakim ma działać edytor"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
msgstr "Folder kosza"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "Folder, do którego trafiają usunięte wiadomości"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
msgstr "Folder wysłane"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr "Folder, do którego trafiają kopie wysłanych wiadomości"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
msgstr "Folder kopie robocze"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr "Folder, do którego trafiają kopie robocze"
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Nie udało się rozpoznać hierarchii separatora"
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr "Błąd połączenia do serwera MANAGESIEVE: %s, sprawdź konfigurację"
@@ -4604,8 +4615,8 @@ msgstr "Stare hasło"
#: templates/registration/twofactor_code_verify.html:35
msgid ""
-"Enter the code from the two-factor app on your mobile device. If you've lost"
-" your device, you may enter one of your recovery codes."
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
msgstr ""
#: templates/registration/twofactor_code_verify.html:42
@@ -4639,14 +4650,188 @@ msgstr "usługa"
msgid "next hop"
msgstr "następny krok"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Ustawienia IMAP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of the IMAP server (hostname or IP)"
+msgid "Address of your SMTP server"
+msgstr "Adres serwera IMAP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Użyj bezpiecznego polączenia"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Użyj bezpiecznego połączenia do serwera IMAP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of the IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Port, na którym nasłuchuje twój serwer IMAP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Metoda autentykacji"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Preferowany mechanizm uwierzytelnienia"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Liczba wyświetlanych elementów na stronie"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr "Utwórz aliasy"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "Folder wysłane"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Folder, do którego trafiają usunięte wiadomości"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Wysłane wiadomości"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Domyślne górne przekierowanie"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Nie udało się usunąć filtru"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Nie udało się rozpoznać hierarchii separatora"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "Folder kopie robocze"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Mechanizm autentykacji"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Preferowany mechanizm uwierzytelnienia"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Katalog nie znaleziony."
@@ -4683,8 +4868,10 @@ msgstr "następny krok"
#~ msgstr "aktywny"
#~ msgid ""
-#~ "No filters set defined yet. You must create one in order to define filters."
-#~ msgstr "Nie zdefiniowano zestawu filtrów. Musisz utworzyć przynajmniej jeden."
+#~ "No filters set defined yet. You must create one in order to define "
+#~ "filters."
+#~ msgstr ""
+#~ "Nie zdefiniowano zestawu filtrów. Musisz utworzyć przynajmniej jeden."
#~ msgid "New filters set"
#~ msgstr "Nowy zestaw filtrów"
@@ -4737,9 +4924,6 @@ msgstr "następny krok"
#~ msgid "Filter removed"
#~ msgstr "Filtr usunięto"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Nie udało się usunąć filtru"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Zestaw filtrów zapisano"
@@ -4773,7 +4957,8 @@ msgstr "następny krok"
#~ 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"
+#~ msgstr ""
+#~ "Generuj dokumenty PDF zawierające dane uwierzytelniające użytkowników"
#~ msgid "Graphical statistics about emails traffic using RRDtool"
#~ msgstr "Graficzne statystyki wiadomości z wykorzystaniem "
diff --git a/modoboa/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/locale/pt_BR/LC_MESSAGES/django.po
index 054d2faf4..b55d9c8bc 100644
--- a/modoboa/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/locale/pt_BR/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# csmk, 2014
# Ian Moone, 2016
@@ -26,41 +26,45 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: 2011-07-01 08:15+0000\n"
"Last-Translator: Rafael Barretto Alves , 2013,2015-2017,2025\n"
"Language-Team: Portuguese (Brazil) (http://app.transifex.com/tonio/modoboa/language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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 "Cota compartilhada entre caixas de correio. Pode ser expresso em KB, MB (padrão) ou GB. Um valor 0 significa que não há cota."
+msgstr ""
+"Cota compartilhada entre caixas de correio. Pode ser expresso em KB, MB "
+"(padrão) ou GB. Um valor 0 significa que não há cota."
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr "Cota padrão em MB aplicada para caixas de correio. Um valor 0 significa que não há cota."
+msgstr ""
+"Cota padrão em MB aplicada para caixas de correio. Um valor 0 significa que "
+"não há cota."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr "Nenhum registro MX autorizado encontrado para este domínio"
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr "Não pode ser maior que a cota de domínio"
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Permissão negada."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -68,20 +72,22 @@ msgstr "Permissão negada."
msgid "This field is required"
msgstr "Este campo é obrigatório"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr "Lista de domínios administrados (somente revendedores e administradores de domínio)."
+msgstr ""
+"Lista de domínios administrados (somente revendedores e administradores de "
+"domínio)."
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Não é permitido para esta função."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Deve ser igual a full_address de caixa de correio"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -90,23 +96,23 @@ msgstr "Deve ser igual a full_address de caixa de correio"
msgid "This field is required."
msgstr "Este campo é obrigatório."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Domínio local {} não existe"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "Uma lista de destinatários"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr "Este apelido já existe"
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Você não tem acesso a este domínio."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Você não tem acesso a esta caixa de correio."
@@ -129,27 +135,29 @@ msgstr "Deve ser um inteiro positivo"
msgid "openssl not found, please make sure it is installed."
msgstr "openssl não encontrado, certifique-se que está instalado."
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr "Este campo permite apenas endereços IP válidos (ou redes)"
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr "Desative a migração imap antes de desativar esta opção."
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Defina pelo menos uma rede/endereço autorizado"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
-msgstr "A parte à esquerda de um endereço de e-mail não pode ter mais de 64 caracteres."
+msgstr ""
+"A parte à esquerda de um endereço de e-mail não pode ter mais de 64 "
+"caracteres."
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr "Uma caixa de correio é necessária para criar apelidos."
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr "Status desconhecido"
@@ -170,137 +178,153 @@ msgstr "Nenhum ID de alarme fornecido"
msgid "Received invalid alarm id(s)"
msgstr "IDs de alarme inválidos recebidos"
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domínios"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Habilitar verificações MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "Verifique se cada domínio tem um registro MX válido"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "MXs válidos"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 endereços IP ou de rede que cada registro MX deve corresponder. Um aviso será enviado se um registro não for respeitado."
+msgstr ""
+"Uma lista de endereços IP ou de rede que cada registro MX deve corresponder."
+" Um aviso será enviado se um registro não for respeitado."
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Novos domínios devem usar MX(s) autorizado(s)"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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 seu registro MX não usar um dos endereços definidos."
+msgstr ""
+"Impedir a criação de um novo domínio se seu registro MX não usar um dos "
+"endereços definidos."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr "Habilitar verificações IPV6"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr "Verifique se a configuração MX para ipv6 é válida"
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Habilitar verificações de SPF"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr "Verifique se cada domínio tem um registro SPF válido"
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Ativar verificações DKIM"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
-msgstr "Verifique se todos os domínios com login DKIM habilitado têm um registro DNS válido"
+msgstr ""
+"Verifique se todos os domínios com login DKIM habilitado têm um registro DNS"
+" válido"
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Habilitar verificações DMARC"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr "Verifique se cada domínio tem um registro DMARC válido"
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Habilitar verificações de configuração automática"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
-msgstr "Verifique se cada domínio tem registros válidos para configuração automática"
+msgstr ""
+"Verifique se cada domínio tem registros válidos para configuração automática"
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Ativar verificações DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
-msgstr "Verifique todos os domínios em relação aos principais provedores de DNSBL"
+msgstr ""
+"Verifique todos os domínios em relação aos principais provedores de DNSBL"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Servidor de DNS personalizado"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
-msgstr "Usar um servidor DNS personalizado em vez da configuração do servidor local"
+msgstr ""
+"Usar um servidor DNS personalizado em vez da configuração do servidor local"
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Diretório de armazenamento de chaves DKIM"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 que este diretório pertença ao usuário root e não seja legível pelo mundo exterior."
+msgstr ""
+"Caminho absoluto do diretório onde as chaves privadas DKIM serão "
+"armazenadas. Certifique-se que este diretório pertença ao usuário root e não"
+" seja legível pelo mundo exterior."
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Comprimento padrão da chave DKIM"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Cota de domínio padrão"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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 domínios recém-criados sem nenhum valor especificado. Um valor 0 significa que não há cota."
+msgstr ""
+"Cota padrão (em MB) aplicada para domínios recém-criados sem nenhum valor "
+"especificado. Um valor 0 significa que não há cota."
-#: admin/app_settings.py:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Limite padrão de envio de domínio"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
-msgstr "Número de mensagens que os domínios recém-criados poderão enviar por dia. Deixe vazio para ilimitado."
+msgstr ""
+"Número de mensagens que os domínios recém-criados poderão enviar por dia. "
+"Deixe vazio para ilimitado."
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -308,17 +332,19 @@ msgstr "Número de mensagens que os domínios recém-criados poderão enviar por
msgid "Mailboxes"
msgstr "Caixas de correio"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Manipular caixas de correio no sistema de arquivos"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
-msgstr "Renomeie ou remova caixas de correio no sistema de arquivos quando elas forem renomeadas ou removidas no Modoboa"
+msgstr ""
+"Renomeie ou remova caixas de correio no sistema de arquivos quando elas "
+"forem renomeadas ou removidas no Modoboa"
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -328,54 +354,66 @@ msgstr "Cota de caixa de correio padrão"
msgid ""
"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
-msgstr "Cota de caixa de correio padrão (em MB) aplicada para caixas de correio recém-criadas sem nenhum valor especificado. Um valor 0 significa que não há cota."
+msgstr ""
+"Cota de caixa de correio padrão (em MB) aplicada para caixas de correio "
+"recém-criadas sem nenhum valor especificado. Um valor 0 significa que não há"
+" cota."
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Limite padrão de envio de caixa de correio"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
-msgstr "Número de mensagens que caixas de correio recém-criadas poderão enviar por dia. Deixe vazio para ilimitado."
+msgstr ""
+"Número de mensagens que caixas de correio recém-criadas poderão enviar por "
+"dia. Deixe vazio para ilimitado."
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Remoção automática de conta"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
-msgstr "Quando uma caixa de correio for removida, remova também a conta associada"
+msgstr ""
+"Quando uma caixa de correio for removida, remova também a conta associada"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Criação automática de domínio/caixa de correio"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid ""
"Create a domain and a mailbox when an account is automatically created."
-msgstr "Crie um domínio e uma caixa de correio quando uma conta for criada automaticamente."
+msgstr ""
+"Crie um domínio e uma caixa de correio quando uma conta for criada "
+"automaticamente."
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "Criar um apelido quando uma caixa de correio for renomeada"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
-msgstr "Crie um apelido usando o endereço antigo quando uma caixa de correio for renomeada."
+msgstr ""
+"Crie um apelido usando o endereço antigo quando uma caixa de correio for "
+"renomeada."
#: admin/app_settings.py:244 pdfcredentials/api/v2/serializers.py:59
msgid "Directory not found."
msgstr "Diretório não encontrado."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
-msgstr "Cota de caixa de correio padrão (em MB) aplicada para domínios recém-criados sem nenhum valor especificado. Um valor 0 significa que não há cota."
+msgstr ""
+"Cota de caixa de correio padrão (em MB) aplicada para domínios recém-criados"
+" sem nenhum valor especificado. Um valor 0 significa que não há cota."
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administração"
@@ -407,7 +445,9 @@ msgstr "Nome de usuário"
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
-msgstr "O nome do usuário. Deve ser um endereço de e-mail válido para usuários simples ou administradores com uma caixa de correio."
+msgstr ""
+"O nome do usuário. Deve ser um endereço de e-mail válido para usuários "
+"simples ou administradores com uma caixa de correio."
#: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29
#: core/templates/core/information.html:60
@@ -430,7 +470,9 @@ msgstr "Senha aleatória"
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
-msgstr "Gere uma senha aleatória. Se você estiver atualizando esta conta e marcar esta caixa, uma nova senha será gerada."
+msgstr ""
+"Gere uma senha aleatória. Se você estiver atualizando esta conta e marcar "
+"esta caixa, uma nova senha será gerada."
#: admin/forms/account.py:49 pdfcredentials/documents.py:99
msgid "Password"
@@ -480,7 +522,11 @@ 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 "A cota para essa caixa de correio pode ser expressa em KB, MB (padrão) ou GB. Defina um valor personalizado ou use o padrão do domínio. Deixe em branco para definir um valor ilimitado (não permitido para administradores de domínio)."
+msgstr ""
+"A cota para essa caixa de correio pode ser expressa em KB, MB (padrão) ou "
+"GB. Defina um valor personalizado ou use o padrão do domínio. Deixe em "
+"branco para definir um valor ilimitado (não permitido para administradores "
+"de domínio)."
#: admin/forms/account.py:254 admin/models/domain.py:39
#: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50
@@ -506,7 +552,10 @@ msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Apelido(s) desta caixa de correio. Indique apenas um endereço por entrada, pressione ENTER para adicionar uma nova entrada. Para criar um apelido catchall, basta digitar o nome de domínio (@domain.tld)."
+msgstr ""
+"Apelido(s) desta caixa de correio. Indique apenas um endereço por entrada, "
+"pressione ENTER para adicionar uma nova entrada. Para criar um apelido "
+"catchall, basta digitar o nome de domínio (@domain.tld)."
#: admin/forms/account.py:275
msgid "Sender addresses"
@@ -517,7 +566,11 @@ 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) de remetente adicional(is) para esta conta. O usuário poderá enviar e-mails usando esse endereço, mesmo que ele não exista localmente. Indique um endereço por entrada. Pressione ENTER para adicionar uma nova entrada."
+msgstr ""
+"Endereço(s) de remetente adicional(is) para esta conta. O usuário poderá "
+"enviar e-mails usando esse endereço, mesmo que ele não exista localmente. "
+"Indique um endereço por entrada. Pressione ENTER para adicionar uma nova "
+"entrada."
#: admin/forms/account.py:339 admin/forms/alias.py:95
#: admin/models/mailbox.py:308
@@ -541,8 +594,8 @@ msgstr "Domínio(s) que o usuário administra"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Geral"
@@ -583,7 +636,9 @@ msgstr "Endereço de e-mail"
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "O endereço do apelido. Para criar um apelido catchall, basta digitar o nome de domínio (@domain.tld)."
+msgstr ""
+"O endereço do apelido. Para criar um apelido catchall, basta digitar o nome "
+"de domínio (@domain.tld)."
#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
@@ -593,7 +648,9 @@ msgstr "Destinatários"
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr "Endereços para os quais esse apelido apontará. Indique apenas um endereço por entrada, pressione ENTER para adicionar uma nova entrada."
+msgstr ""
+"Endereços para os quais esse apelido apontará. Indique apenas um endereço "
+"por entrada, pressione ENTER para adicionar uma nova entrada."
#: admin/forms/alias.py:119
msgid "No recipient defined"
@@ -608,7 +665,9 @@ msgstr "Tipo"
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
-msgstr "Apelido(s) deste domínio. Indique apenas um nome por entrada, pressione ENTER para adicionar uma nova entrada."
+msgstr ""
+"Apelido(s) deste domínio. Indique apenas um nome por entrada, pressione "
+"ENTER para adicionar uma nova entrada."
#: admin/forms/domain.py:43
msgid "Key selector"
@@ -618,9 +677,11 @@ msgstr "Seletor de chaves"
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 aplicada para caixas de correio. Pode ser expresso em KB, MB (padrão) ou GB. Um valor 0 significa que não há cota."
+msgstr ""
+"Cota padrão aplicada para caixas de correio. Pode ser expresso em KB, MB "
+"(padrão) ou GB. Um valor 0 significa que não há cota."
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "apelido de domínio"
@@ -638,7 +699,7 @@ msgstr "Diretório de armazenamento de chaves DKIM não configurado"
msgid "You can't define an unlimited quota."
msgstr "Você não pode definir uma cota ilimitada."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domínio"
@@ -663,7 +724,9 @@ msgstr "Nome"
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 aqui, ele será anexado automaticamente."
+msgstr ""
+"O nome do administrador. Não inclua o nome do domínio aqui, ele será anexado"
+" automaticamente."
#: admin/forms/domain.py:264
msgid "Generate a random password for the administrator."
@@ -743,30 +806,32 @@ msgstr "Senhas de criptografia"
#: 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 em seu arquivo não estiverem criptografadas"
+msgstr ""
+"Marque esta opção se as senhas contidas em seu arquivo não estiverem "
+"criptografadas"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Falha na importação da conta (%s): o domínio não existe"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "A caixa de correio {} já existe"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Falha na importação da conta (%s): valor de cota incorreto"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Encaminhar"
@@ -800,11 +865,13 @@ msgstr "Nenhum servidor de nomes funcional encontrado"
#: admin/lib.py:252 admin/tests/test_mx.py:161
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
-msgstr "Tempo limite de resolução de DNS, não é possível consultar %s no momento"
+msgstr ""
+"Tempo limite de resolução de DNS, não é possível consultar %s no momento"
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+#, fuzzy
+#| msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr "O nome DNS é muito longo: %s"
#: admin/lib.py:287
@@ -822,31 +889,33 @@ msgstr "O objeto já existe: %s"
msgid "%d objects imported successfully"
msgstr "%d objetos importados com sucesso"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr "CSV não está codificado em UTF-8, tentando adivinhar a codificação"
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr "Lendo arquivo CSV usando codificação %(encoding)s"
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
-msgstr "Não é possível decodificar o arquivo CSV usando a codificação %(encoding)s"
+msgstr ""
+"Não é possível decodificar o arquivo CSV usando a codificação %(encoding)s"
#: admin/management/commands/subcommands/_manage_dkim_keys.py:29
msgid ""
"DKIM path non-writable (either a permission issue or the directory does not "
"exist)"
-msgstr "Caminho DKIM não gravável (problema de permissão ou o diretório não existe)"
+msgstr ""
+"Caminho DKIM não gravável (problema de permissão ou o diretório não existe)"
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr "Falha ao gerar a chave privada DKIM"
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr "Falha ao gerar a chave pública DKIM"
@@ -956,22 +1025,23 @@ msgstr "Habilitar assinatura DKIM"
#: admin/models/domain.py:63
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr "Se você ativar esse recurso, uma chave DKIM será gerada para esse domínio."
+msgstr ""
+"Se você ativar esse recurso, uma chave DKIM será gerada para esse domínio."
#: admin/models/domain.py:70
msgid "Key length"
msgstr "Comprimento da chave"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Linha inválida"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr "{}: nenhum registro MX autorizado encontrado para o domínio"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr "{}: valor de cota inválido para domínio"
@@ -981,7 +1051,9 @@ msgstr "{}: valor de cota de caixa de correio padrão inválido para domínio"
#: admin/models/domain.py:395
msgid "{}: default mailbox quota cannot be greater than domain quota"
-msgstr "{}: a cota de caixa de correio padrão não pode ser maior que a cota de domínio"
+msgstr ""
+"{}: a cota de caixa de correio padrão não pode ser maior que a cota de "
+"domínio"
#: admin/models/domain_alias.py:36
msgid "The alias name"
@@ -1195,6 +1267,7 @@ msgstr "Alarmes abertos para"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Data"
@@ -1281,7 +1354,7 @@ msgid ""
msgstr "As chaves DKIM já existem para este domínio. Deseja substituí-las?"
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Não"
@@ -1289,7 +1362,7 @@ msgstr "Não"
msgid "Generate new key"
msgstr "Gerar nova chave"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Sim"
@@ -1339,9 +1412,9 @@ msgstr "ID da fila"
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
-msgstr "De"
+msgstr ""
#: admin/templates/admin/domains_log_headers.html:5
#: admin/templates/admin/messages_log_headers.html:5
@@ -1378,7 +1451,7 @@ msgstr "Encaminhar e-mails automaticamente para outro endereço"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Atualizar"
@@ -1404,7 +1477,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 "Forneça um arquivo CSV em que 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 caractere diferente como separador.
"
+msgstr ""
+"Forneça um arquivo CSV em que 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 caractere diferente como separador.
"
#: admin/templates/admin/import_identities_form.html:6
msgid ""
@@ -1414,7 +1494,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 "Forneça um arquivo CSV em que 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 caractere diferente como separador.
"
+msgstr ""
+"Forneça um arquivo CSV em que 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 caractere diferente como separador.
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1442,7 +1528,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."
@@ -1453,19 +1540,26 @@ msgstr "Nenhum registro MX encontrado para este domínio."
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
-msgstr "O Modoboa detectou que o domínio %(domain)s está listado pelos seguintes provedores DNSBL:"
+msgstr ""
+"O Modoboa detectou que o domínio %(domain)s está listado pelos seguintes "
+"provedores DNSBL:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "A reputação do domínio será afetada e há uma chance de que os e-mails provenientes dele sejam considerados spam. Você deve entrar em contato com esses provedores e pedir que eles retirem a lista de endereços IP detectados."
+msgstr ""
+"A reputação do domínio será afetada e há uma chance de que os e-mails "
+"provenientes dele sejam considerados spam. Você deve entrar em contato com "
+"esses provedores e pedir que eles retirem a lista de endereços IP "
+"detectados."
#: 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"
@@ -1492,7 +1586,7 @@ msgid "Message logs"
msgstr "Logs de mensagens"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importar"
@@ -1566,11 +1660,11 @@ msgstr[0] "Apelido excluído"
msgstr[1] "Apelidos excluídos"
msgstr[2] "Apelidos excluídos"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Registros MX de {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Resumo DNSBL para {}"
@@ -1601,11 +1695,11 @@ msgstr[0] "Conta excluída"
msgstr[1] "Contas excluídas"
msgstr[2] "Contas excluídas"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importar domínios"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importar identidades"
@@ -1624,7 +1718,9 @@ msgstr "URL do servidor"
#: calendars/app_settings.py:19
msgid ""
"The URL of your Radicale server. It will be used to construct calendar URLs."
-msgstr "A URL de seu servidor Radicale. Ela será usada para construir URL's de calendários."
+msgstr ""
+"A URL de seu servidor Radicale. Ela será usada para construir URL's de "
+"calendários."
#: calendars/app_settings.py:31
msgid "Rights management"
@@ -1644,10 +1740,12 @@ msgstr "Permitir administração de calendários"
#: calendars/app_settings.py:48
msgid "Allow domain administrators to manage user calendars (read and write)"
-msgstr "Permitir aos administradores de domínio gerir calendários dos usuários (leitura e escrita)"
+msgstr ""
+"Permitir aos administradores de domínio gerir calendários dos usuários "
+"(leitura e escrita)"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Diversos"
@@ -1658,10 +1756,11 @@ msgstr "Tamanho máximo dos arquivos ICS"
#: calendars/app_settings.py:68
msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
-msgstr "Tamanho máximo em bytes dos arquivos ICS importados (ou KB, MB, GB se especificado)"
+msgstr ""
+"Tamanho máximo em bytes dos arquivos ICS importados (ou KB, MB, GB se "
+"especificado)"
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr "Calendários"
@@ -1685,7 +1784,9 @@ msgstr "Sincronize o catálogo de endereços usando CardDAV"
msgid ""
"Choose to synchronize or not your address book using CardDAV. You will be "
"able to access your contacts from the outside."
-msgstr "Opte por sincronizar ou não seu catálogo de endereços usando CardDAV. Você poderá acessar seus contatos externamente."
+msgstr ""
+"Opte por sincronizar ou não seu catálogo de endereços usando CardDAV. Você "
+"poderá acessar seus contatos externamente."
#: contacts/app_settings.py:29
msgid "Synchronization frequency"
@@ -1748,7 +1849,9 @@ msgstr "2FA já está habilitado"
#: core/api/v1/serializers.py:40
#, python-format
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
-msgstr "Falha na tentativa de edição de configurações do TFA de '%s' como usuário '%s'"
+msgstr ""
+"Falha na tentativa de edição de configurações do TFA de '%s' como usuário "
+"'%s'"
#: core/api/v1/serializers.py:44 core/api/v2/serializers.py:308
msgid "Invalid password"
@@ -1769,7 +1872,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Sintaxe inválida"
@@ -1781,10 +1884,11 @@ msgstr "Número de ciclos inválido"
msgid "This code is invalid"
msgstr "Este código é inválido"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
-msgstr "Por favor, use o seguinte código para recuperar sua senha do Modoboa: {}"
+msgstr ""
+"Por favor, use o seguinte código para recuperar sua senha do Modoboa: {}"
#: core/api/v2/viewsets.py:150
msgid "Administration console"
@@ -1798,92 +1902,108 @@ msgstr "Calendário"
msgid "Address book"
msgstr "Catálogo de endereço"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Autenticação"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Tipo de autenticação"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "O backend usado para autenticação"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Esquema padrão de senha"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para criptografar as senhas das caixas de correio"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Ciclos"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
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."
+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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Atualizar esquema de senha no login"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
-msgstr "Atualizar senha do usuário no login para usar o esquema de senha padrão"
+msgstr ""
+"Atualizar senha do usuário no login para usar o esquema de senha padrão"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Senha padrão"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Senha padrão para contas criadas automaticamente."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Tamanho de senha aleatório"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Tamanho das senhas geradas aleatoriamente."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Atualizar URL do serviço de senha"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "A URL de uma página externa onde os usuários poderão atualizar sua senha. Aplica-se apenas a usuários não locais, como por exemplo aqueles criados automaticamente após uma autenticação externa bem-sucedida (LDAP, SMTP)."
+msgstr ""
+"A URL de uma página externa onde os usuários poderão atualizar sua senha. "
+"Aplica-se apenas a usuários não locais, como por exemplo aqueles criados "
+"automaticamente após uma autenticação externa bem-sucedida (LDAP, SMTP)."
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Anúncio de recuperação de senha"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
-msgstr "Uma mensagem temporária que será exibida na página de redefinição de senha."
+msgstr ""
+"Uma mensagem temporária que será exibida na página de redefinição de senha."
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Ativar recuperação de senha por SMS"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
-msgstr "Habilitar a recuperação de senha por SMS para usuários que preencheram um número de telefone."
+msgstr ""
+"Habilitar a recuperação de senha por SMS para usuários que preencheram um "
+"número de telefone."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "Provedor de SMS"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "Escolha um provedor para enviar SMS de recuperação de senha"
@@ -1891,107 +2011,113 @@ msgstr "Escolha um provedor para enviar SMS de recuperação de senha"
msgid "LDAP settings"
msgstr "Configurações do LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Endereço do servidor"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Porta do servidor"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
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:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Habilitar servidor secundário (fallback)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
-msgstr "Habilitar um servidor LDAP secundário que será usado se o primário falhar"
+msgstr ""
+"Habilitar um servidor LDAP secundário que será usado se o primário falhar"
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Endereço do servidor secundário"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "O endereço IP ou o nome DNS do servidor LDAP secundário"
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Porta do servidor secundário"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr "O número da porta TCP usada pelo servidor secundário LDAP"
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Usar conexão segura"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Informe se o servidor LDAP é um Active Directory"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Grupos de administradores"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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."
+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:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Tipo de grupo"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Base de pesquisa de grupos"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atributo de senha"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "O atributo usado para armazenar senhas de usuários"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "Configurações de autenticação LDAP"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Método de autenticação"
@@ -2003,170 +2129,191 @@ msgstr "Pesquisar e vincular"
msgid "Direct bind"
msgstr "Vinculação direta"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Escolha o método de autenticação para usar"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Vincular 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
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"
+msgstr ""
+"O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para"
+" vincular anonimamente"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Vincular senha"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Base de pesquisa de usuários"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtro de pesquisa"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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."
+msgstr ""
+"Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser "
+"válida, deve estar entre parênteses."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Usar template DN"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, 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)"
+msgstr ""
+"A template usada para construir um DN de usuário. Deve conter um placeholder"
+" (por ex: %(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "Configurações de sincronização LDAP"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Habilitar exportação para LDAP"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
-msgstr "Ativar a sincronização automática entre o banco de dados local e o diretório LDAP"
+msgstr ""
+"Ativar a sincronização automática entre o banco de dados local e o diretório"
+" LDAP"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr "Excluir conta LDAP remota quando a conta local for excluída"
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
-msgstr "Exclua a conta LDAP remota quando a conta local for excluída, caso contrário, ela será desativada."
+msgstr ""
+"Exclua a conta LDAP remota quando a conta local for excluída, caso "
+"contrário, ela será desativada."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Modelo de DN de conta"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr "O modelo usado para construir o DN de uma conta. Ele deve conter um espaço reservado (ou seja. %(user)s)"
+msgstr ""
+"O modelo usado para construir o DN de uma conta. Ele deve conter um espaço "
+"reservado (ou seja. %(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Habilitar importação do LDAP"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
-msgstr "Habilitar a sincronização de conta do diretório LDAP para o banco de dados local"
+msgstr ""
+"Habilitar a sincronização de conta do diretório LDAP para o banco de dados "
+"local"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Atributo de nome de usuário"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr "O nome do atributo LDAP em que o nome de usuário pode ser encontrado."
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Ativar sincronização LDAP do Dovecot"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
-msgstr "As configurações de autenticação LDAP serão aplicadas à configuração do Dovecot."
+msgstr ""
+"As configurações de autenticação LDAP serão aplicadas à configuração do "
+"Dovecot."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Arquivo de configuração LDAP do Dovecot"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
-msgstr "Localização do arquivo de configuração que contém as configurações LDAP do Dovecot."
+msgstr ""
+"Localização do arquivo de configuração que contém as configurações LDAP do "
+"Dovecot."
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Painel"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Feed RSS personalizado"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
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:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Ocultar widget de recursos"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
-msgstr "Ocultar widget de recursos para revendedores e administradores de domínio"
+msgstr ""
+"Ocultar widget de recursos para revendedores e administradores de domínio"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notificações"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Endereço do remente"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Endereço de e-mail usado para enviar notificações."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "API Pública"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Habilitar comunicação"
@@ -2174,93 +2321,100 @@ msgstr "Habilitar comunicação"
msgid "Enable communication with Modoboa public API"
msgstr "Habilitar comunicação com API pública do Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Verificar novas versões"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Verificar automaticamente se uma nova versão está disponível"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Envie um e-mail quando novas versões forem encontradas"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr "Envie um e-mail para notificar os administradores sobre novas versões"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Destinatário"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Destinatário de e-mails de notificação de novas versões."
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Enviar estatísticas"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr "Ativar rastreamento de conta inativa"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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 "Permitir que o administrador defina um limite (em dias) além do qual uma conta é considerada inativa se o usuário não tiver feito login"
+msgstr ""
+"Permitir que o administrador defina um limite (em dias) além do qual uma "
+"conta é considerada inativa se o usuário não tiver feito login"
-#: core/app_settings.py:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Limite de conta inativa"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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á considerada como inativa"
+msgstr ""
+"Uma conta com uma data de login maior que este limite (em dias) será "
+"considerada como inativa"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Intervalo de verificação de verificações de topo"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo entre checagem de notificações (em segundos)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Idade máxima do registro de log"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
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:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Itens por página"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Número de itens exibidos por página"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Redirecionamento de topo padrão"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
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:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr "LDAP"
@@ -2269,7 +2423,10 @@ 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ê possui o USE_TZ definido como falso, isso pode resultar em problemas durante as transições entre horários de verão / inverno (exemplo: o horário local ocorrendo duas vezes devido a alteração do relógio)."
+msgstr ""
+"Você possui o USE_TZ definido como falso, isso pode resultar em problemas "
+"durante as transições entre horários de verão / inverno (exemplo: o horário "
+"local ocorrendo duas vezes devido a alteração do relógio)."
#: core/checks.py:17
msgid "Set `USE_TZ = True` in settings.py"
@@ -2388,7 +2545,8 @@ msgstr "Permitir acesso a caixa de correio"
#: core/models.py:74
msgid "Allow this administrator to access user mailboxes"
-msgstr "Permitir que este administrador acesse as caixas de correio de usuários"
+msgstr ""
+"Permitir que este administrador acesse as caixas de correio de usuários"
#: core/models.py:76 core/templates/core/user_security.html:119
msgid "password"
@@ -2404,13 +2562,15 @@ msgstr "Idioma padrão para visualizar mensagens."
#: core/models.py:92
msgid "An alternative e-mail address, can be used for recovery needs."
-msgstr "Endereço de e-mail alternativo, pode ser usado para recuperar a conta caso precise."
+msgstr ""
+"Endereço de e-mail alternativo, pode ser usado para recuperar a conta caso "
+"precise."
#: core/models.py:151
msgid "Failed to update password: LDAP module not installed"
msgstr "Falha ao atualizar senha: módulo LDAP não instalado"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "conta"
@@ -2423,13 +2583,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' 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:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "os campos nome de usuário e e-mail não diferem de '%s'"
#: core/password_validation.py:25
@@ -2462,7 +2624,8 @@ msgstr[2] "As senhas devem conter pelo menos {} caracteres especiais."
#: core/password_validation.py:70
msgid "Your password must contain a combination of different character types."
-msgstr "Sua senha deve conter uma combinação de diferentes tipos de caracteres."
+msgstr ""
+"Sua senha deve conter uma combinação de diferentes tipos de caracteres."
#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102
msgid "API endpoint"
@@ -2536,7 +2699,9 @@ msgstr "Últimas notícias"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr "Visite o weblog oficial para mais informação."
+msgstr ""
+"Visite o weblog "
+"oficial para mais informação."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -2551,7 +2716,9 @@ msgstr "Controle seu acesso a API Modoboa"
msgid ""
"A documentation of the API is available here."
-msgstr "Uma documentação da API está disponível aqui."
+msgstr ""
+"Uma documentação da API está disponível aqui."
#: core/templates/core/api_access.html:14
msgid "API access token"
@@ -2586,20 +2753,35 @@ msgid ""
"Logout / Login with your current account so its password gets "
"updated Inform ALL your users that they must login"
" to Modoboa to complete the operation "
-msgstr "O esquema de senha %(scheme)s foi descontinuado e será removido na próxima atualização. O procedimento de atualização para um esquema mais forte é o seguinte: - Vá para a seção Parâmetros > Geral
- Altere o valor de Esquema de senha padrão
- Certifique-se de que a opção Atualizar esquema de senha no login esteja habilitada
- Salve suas alterações
- Saia e entre novamente com sua conta atual para que sua senha seja atualizada
- Informe a TODOS seus usuários que eles devem fazer login no Modoboa para concluir a operação
"
+msgstr ""
+"O esquema de senha %(scheme)s foi descontinuado e será "
+"removido na próxima atualização. O procedimento de atualização para um "
+"esquema mais forte é o seguinte: - Vá para a seção Parâmetros"
+" > Geral
- Altere o valor de Esquema de senha "
+"padrão
- Certifique-se de que a opção Atualizar "
+"esquema de senha no login esteja habilitada
- Salve suas "
+"alterações
- Saia e entre novamente com sua conta atual para que sua "
+"senha seja atualizada
- Informe a TODOS seus "
+"usuários que eles devem fazer login no Modoboa para concluir a operação
"
+"
"
#: core/templates/core/information.html:18
msgid ""
"You must apply this procedure BEFORE you install a newest "
"version of Modoboa, otherwise you will be unable to connect to the "
"web interface anymore."
-msgstr "Você deve aplicar este procedimento ANTES de instalar uma versão mais recente do Modoboa, caso contrário você não conseguirá mais se conectar à interface web."
+msgstr ""
+"Você deve aplicar este procedimento ANTES de instalar uma "
+"versão mais recente do Modoboa, caso contrário você não conseguirá "
+"mais se conectar à interface web."
#: core/templates/core/information.html:23
msgid ""
"Please note that you will see this message until ALL user "
"passwords have been converted using the new scheme."
-msgstr "Observe que você verá esta mensagem até que TODAS as senhas dos usuários tenham sido convertidas usando o novo esquema."
+msgstr ""
+"Observe que você verá esta mensagem até que TODAS as senhas"
+" dos usuários tenham sido convertidas usando o novo esquema."
#: core/templates/core/information.html:28
msgid "One or more updates are available!"
@@ -2607,7 +2789,9 @@ msgstr "Uma ou mais atualizações disponíveis!"
#: core/templates/core/information.html:29
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(m) ser atualizado(s)."
+msgstr ""
+"Checar a seguinte lista a procura de componente(s) que pode(m) ser "
+"atualizado(s)."
#: core/templates/core/information.html:33
msgid "Applications"
@@ -2648,9 +2832,15 @@ msgid ""
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "\nA seguinte atualização está disponível:\n"
-msgstr[1] "\nAs seguintes atualizações estão disponíveis:\n"
-msgstr[2] "\nAs seguintes atualizações estão disponíveis:\n"
+msgstr[0] ""
+"\n"
+"A seguinte atualização está disponível:\n"
+msgstr[1] ""
+"\n"
+"As seguintes atualizações estão disponíveis:\n"
+msgstr[2] ""
+"\n"
+"As seguintes atualizações estão disponíveis:\n"
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70
msgid "Parameters"
@@ -2706,7 +2896,10 @@ msgstr "Autenticação de duas etapas"
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 "Instale um autenticador de token de software como FreeOTP ou Google Authenticator do repositório de aplicativos e use esse aplicativo para escanear esse QR code."
+msgstr ""
+"Instale um autenticador de token de software como FreeOTP ou Google "
+"Authenticator do repositório de aplicativos e use esse aplicativo para "
+"escanear esse QR code."
#: core/templates/core/user_security.html:25
msgid "Pin code"
@@ -2719,7 +2912,9 @@ msgstr "Registrar"
#: core/templates/core/user_security.html:33
msgid ""
"Congratulations! Two-Factor Authentication is now enabled for your account."
-msgstr "Parabéns! A autenticação de dois fatores agora está habilitada para sua conta."
+msgstr ""
+"Parabéns! A autenticação de dois fatores agora está habilitada para sua "
+"conta."
#: core/templates/core/user_security.html:38
#: core/templates/core/user_security.html:89
@@ -2728,7 +2923,11 @@ 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 "Os seguintes códigos de recuperação podem ser usados uma vez cada para permitir que você recupere o acesso à sua conta, caso perca seu telefone, por exemplo. Certifique-se de salvá-los em um local seguro, caso contrário, você não poderá mais acessar sua conta."
+msgstr ""
+"Os seguintes códigos de recuperação podem ser usados uma vez cada para "
+"permitir que você recupere o acesso à sua conta, caso perca seu telefone, "
+"por exemplo. Certifique-se de salvá-los em um local seguro, caso contrário, "
+"você não poderá mais acessar sua conta."
#: core/templates/core/user_security.html:53
msgid "Two-Factor Authentication is enabled for your account."
@@ -2754,7 +2953,9 @@ msgstr "Redefinir códigos de recuperação"
msgid ""
"Two-Factor Authentication (2FA) is not yet activated for your account. "
"Enabling this feature will increase your account's security."
-msgstr "A autenticação de dois fatores (2FA) ainda não está ativada para sua conta. Ativar esse recurso aumentará a segurança da sua conta."
+msgstr ""
+"A autenticação de dois fatores (2FA) ainda não está ativada para sua conta. "
+"Ativar esse recurso aumentará a segurança da sua conta."
#: core/templates/core/user_security.html:73
msgid "Enable 2FA"
@@ -2807,7 +3008,7 @@ msgstr "Incompatibilidade de esquema de senha. Atualizando senha %s"
msgid "Password hash parameter missmatch. Updating %s password"
msgstr "Parâmetro de hash de senha não coincidem. Atualizando senha %s"
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Usuário '{}' saiu com sucesso"
@@ -2833,7 +3034,9 @@ msgstr "Habilitar pesquisas inversas"
#: dmarc/forms.py:41 dmarc/forms.py:58
msgid "Enable reverse DNS lookups (reports will be longer to display)"
-msgstr "Habilitar pesquisas de DNS reverso (os relatórios serão mais longos para serem exibidos)"
+msgstr ""
+"Habilitar pesquisas de DNS reverso (os relatórios serão mais longos para "
+"serem exibidos)"
#: dmarc/forms.py:74 dmarc/forms.py:78
msgid "DMARC"
@@ -2843,13 +3046,14 @@ msgstr "DMARC"
msgid "Show DMARC report for {}"
msgstr "Mostrar relatório DMARC para {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr "Não resolvido"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
-msgstr "Nenhum"
+msgstr "Nenhuma"
#: dmarc/models.py:11
msgid "Quarantine"
@@ -2983,63 +3187,63 @@ msgstr "Máscara inválida encontrada {}"
msgid "Not an SPF record"
msgstr "Não é um registro SPF"
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr "Mecanismo desconhecido {}"
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr "Modificador desconhecido {}"
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr "Modificador duplicado {} encontrado"
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr "Nenhum mecanismo encontrado"
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr "Não é um registro DKIM válido"
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr "Tag inválida {}"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr "Nenhuma chave encontrada no registro"
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr "Valor incorreto {} para tag {}"
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr "Valor incorreto {} para a tag {}:"
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr " não é um inteiro"
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr " menos de {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr " maior que {}"
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr "Não é um registro DMARC válido"
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr "Tag desconhecida {}"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr "Tag p obrigatória ausente"
@@ -3075,7 +3279,9 @@ msgstr "Um registro DNS foi encontrado, mas sua sintaxe não é válida:"
msgid ""
"Here is an example of DNS configuration (bind format). Replace value between"
" [ ] by the appropriate ones."
-msgstr "Aqui está um exemplo de configuração de DNS (formato de ligação). Substitua o valor entre [ ] pelos valores apropriados."
+msgstr ""
+"Aqui está um exemplo de configuração de DNS (formato de ligação). Substitua "
+"o valor entre [ ] pelos valores apropriados."
#: dnstools/templates/dnstools/domain_dns_configuration.html:15
msgid "IP address of your Modoboa server"
@@ -3146,7 +3352,9 @@ msgstr "Exclusões de Filtro de Pasta"
msgid ""
"Use a regular expression to explicitly include folders in sync. Example: "
"^Trash$|Del"
-msgstr "Use uma expressão regular para incluir explicitamente pastas em sincronia. Exemplo: ^Trash$|Del"
+msgstr ""
+"Use uma expressão regular para incluir explicitamente pastas em sincronia. "
+"Exemplo: ^Trash$|Del"
#: imap_migration/app_settings.py:78 imap_migration/app_settings.py:135
msgid "Folder Filter Inclusions"
@@ -3157,7 +3365,10 @@ 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 "Uma lista separada por vírgulas de pastas a serem incluídas explicitamente na sincronização, mesmo se filtradas pelas Exclusões de Filtro de Pasta. Exemplo: debian.user, debian.personal "
+msgstr ""
+"Uma lista separada por vírgulas de pastas a serem incluídas explicitamente "
+"na sincronização, mesmo se filtradas pelas Exclusões de Filtro de Pasta. "
+"Exemplo: debian.user, debian.personal "
#: imap_migration/app_settings.py:107
msgid "OfflineIMAP settings"
@@ -3171,21 +3382,25 @@ msgstr "Configurações do Filtro IMAP Offline"
msgid "IMAP Migration"
msgstr "Migração IMAP"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Falha na conexão com o servidor IMAP: %s"
#: imap_migration/checks.py:12
msgid ""
"Automatic domain/mailbox creation is disabled which means IMAP "
"authentication won't work."
-msgstr "A criação automática de domínio/caixa de correio está desabilitada, o que significa que a autenticação IMAP não funcionará."
+msgstr ""
+"A criação automática de domínio/caixa de correio está desabilitada, o que "
+"significa que a autenticação IMAP não funcionará."
#: imap_migration/checks.py:16
msgid ""
"Go to the online parameters panel (admin tab) and activate this feature."
-msgstr "Vá para o painel de parâmetros online (guia admin) e ative esse recurso."
+msgstr ""
+"Vá para o painel de parâmetros online (guia admin) e ative esse recurso."
#: imap_migration/templates/imap_migration/index.html:6
msgid "IMAP migration"
@@ -3199,11 +3414,11 @@ msgstr "Falha ao criar uma conta LDAP: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Falha ao atualizar a conta LDAP: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Falha ao excluir a conta LDAP: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Falha ao desativar a conta LDAP: {}"
@@ -3214,20 +3429,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Falha ao se comunicar com a API pública: %s"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "A conexão com o banco de dados %s não está configurada"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr "não é possível determinar a codificação da cadeia de caracteres"
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Permissão negada: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Permissão negada"
@@ -3250,7 +3467,7 @@ msgid "Failed to update password: {}"
msgstr "Falha ao atualizar a senha: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Assunto"
@@ -3276,37 +3493,50 @@ msgstr "Administradores de domínio"
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 permitidos para um novo administrador. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de administradores de domínio permitidos para um novo "
+"administrador. (0 para 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 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de domínios permitidos para um novo administrador. (0 para "
+"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 "Número máximo de apelidos de domínio permitidos para um novo administrador. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de apelidos de domínio permitidos para um novo administrador. "
+"(0 para 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 permitidas para um novo administrador. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de caixas de correio permitidas para um novo administrador. (0"
+" para 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 apelidos permitidos para um novo administrador. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de apelidos permitidos para um novo administrador. (0 para "
+"negar qualquer criação, -1 para permitir criações ilimitadas)"
#: 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 "A cota que um revendedor poderá compartilhar entre os domínios que ele criar. (0 significa sem cota)"
+msgstr ""
+"A cota que um revendedor poderá compartilhar entre os domínios que ele "
+"criar. (0 significa sem cota)"
#: limits/app_settings.py:82 limits/app_settings.py:232
msgid "Default per-domain limits"
@@ -3324,25 +3554,33 @@ msgstr "Habilitar ou desabilitar limites por domínio"
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 de domínio permitidos para um novo domínio. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de administradores de domínio permitidos para um novo domínio."
+" (0 para negar qualquer criação, -1 para permitir criaçõ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 de domínio permitidos para um novo domínio. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de apelidos de domínio permitidos para um novo domínio. (0 "
+"para negar qualquer criação, -1 para permitir criaçõ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 caixas de correio permitidas para um novo domínio. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de caixas de correio permitidas para um novo domínio. (0 para "
+"negar qualquer criação, -1 para permitir criaçõ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 permitidos para um novo domínio. (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
+msgstr ""
+"Número máximo de apelidos permitidos para um novo domínio. (0 para negar "
+"qualquer criação, -1 para permitir criações ilimitadas)"
#: limits/apps.py:13 limits/apps.py:17
msgid "Limits"
@@ -3362,11 +3600,13 @@ msgstr "Número máximo de caixas de correio que este usuário pode criar"
#: limits/constants.py:40
msgid "Maximum number of mailbox aliases this user can create"
-msgstr "Número máximo de apelidos de caixa de correio que este usuário pode criar"
+msgstr ""
+"Número máximo de apelidos de caixa de correio que este usuário pode criar"
#: 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 usuário pode criar"
+msgstr ""
+"Número máximo de administradores de domínio que este usuário pode criar"
#: limits/constants.py:60
msgid "Quota shared between domains of this reseller"
@@ -3382,11 +3622,13 @@ msgstr "Número máximo de caixas de correio permitidas para este domínio."
#: limits/constants.py:93
msgid "Maximum number of mailbox aliases allowed for this domain."
-msgstr "Número máximo de apelidos de caixa de correio permitidos para este domínio."
+msgstr ""
+"Número máximo de apelidos de caixa de correio permitidos para este domínio."
#: limits/constants.py:102
msgid "Maximum number of domain admins allowed for this domain."
-msgstr "Número máximo de administradores de domínio permitidos para este domínio."
+msgstr ""
+"Número máximo de administradores de domínio permitidos para este domínio."
#: limits/forms.py:38 limits/forms.py:88
msgid "Invalid limit"
@@ -3420,7 +3662,9 @@ msgstr "Uso de recursos"
#: maillog/api/v2/serializers.py:35
msgid "You must provide start and end dates when period is custom"
-msgstr "Você deve fornecer datas de início e término quando o período for personalizado"
+msgstr ""
+"Você deve fornecer datas de início e término quando o período for "
+"personalizado"
#: maillog/apps.py:20 maillog/forms.py:23
msgid "Path to the log file"
@@ -3446,7 +3690,7 @@ msgstr "Mostrar mensagens na lista cinza"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Diferenciar entre rejeições rígidas e suaves (lista cinza)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Estatísticas"
@@ -3454,63 +3698,63 @@ msgstr "Estatísticas"
msgid "Failed to locate rrdtool binary."
msgstr "Falha ao localizar o binário rrdtool."
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Tráfego médio (msgs/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "mensagens enviadas"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "mensagens recebidas"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "mensagens devolvidas"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "mensagens rejeitadas"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "mensagens com vírus"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "mensagens de spam"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "mensagens na lista cinza"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Tamanho médio do tráfego normal (bytes/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "tamanho recebido"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "tamanho enviado"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Tráfego de e-mail"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Média de criação de conta (conta/hora)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Novas contas"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Contas"
@@ -3526,39 +3770,39 @@ msgstr "Buscar um domínio"
msgid "Apply"
msgstr "Aplicar"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Sem estatísticas disponíveis"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Dia"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Semana"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Mês"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Ano"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Customizado"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Conjunto gráfico desconhecido"
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr "Domínio desconhecido"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Período personalizado incorreto"
@@ -3581,7 +3825,8 @@ msgstr "Habilitar credenciais de PDF"
#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200
msgid "Enabled PDF credentials document generation on account creation."
-msgstr "Geração de documentos de credenciais PDF habilitada na criação da conta."
+msgstr ""
+"Geração de documentos de credenciais PDF habilitada na criação da conta."
#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203
msgid "Documents storage"
@@ -3607,7 +3852,9 @@ msgstr "Excluir documentos após o primeiro download"
msgid ""
"Automatically delete a document just after its first download from this "
"interface"
-msgstr "Exclua automaticamente um documento logo após seu primeiro download desta interface"
+msgstr ""
+"Exclua automaticamente um documento logo após seu primeiro download desta "
+"interface"
#: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223
msgid "Generate documents only at account creation"
@@ -3617,7 +3864,10 @@ msgstr "Gerar documentos somente na criação da conta"
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 "Gere um novo documento somente quando uma nova conta for criada. Se definido como não, um novo documento será criado sempre que uma senha for atualizada."
+msgstr ""
+"Gere um novo documento somente quando uma nova conta for criada. Se definido"
+" como não, um novo documento será criado sempre que uma senha for "
+"atualizada."
#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232
msgid "Customization options"
@@ -3655,7 +3905,9 @@ msgstr "Incluir configurações de conexão do cliente de e-mail"
msgid ""
"Include required SMTP and IMAP connection information to configure a mail "
"client, a tablet or a phone"
-msgstr "Incluir as informações de conexão SMTP e IMAP necessárias para configurar um cliente de e-mail, um tablet ou um telefone"
+msgstr ""
+"Incluir as 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:133 pdfcredentials/app_settings.py:260
#: pdfcredentials/documents.py:133
@@ -3727,7 +3979,11 @@ msgid ""
"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 "\nPrezado %s, este documento contém as credenciais que você precisará\npara se conectar ao Modoboa. Estude o conteúdo e destrua\no documento o mais breve possível.\n"
+msgstr ""
+"\n"
+"Prezado %s, este documento contém as credenciais que você precisará\n"
+"para se conectar ao Modoboa. Estude o conteúdo e destrua\n"
+"o documento o mais breve possível.\n"
#: pdfcredentials/documents.py:95
msgid "Web panel:"
@@ -3738,7 +3994,10 @@ msgid ""
"\n"
"Here you can view your emails anytime online, create filters or manage\n"
"your contacts.\n"
-msgstr "\nAqui você pode visualizar online seus e-mails a qualquer momento, criar filtros ou gerenciar\nseus contatos.\n"
+msgstr ""
+"\n"
+"Aqui você pode visualizar online seus e-mails a qualquer momento, criar filtros ou gerenciar\n"
+"seus contatos.\n"
#: pdfcredentials/documents.py:126
msgid "Please change your password!"
@@ -3756,7 +4015,9 @@ msgstr "Use essas configurações para seu computador, tablet ou telefone."
msgid ""
"Failed to create PDF_credentials directory. Please check the permissions or "
"the path."
-msgstr "Falha ao criar diretório PDF_credentials. Por favor, verifique as permissões ou o caminho."
+msgstr ""
+"Falha ao criar diretório PDF_credentials. Por favor, verifique as permissões"
+" ou o caminho."
#: pdfcredentials/handlers.py:61
msgid "Retrieve user's credentials as a PDF document"
@@ -3768,7 +4029,8 @@ msgstr "Baixar credenciais em PDF"
#: pdfcredentials/lib.py:28
msgid "Can't write to selected directory to store PDF documents"
-msgstr "Não é possível gravar no diretório selecionado para armazenar documentos PDF"
+msgstr ""
+"Não é possível gravar no diretório selecionado para armazenar documentos PDF"
#: pdfcredentials/lib.py:34
#, python-format
@@ -3779,13 +4041,15 @@ msgstr "Falha ao criar o diretório que conterá documentos PDF (%s)"
msgid ""
"Failed to create PDF_credentials file. Please check the permissions or the "
"path."
-msgstr "Falha ao criar arquivo PDF_credentials. Por favor, verifique as permissões ou o caminho."
+msgstr ""
+"Falha ao criar arquivo PDF_credentials. Por favor, verifique as permissões "
+"ou o caminho."
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr "Limite diário de envio atingido"
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr "[modoboa] Limite de envio atingido"
@@ -3794,87 +4058,104 @@ msgstr "[modoboa] Limite de envio atingido"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr "O limite diário dos seguintes %(ltype)s foi atingido: %(name)s."
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr "Esta data acabou"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr "Deve ser maior que a data de início"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Tempo limite de resposta automática"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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"
+msgstr ""
+"Tempo limite, em segundos, entre duas respostas automáticas para o mesmo "
+"destinatário"
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Assunto padrão"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
-msgstr "Assunto padrão usado quando uma mensagem de resposta automática é criada automaticamente"
+msgstr ""
+"Assunto padrão usado quando uma mensagem de resposta automática é criada "
+"automaticamente"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, 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 resposta automática é criada automaticamente. A macro '%(name)s' será substituída pelo nome completo do usuário."
+msgstr ""
+"Conteúdo padrão usado quando uma mensagem de resposta automática é criada "
+"automaticamente. A macro '%(name)s' será substituída pelo nome completo do "
+"usuário."
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr "Respostas automáticas"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
-msgstr "Ative sua resposta automática a partir desta data. Formato: YYYY-MM-DD HH:mm:ss"
+msgstr ""
+"Ative sua resposta automática a partir desta data. Formato: YYYY-MM-DD "
+"HH:mm:ss"
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Até"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
-msgstr "Ative sua resposta automática até esta data. Formato: YYYY-MM-DD HH:mm:ss"
+msgstr ""
+"Ative sua resposta automática até esta data. Formato: YYYY-MM-DD HH:mm:ss"
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, 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 substituídas automaticamente pelo valor apropriado: %(name)s, %(fromdate)s %(untildate)s"
+msgstr ""
+"O conteúdo da sua resposta. Você pode usar as seguintes variáveis, que serão"
+" substituídas automaticamente pelo valor apropriado: %(name)s, %(fromdate)s "
+"%(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Ausente"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr "Conteúdo padrão"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, 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 "No momento, estou fora. Responderei assim que voltar.\n\nAtenciosamente\n%(name)s\n"
+msgstr ""
+"No momento, estou fora. Responderei assim que voltar.\n"
+"\n"
+"Atenciosamente\n"
+"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr "Mensagem de resposta automática"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Resposta automática"
@@ -3900,9 +4181,11 @@ 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 "Definir uma mensagem para enviar automaticamente quando você estiver desligado"
+msgstr ""
+"Definir uma mensagem para enviar automaticamente quando você estiver "
+"desligado"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Mensagem de resposta automática atualizada com êxito."
@@ -3930,7 +4213,7 @@ msgstr "porta do host de destino"
msgid "verify recipients"
msgstr "verificar destinatários"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr "O filtro %s já existe"
@@ -3956,18 +4239,22 @@ msgid "Use the STARTTLS extension"
msgstr "Usar a extensão STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr "Configurações IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr "Endereço do seu servidor IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr "Use uma conexão segura para acessar o servidor IMAP"
+msgstr "Usar uma conexão segura para acessar o servidor IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr "Porta de escuta do seu servidor IMAP"
@@ -4009,7 +4296,7 @@ msgstr "não é"
#: sievefilters/constants.py:24
msgid "Sender"
-msgstr "Remetente"
+msgstr "Enviar"
#: sievefilters/constants.py:26
msgid "Cc"
@@ -4017,7 +4304,7 @@ msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Tamanho"
+msgstr ""
#: sievefilters/constants.py:31
msgid "is greater than"
@@ -4055,37 +4342,34 @@ msgstr "Modo de editor"
msgid "Select the mode you want the editor to work in"
msgstr "Selecione o modo em que deseja que o editor funcione"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
-msgstr "Pasta de lixo"
+msgstr "Pasta para Itens Deletados"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
-msgstr "Pasta para onde vão as mensagens excluídas"
+msgstr "Pasta que irão as mensagens deletadas"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
-msgstr "Pasta de enviadas"
+msgstr "Pasta para Itens Recebidos"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr "Pasta para onde vão as cópias das mensagens enviadas"
+msgstr "Pasta onde irão as cópias de mensagens enviadas"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
-msgstr "Pasta de rascunhos"
+msgstr "Pasta para Rascunhos"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr "Pasta para onde vão os rascunhos"
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Falha ao recuperar o delimitador de hierarquia"
+msgstr "Pasta onde irão os rascunhos"
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
-msgstr "Falha na conexão com o servidor MANAGESIEVE, verifique sua configuração"
+msgstr ""
+"Falha na conexão com o servidor MANAGESIEVE, verifique sua configuração"
#: sievefilters/lib.py:79
msgid "Not enough space on server"
@@ -4164,7 +4448,9 @@ msgstr "Esqueceu a senha?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr "Sua senha foi definida. Você pode ir em frente e entrar agora."
+msgstr ""
+"Sua senha foi definida. Você pode ir em frente e entrar "
+"agora."
#: templates/registration/password_reset_confirm.html:8
msgid "Change password"
@@ -4174,7 +4460,9 @@ msgstr "Alterar senha"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
-msgstr "O link de redefinição de palavra-passe era inválido, possivelmente porque ele já foi usado. Solicite uma nova redefinição de palavra-passe."
+msgstr ""
+"O link de redefinição de palavra-passe era inválido, possivelmente porque "
+"ele já foi usado. Solicite uma nova redefinição de palavra-passe."
#: templates/registration/password_reset_confirm_code.html:22
msgid "Enter the code you've just received by SMS"
@@ -4194,7 +4482,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 "Enviamos instruções por e-mail para definir sua senha, se houver uma conta com o e-mail que você digitou. Você deve recebê-lo em breve.
Se você não receber um e-mail, certifique-se de ter digitado seu endereço principal e verifique sua pasta de spam.
"
+msgstr ""
+"Enviamos instruções por e-mail para definir sua senha, se houver uma "
+"conta com o e-mail que você digitou. Você deve recebê-lo em breve.
Se"
+" você não receber um e-mail, certifique-se de ter digitado seu endereço "
+"principal e verifique sua pasta de spam.
"
#: templates/registration/password_reset_email.html:4
#: templates/registration/password_reset_email_v2.html:4
@@ -4202,14 +4494,18 @@ msgstr "Enviamos instruções por e-mail para definir sua senha, se houver um
msgid ""
"To initiate the password reset process for your %(username)s Modoboa "
"account, click the link below:"
-msgstr "Para iniciar o processo de redefinição de senha para sua conta %(username)s Modoboa, clique no link abaixo:"
+msgstr ""
+"Para iniciar o processo de redefinição de senha para sua conta %(username)s "
+"Modoboa, clique no link abaixo:"
#: 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 clicar no link acima não funcionar, copie e cole a URL em uma nova janela do navegador."
+msgstr ""
+"Se clicar no link acima não funcionar, copie e cole a URL em uma nova janela"
+" do navegador."
#: templates/registration/password_reset_email.html:14
#: templates/registration/password_reset_email_v2.html:14
@@ -4240,7 +4536,9 @@ msgstr "Senha de uso único"
msgid ""
"Enter the code from the two-factor app on your mobile device. If you've lost"
" your device, you may enter one of your recovery codes."
-msgstr "Digite o código do aplicativo de dois fatores em seu celular. Se você perdeu seu dispositivo, pode digitar um de seus códigos de recuperação."
+msgstr ""
+"Digite o código do aplicativo de dois fatores em seu celular. Se você perdeu"
+" seu dispositivo, pode digitar um de seus códigos de recuperação."
#: templates/registration/twofactor_code_verify.html:42
msgid "Verify code"
@@ -4270,3 +4568,187 @@ msgstr "serviço"
#: transport/models.py:17
msgid "next hop"
msgstr "próximo salto"
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Tamanho máximo de anexo"
+
+#: webmail/app_settings.py:19
+#, fuzzy
+#| msgid ""
+#| "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Tamanho máximo de anexo em bytes (ou KB, MB, GB, se especificado)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "IMAP settings"
+msgid "SMTP settings"
+msgstr "Configurações SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Endereço do seu servidor SMTP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Modo de conexão segura"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Usar uma conexão segura para acessar o servidor SMTP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Porta de escuta do seu servidor SMTP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Autenticação obrigatória"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "The backend used for authentication"
+msgid "Server needs authentication"
+msgstr "Servidor precisa de autenticação"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Mostrar"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Modo de exibição padrão da mensagem"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "O modo padrão usado ao exibir uma mensagem"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Ativar exibição de links em HTML"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Ativar/Desativar exibição de links em HTML"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Número de e-mails exibidos por página"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Definir o número máximo de mensagens exibidas por página"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Taxa de atualização de escuta"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Largura do contêiner da caixa de correio"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "A largura do contêiner da caixa de correio"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Sent folder"
+msgid "Junk folder"
+msgstr "Pasta para Itens Recebidos"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "Folder where deleted messages go"
+msgid "Folder where junk messages should go"
+msgstr "Pasta que irão as mensagens deletadas"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Compondo mensagens"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Editor padrão"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "O editor padrão para usar ao escrever uma mensagem"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Texto da assinatura"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Assinatura de e-mail definida pelo usuário"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Falha ao remover anexo:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Falha ao recuperar o delimitador de hierarquia"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Drafts folder"
+msgid "Drafts"
+msgstr "Pasta para Rascunhos"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Anexo muito grande (limite: %s)"
diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/locale/pt_PT/LC_MESSAGES/django.po
index 857b71ba0..b5364c69b 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: 2024-07-17 11:45+0200\n"
"Last-Translator: Mike C. \n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/modoboa/language/pt_PT/)\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 admin/forms/domain.py:49
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -35,7 +35,7 @@ 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:49
+#: admin/api/v1/serializers.py:48
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -45,23 +45,23 @@ 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:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Permissões"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -69,20 +69,20 @@ msgstr "Permissões"
msgid "This field is required"
msgstr "Este campo é obrigatório"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -93,29 +93,29 @@ msgstr ""
msgid "This field is required."
msgstr "É necessária uma caixa de correio"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "O domínio não existe"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
#, 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:574
+#: admin/api/v1/serializers.py:577
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -140,29 +140,29 @@ msgstr "Tem de ser um inteiro, positivo"
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, 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:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown domain %s"
msgid "Unknown status"
@@ -185,121 +185,121 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domínios"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Quota pré-definida para o domínio"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -307,19 +307,19 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "Quota pré-definida para o domínio"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -327,11 +327,11 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Lidar com caixas de correio no sistema de ficheiros"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -339,7 +339,7 @@ msgstr ""
"Renomear ou remover as caixas de correio no sistema de ficheiros quando "
"estas são renomeadas no Modoboa"
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
#, fuzzy
@@ -359,43 +359,43 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox sending limit"
msgstr "Quota pré-definida para o domínio"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Remoção automática de conta"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Ao remover uma caixa de correio estará também a remover a conta associada"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Criação automatica de domino/caixa de correio"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -405,7 +405,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Domínio alterado"
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -417,7 +417,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administração"
@@ -613,8 +613,8 @@ msgstr "Domínio(s) administrado pelo utilizador"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Geral"
@@ -714,7 +714,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "'Alias' de domínio"
@@ -732,7 +732,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domínio"
@@ -847,30 +847,30 @@ msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Marque esta opção se as senhas contidas no arquivo não são encriptadas"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, 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:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 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:257
+#: admin/handlers.py:253
#, 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:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Reencaminhar"
@@ -909,8 +909,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -929,16 +928,16 @@ msgstr "Este objeto já existe: %s"
msgid "%d objects imported successfully"
msgstr "%d objetos importados com sucesso"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -949,11 +948,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -1083,16 +1082,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Linha inválida"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "{}: invalid quota value for domain"
@@ -1356,6 +1355,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Data"
@@ -1446,7 +1446,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Não"
@@ -1454,7 +1454,7 @@ msgstr "Não"
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Sim"
@@ -1512,15 +1512,15 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
-msgstr "De"
+msgstr ""
#: admin/templates/admin/domains_log_headers.html:5
#: admin/templates/admin/messages_log_headers.html:5
#: lib/templatetags/lib_tags.py:118
msgid "To"
-msgstr ""
+msgstr "Para"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1553,7 +1553,7 @@ msgstr "Reenviar automaticamente e-mails para outro endereço"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Actualizar"
@@ -1671,7 +1671,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importar"
@@ -1749,11 +1749,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias criado"
msgstr[1] "Alias criado"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1782,11 +1782,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Conta eliminada"
msgstr[1] "Contas eliminadas"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importar domínios"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importar identidades"
@@ -1837,7 +1837,7 @@ msgstr ""
"Número máximo de administradores de domínio que este utilizador pode criar"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Vários"
@@ -1850,8 +1850,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1973,7 +1972,7 @@ msgstr "Perfil"
#: 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
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Sintax inválida"
@@ -1985,8 +1984,8 @@ msgstr "Número de linhas inválido"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -2006,100 +2005,107 @@ msgstr ""
msgid "Address book"
msgstr "Endereço"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Autenticação"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Tipo de autenticação"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Backend usado para autenticação"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para encriptar as passwords das caixas de correio"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Password para bind"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2107,83 +2113,86 @@ msgstr ""
msgid "LDAP settings"
msgstr "Definições do serviço de directório"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Porta do Servidor"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr " A porta TCP usada pelo servidor LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
#, 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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Porta do Servidor"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
#, 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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr ""
+msgstr "Utilizar uma ligação segura"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
#, 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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Grupos de Administrador"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2191,39 +2200,39 @@ msgstr ""
"Os membros destes grupos \"LDAP Posix\" serão criados como administradores "
"de domínio. Use ';' para separar os grupos."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
#, fuzzy
#| msgid "Group name"
msgid "Group type"
msgstr "Nome do grupo"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Base para pesquisa de Grupos"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atributo de palavra-passe"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "O atributo utilizado para armazenar palavras-passe"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Método de autenticação"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Método de autenticação"
@@ -2235,17 +2244,17 @@ msgstr "Procurar e vincular (bind)"
msgid "Direct bind"
msgstr "\"Direct bind\""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Escolher o método de autenticação"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2253,33 +2262,33 @@ msgstr ""
"O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario "
"para \"bind\" anónimo"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Password para bind"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Base para pesquisa de utilizadores"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtro de pesquisa"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2287,11 +2296,11 @@ msgstr ""
"Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre "
"parênteses para ser válido"
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Template DN de utilizador"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2300,38 +2309,38 @@ msgstr ""
"O template usado para construir o DN (nome único). Deve apenas conter um "
"'placeholder' (ex: %(user)s) "
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "Definições do serviço de directório"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Template DN de utilizador"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -2343,83 +2352,83 @@ msgstr ""
"O template usado para construir o DN (nome único). Deve apenas conter um "
"'placeholder' (ex: %(user)s) "
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Atributo de palavra-passe"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
#, fuzzy
#| msgid "Authentication"
msgid "Notifications"
msgstr "Autenticação"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2427,97 +2436,97 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Procurar novas versões"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Verifica automaticamente se existem novas versões"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Destinatário"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Intervalo de tempo para verificar notificações (no topo)"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
#, 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:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Idade máxima do registo no log"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
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:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Itens por página"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Número de itens apresentados por página"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Redirecionamento pré-definido"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"O redirecionamento padrão usado quando nenhuma aplicação se encontra "
"especificada"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2684,7 +2693,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Falha ao actualizar password: Modulo LDAP não instalado"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "conta"
@@ -2697,13 +2706,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "O simple utilizador '%s' deve ter endereço de e-mail válido"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr ""
"Os campos nome de utilizador e endereço de email não deve ser diferente para"
" '%s'"
@@ -3110,7 +3121,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -3152,15 +3163,16 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "No recipient defined"
msgid "Not resolved"
msgstr "Sem destinatário definido"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
-msgstr ""
+msgstr "Nenhum"
#: dmarc/models.py:11
#, fuzzy
@@ -3312,63 +3324,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3506,9 +3518,10 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Ligação ao servidor IMAP falhou : %s"
#: imap_migration/checks.py:12
@@ -3536,11 +3549,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3551,20 +3564,22 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "A ligação à base de dados %s não está devidamente configurada"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Acesso negado: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Acesso negado"
@@ -3591,7 +3606,7 @@ msgid "Failed to update password: {}"
msgstr "Falha ao actualizar a password: %s"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Assunto"
@@ -3835,7 +3850,7 @@ msgstr "mensagens rejeitadas"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Estatísticas"
@@ -3843,69 +3858,69 @@ msgstr "Estatísticas"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Trafego em média (msgs/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "mensagens enviadas"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "mensagens recebidas"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "mensagens devolvidas"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "mensagens rejeitadas"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
#, fuzzy
#| msgid "sent messages"
msgid "virus messages"
msgstr "mensagens enviadas"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "sent messages"
msgid "spam messages"
msgstr "mensagens enviadas"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
#, fuzzy
#| msgid "rejected messages"
msgid "greylisted messages"
msgstr "mensagens rejeitadas"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Tráfego em média normal por tamanho (bytes/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "tamanho recebido"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "tamanho enviado"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Tráfego de correio"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3921,41 +3936,41 @@ msgstr "Procurar um domínio"
msgid "Apply"
msgstr "Aplicar"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Não há estatísticas disponíveis"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Dia"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Semana"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Mês"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Ano"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Personalizado"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Conjunto de gráficos desconhecido"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Conjunto de gráficos desconhecido"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Período personalizado inválido"
@@ -4180,13 +4195,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: limite atingido"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4197,37 +4212,37 @@ msgstr "%s: limite atingido"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Esta data ultrapassa"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr "Tem de ser posterior à data de inicio."
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Tempo limite de resposta automática"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Assunto pré-definido"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr "Assunto pré-definido, usado nas respostas automáticas."
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4235,25 +4250,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Respostas automáticas"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Até"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4261,17 +4276,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Estou indisponível"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Contéudo pré-definido"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4285,12 +4300,12 @@ msgstr ""
"%(name)s\n"
"\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr "Mensagem de resposta automática"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Respostas automáticas"
@@ -4320,7 +4335,7 @@ msgstr "Ativar/desativar repostas automáticas"
msgid "Define a message to automatically send when you are off"
msgstr "Enviar a mensagem automaticamente quando estiver ausente"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Mensagem de resposta automática actualizada com sucesso"
@@ -4352,7 +4367,7 @@ msgstr "endereço de destino"
msgid "verify recipients"
msgstr "verificar destinatários"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4381,22 +4396,26 @@ msgid "Use the STARTTLS extension"
msgstr "Usar a extensão STARTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
-msgstr "Definições do MANAGESIEVE"
+msgstr "Definições IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
-msgstr "Endereço do servidor MANAGESIEVE"
+msgstr "Endereço do servidor IMAP"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr ""
+msgstr "Usar uma ligação segura para aceder ao servidor IMAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr "Porta atribuída ao servidor MANAGESIEVE"
+msgstr "Porta do servidor IMAP"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4446,7 +4465,7 @@ msgstr "não é"
#, fuzzy
#| msgid "Server address"
msgid "Sender"
-msgstr "Remetente"
+msgstr "Enviar"
#: sievefilters/constants.py:26
msgid "Cc"
@@ -4454,7 +4473,7 @@ msgstr "Cc"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "Tamanho"
+msgstr ""
#: sievefilters/constants.py:31
#, fuzzy
@@ -4500,33 +4519,29 @@ msgstr "Modo de edição"
msgid "Select the mode you want the editor to work in"
msgstr "Seleccione o modo de funcionamento do editor"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
-msgstr ""
+msgstr "Pasta para Itens Eliminados"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
-msgstr ""
+msgstr "Pasta para a qual os itens eliminados são enviados"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
-msgstr ""
+msgstr "Pasta para Itens Enviados"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr ""
+msgstr "Pasta onde as copias das mensagens enviadas são guardadas"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
-msgstr ""
+msgstr "Pasta para Rascunhos"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr ""
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Falha ao recuperar os filtros definidos"
+msgstr "Pasta onde ficam guardados os rascunhos"
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
@@ -4710,7 +4725,7 @@ msgstr "Autenticação"
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Voltar"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4734,14 +4749,182 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Tamanho máximo do anexo"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Tamanho máximo do anexo em bytes (ou KB, MB, GB se especificado)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Definições SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Endereço do servidor IMAP"
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr "Modo de ligação segura"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/TLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Usar uma ligação segura para aceder ao servidor SMTP"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Porta do servidor SMTP"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Autenticação necessária"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "O servidor requer autenticação"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display"
+msgid "Display"
+msgstr "Exibir"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Modo de visualização predefinido"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "O modo de visualização de mensagem que será usado por defeito"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Ativar visualização de links HTML"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Ativar/desativar"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Número de e-mails a visíveis por página"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Define o número máximo de mensagens a mostrar por página"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Taxa de actualização da listagem"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Largura do caixilho das caixas de correio"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "Largura do caixilho da lista de caixa de correio"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr "Pasta para Itens Enviados"
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr "Pasta para a qual os itens eliminados são enviados"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "A criar mensagem"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Editor predefinido"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "O editor a ser usado por defeito na composição de mensagens"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Assinatura"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Assinatura de email definida pelo utilizador"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Falha ao remover os anexos:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Falha ao recuperar hierarquia delimitador"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr "Pasta para Rascunhos"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Anexo demasiado grande (limite %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Mecanismo de autenticação"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Método de autenticação preferencial"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Domínio alterado"
@@ -4831,9 +5014,6 @@ msgstr ""
#~ msgid "Filter removed"
#~ msgstr "Filtro removido"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Falha ao remover filtro"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Grupo de filtros guardado"
diff --git a/modoboa/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/locale/ro_RO/LC_MESSAGES/django.po
index 8d366aa26..4f1b7e97e 100644
--- a/modoboa/locale/ro_RO/LC_MESSAGES/django.po
+++ b/modoboa/locale/ro_RO/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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/"
@@ -22,7 +22,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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."
@@ -30,27 +30,27 @@ 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 "
"înseamnă fără cotă."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Permisiune refuzată."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -58,21 +58,21 @@ msgstr "Permisiune refuzată."
msgid "This field is required"
msgstr "Acest câmp este necesar"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Ne permis pentru acest rol."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Trebuie să fie egal cu mailbox full_address"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -81,25 +81,25 @@ msgstr "Trebuie să fie egal cu mailbox full_address"
msgid "This field is required."
msgstr "Acest câmp este necesar."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Domeniu local {} nu există"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "O listă de destinatari"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "Nu ai acces la acest domeniu."
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Nu ai acces la această cutie postală"
@@ -122,29 +122,29 @@ msgstr "Trebuie să fie un număr întreg pozitiv"
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
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:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, 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:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -167,26 +167,26 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domenii"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Activează verificările MX"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "Verifică ca fiecare domeniu are asociat un MX valid"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "MX-uri valide"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -195,11 +195,11 @@ msgstr ""
"ar trebui să se potrivească. O avertizare va fi trimisă dacă o înregistrare "
"nu respectă această conformitate."
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Domeniile noi trebuie să utilizeze MX(-uri) autorizate"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -207,73 +207,73 @@ msgstr ""
"Împiedică crearea unui nou domeniu dacă înregistrarea MX nu utilizează una "
"dintre adresele definite."
-#: admin/app_settings.py:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable SPF checks"
msgid "Enable IPV6 checks"
msgstr "Activează verificările SPF"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Activează verificările SPF"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Activați verificările DKIM"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
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ă."
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Activați verificările DMARC"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Activați verificările de autoconfigurare"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
"Verificați dacă fiecare domeniu are o înregistrare validă pentru "
"autoconfigurare"
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Activează verificările DNSBL"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Verificați fiecare domeniu folosind furnizorii DNSBL majori"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Servere DNS personalizate"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "Folderul de stocare pentru cheile DKIM"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
@@ -283,19 +283,19 @@ msgstr ""
"Asigurați-vă că acest director aparține utilizatorului root și nu poate fi "
"citit de orice user."
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Mărimea implicită în caractere a chei DKIM"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Cota-parte implicită a domeniului"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -303,11 +303,11 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Limita implicită de trimitere a domeniului"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
@@ -315,7 +315,7 @@ 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:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -323,11 +323,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Cutii poștale"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Gestionați cutiile poștale în sistemul de fișiere"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -335,7 +335,7 @@ 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:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 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ă"
@@ -349,11 +349,11 @@ msgstr ""
"create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu "
"există cotă."
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Limita implicită de trimitere a căsuței poștale"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -361,28 +361,28 @@ 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:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Ștergere automată a contului"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Crearea automată a domeniului / cutiei poștale"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Creați un domeniu și o căsuță poștală atunci când un cont este creat automat."
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
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:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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 "
@@ -392,7 +392,7 @@ msgstr ""
msgid "Directory not found."
msgstr "Directorul nu a fost găsit."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created mailboxes with "
@@ -405,7 +405,7 @@ msgstr ""
"create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu "
"există cotă."
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administrare"
@@ -588,8 +588,8 @@ msgstr "Domeniu(ii) pe care utilizatorul le administrează"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "General"
@@ -675,7 +675,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "alias domeniu"
@@ -693,7 +693,7 @@ msgstr "Folderul de stocare a cheilor DKIM nu este configurat"
msgid "You can't define an unlimited quota."
msgstr "Nu poți sa definești o cotă nelimitată"
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domeniu"
@@ -805,28 +805,28 @@ msgstr ""
"Bifeaza această opțune dacă parolele conținute în fșierul tău nu sunt "
"encriptate"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importul de cont a esuat (%s): domeniul nu există"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Căsuța poștală {} deja există"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importul de cont a esuat (%s): valuare de cotă incorectă"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Redirecționează"
@@ -865,8 +865,7 @@ msgstr ""
"acest moment"
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -884,17 +883,17 @@ msgstr "Obiectul deja există: %s"
msgid "%d objects imported successfully"
msgstr "%d obiecte importate cu succes"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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"
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "Imposibil de decodat fișierul CSV folosind codarea %(encoding)s"
@@ -905,11 +904,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1031,18 +1030,18 @@ msgstr ""
msgid "Key length"
msgstr "Mărime cheie"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Linie invalidă"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, 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:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1277,6 +1276,7 @@ msgstr "Alarme deschise pentru"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Dată"
@@ -1362,7 +1362,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Nu"
@@ -1370,7 +1370,7 @@ msgstr "Nu"
msgid "Generate new key"
msgstr "Generează o cheie nouă"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Da"
@@ -1420,7 +1420,7 @@ msgstr "Queue 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "De la"
@@ -1459,7 +1459,7 @@ msgstr "Redirecționează automat emailuri la altă adresă"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Actualizare"
@@ -1594,7 +1594,7 @@ msgid "Message logs"
msgstr "Jurnalele de mesaje"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Import"
@@ -1669,11 +1669,11 @@ msgstr[0] "Alias șters"
msgstr[1] "Aliasuri șterse"
msgstr[2] "Aliasuri șterse"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "Înregistrări MX ale {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "Sumar DNSBL pentru {}"
@@ -1704,11 +1704,11 @@ msgstr[0] "Cont șters"
msgstr[1] "Conturi șterse"
msgstr[2] "Conturi șterse"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importă domenii"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importă identități"
@@ -1760,7 +1760,7 @@ msgstr ""
"utilizatorilor"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Diverse"
@@ -1773,8 +1773,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1891,7 +1890,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Sintaxă invalidă"
@@ -1903,7 +1902,7 @@ msgstr "Număr invalid de iterații"
msgid "This code is invalid"
msgstr "Acest cod nu este valabil"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
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: {}"
@@ -1924,31 +1923,38 @@ msgstr ""
msgid "Address book"
msgstr "Adresă"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "E-mail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Autentificare"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Tip autentificare"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Tehnologia backend folosită pentru autentificare "
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Schema pentru parola implicită"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schema de criptare pentru parole"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Iterații"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1957,37 +1963,37 @@ msgstr ""
"sha512crypt) Trebuie să fie un număr cuprins între 1000 și 999999999 "
"inclusiv."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Actualizarea schemei de parole la autentificare"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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ă"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Parola implicită"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Parola implicită setată pentru conturile create automat."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Mărime parolă aleatorie"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Mărimea parolelor generate aleator."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Actualizarea URL-ului serviciului de parolă"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -1997,29 +2003,29 @@ msgstr ""
"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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Anunț de recuperare a parolei"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Activați recuperarea parolei prin SMS"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "Furnizor de SMS"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "Alegeți un furnizor pentru a trimite SMS de recuperare a parolei"
@@ -2027,76 +2033,79 @@ msgstr "Alegeți un furnizor pentru a trimite SMS de recuperare a parolei"
msgid "LDAP settings"
msgstr "Setări LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Adresă server"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Port server"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Numărul de port TCP folosit de serverul LDAP"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Activați serverul secundar (fallback)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Adresa serverului secundar"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Portul serverului secundar"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Folosește o conexiune securizată"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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"
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Grupuri administrator"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -2104,35 +2113,35 @@ msgstr ""
"Membrii acelor grupuri LDAP Posix vor fi create ca administratori de "
"domeniu. Folosește caracterul ';' pentru a separa grupurile."
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Tipul de grup"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Baza pentru căutare grupuri"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atributul parolă"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Atributul folosit pentru a stoca parola utilizatorului"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "Setări de autentificare LDAP"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Metoda de autentificare"
@@ -2144,17 +2153,17 @@ msgstr "Căutare și atribuire"
msgid "Direct bind"
msgstr "Atribuire directă"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Alege metodă folosită pentru autentificare"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Atribuie 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2162,34 +2171,34 @@ msgstr ""
"Numele ales folosit la atribuirea cu servarul LDAP. Câpul necompletat se "
"foloseste în cazul atribuirii anonime"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Parola de atribuire"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Căutare bază de utilizatori"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Filtru de căutare"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2197,11 +2206,11 @@ msgstr ""
"Un filtru opțional (de ex. '(ObjectClass = persoană)'). Pentru a fi valid, "
"trebuie să fie închis în paranteze."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Templateul DN pt utilizator"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2210,26 +2219,26 @@ msgstr ""
"Templateul folosit pentru a construi un utilizator DN. Ar trebui să conțină "
"un substituent (de ex. %(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "Setări de sincronizare LDAP"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Activați exportul către LDAP"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
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:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
"Ștergerea contului LDAP la distanță atunci când contul local este șters"
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2237,11 +2246,11 @@ msgstr ""
"Ștergeți contul LDAP la distanță atunci când contul local este șters, altfel "
"acesta va fi dezactivat."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Șablon de cont DN"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2250,82 +2259,82 @@ 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:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Activați importul din LDAP"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
"Activați sincronizarea conturilor din directorul LDAP în baza de date locală"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Atributul nume de utilizator"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Activați sincronizarea Dovecot LDAP"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
"Setările de autentificare LDAP vor fi aplicate la configurația Dovecot."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Fișier de configurare Dovecot LDAP"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Bord"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Feedul RSS personalizat"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Afișează feedul RSS personalizat la reselleri și administratori de domeniu"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Ascunde widgetul de caracteristici "
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Ascunde widgetul de caracteristici pentru reselleri și administratori de "
"domeniu"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notificări"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Adresa expeditorului"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Adresa de email folosită pentru trimiterea notificărilor."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "API public"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Activați comunicarea"
@@ -2333,59 +2342,59 @@ msgstr "Activați comunicarea"
msgid "Enable communication with Modoboa public API"
msgstr "Activați comunicarea cu API-ul public Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Verifică dacă există noi versiuni"
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Verifică automat dacă este disponibilă o versiune mai nouă"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
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:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
"Trimiteți un e-mail pentru a notifica administratorii despre noile versiuni"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Beneficiar"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Destinatarul e-mailurilor de notificare a noilor versiuni."
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Trimite statistici"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Pragul pentru cont invalid"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Pragul pentru cont invalid"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
@@ -2393,42 +2402,42 @@ msgstr ""
"Un cont cu o ultima data de conectare mai mare decat acest prag (in zile) va "
"fi considerat inactiv"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Intervalul de verificare a notificărilor"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
"Intervalul dintre două verificări de notificare principală (în secunde)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Vechimea maximă a înregistrărilor log"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
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:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Număr de itemi per pagină"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Numărul de itemi afișați pe o pagină"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Redirecționarea principală implicită"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
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"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2585,7 +2594,7 @@ msgstr "O adresă de e-mail alternativă poate fi utilizată pentru recuperare."
msgid "Failed to update password: LDAP module not installed"
msgstr "Eroare la actualizarea parolei: modulul LDAP nu este instalat"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "cont"
@@ -2598,13 +2607,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Utilizatorul simplu '%s' trebuie să aibă o adresă de e-mail validă"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "câmpului de utilizator și e-mail nu trebuie să difere pentru '%s'"
#: core/password_validation.py:25
@@ -3011,7 +3022,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Utilizatorul '{}' sa deconectat cu succes"
@@ -3051,13 +3062,14 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr "Nu există înregistrări MX pentru %s"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "Not defined"
msgid "Not resolved"
msgstr "Nedefinit"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -3209,63 +3221,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3407,9 +3419,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3437,11 +3449,11 @@ msgstr "Nu s-a reușit crearea unui cont LDAP: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Nu s-a reușit actualizarea contului LDAP: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Nu s-a reușit ștergerea contului LDAP: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Nu s-a reușit dezactivarea contului LDAP: {}"
@@ -3453,20 +3465,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Activați comunicarea cu API-ul public Modoboa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Conexiunea la baza de date %s nu a fost configurată"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Permisiune refuzată: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Permisiune refuzată"
@@ -3489,7 +3503,7 @@ msgid "Failed to update password: {}"
msgstr "Eroare la actualizarea parolei: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Subiect"
@@ -3713,7 +3727,7 @@ msgstr "Arată mesajele suspecte"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Diferențiază între mesjale rejectate hard și soft (suspecte)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistici"
@@ -3721,63 +3735,63 @@ msgstr "Statistici"
msgid "Failed to locate rrdtool binary."
msgstr "Nu s-a gasit binarul rrdtool"
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Media traficului (mesaje/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "mesaje trimise"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "mesaje primite "
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "mesaje returnate"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "mesaje rejectate"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "mesaje cu virus"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "mesaje spam"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "mesaje suspecte"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Media de trafic (octecți/minut)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "mărime pentru primite"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "mărime pentru trimise"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Trafic Email"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Media creări de conturi (cont/oră)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Conturi noi"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Conturi"
@@ -3793,39 +3807,39 @@ msgstr "Cauta un domeniu"
msgid "Apply"
msgstr "Aplică"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Nu sunt disponibile statistici"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Zi"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Săptămană"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Lună"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "An"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Personalizat"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Set grafic necunoscut"
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr "Domeniu necunoscut"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Perioada personalizată invalidă"
@@ -4074,13 +4088,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: s-a atins limita"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4091,37 +4105,37 @@ msgstr "%s: s-a atins limita"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Acest cod nu este valabil"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, 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/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4129,25 +4143,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Ștergere automată a contului"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4155,17 +4169,17 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Cota-parte implicită a domeniului"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4174,14 +4188,14 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
#, fuzzy
#| msgid "spam messages"
msgid "Auto-reply message"
msgstr "mesaje spam"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -4211,7 +4225,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4239,7 +4253,7 @@ msgstr "portul de host"
msgid "verify recipients"
msgstr "verificați destinatarii"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4268,16 +4282,19 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "Setări LDAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
@@ -4285,6 +4302,7 @@ msgstr ""
"Folosește o conexiune de tip SSL/STARTTLS pentru a accesa serverul LDAP"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4392,42 +4410,38 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
msgstr "Crează aliasuri "
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "mesaje rejectate"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
msgstr "Crează aliasuri "
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
msgstr "Crează aliasuri "
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4640,16 +4654,191 @@ msgstr "serviciu"
msgid "next hop"
msgstr "următorul hop"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Setări LDAP"
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Folosește o conexiune securizată"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+"Folosește o conexiune de tip SSL/STARTTLS pentru a accesa serverul LDAP"
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Metoda de autentificare"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "LDAP authentication settings"
+msgid "Server needs authentication"
+msgstr "Setări de autentificare LDAP"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr ""
+"Redirecționarea implicită utilizată atunci când nu este specificată nici o "
+"aplicație"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Numărul de itemi afișați pe o pagină"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr "Crează aliasuri "
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "Crează aliasuri "
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "mesaje rejectate"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "mesaje trimise"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Redirecționarea principală implicită"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr ""
+"Redirecționarea implicită utilizată atunci când nu este specificată nici o "
+"aplicație"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Nu s-a reușit crearea unui cont LDAP: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "Crează aliasuri "
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
+
#, fuzzy
#~| msgid "Authentication method"
#~ msgid "Authentication mechanism"
#~ msgstr "Metoda de autentificare"
-#, fuzzy
-#~| msgid "LDAP authentication settings"
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Setări de autentificare LDAP"
-
#, fuzzy
#~| msgid "Directory not found."
#~ msgid "Directory non-writable"
diff --git a/modoboa/locale/ru/LC_MESSAGES/django.po b/modoboa/locale/ru/LC_MESSAGES/django.po
index 29ea916d1..30cbe6e3a 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,33 +24,33 @@ 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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Права"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -58,20 +58,20 @@ msgstr "Права"
msgid "This field is required"
msgstr "Это поле обязательно для заполнеия"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -82,29 +82,29 @@ msgstr ""
msgid "This field is required."
msgstr "Требуется квота"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "Домен не существует"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
#, 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:574
+#: admin/api/v1/serializers.py:577
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -129,27 +129,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -172,137 +172,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Домены"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -310,11 +310,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Почтовые ящики"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Обрабатывать почтовые ящики на диске"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
#, fuzzy
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
@@ -323,7 +323,7 @@ msgstr ""
"Удалять или переименовывать почтовые ящики на диске, если они удалены или "
"переименованы в Modoboa"
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -335,39 +335,39 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Автоматическое удаление аккаунта"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr "При удалении почтового ящика, так же удалять и аккаунт владельца"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
#, fuzzy
msgid "Automatic domain/mailbox creation"
msgstr "Домен создан"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid ""
"Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -377,13 +377,13 @@ msgstr ""
msgid "Directory not found."
msgstr "Домен изменен"
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -579,8 +579,8 @@ msgstr "Домен(ы) администрируемые пользователе
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Основные"
@@ -674,7 +674,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -692,7 +692,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -807,30 +807,30 @@ msgstr "Шифровать пароль"
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Выберите эту опцию если пароль в вашем файле не зашифрован "
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Ошибка импорта аккаунта (%s): домен должен существовать "
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "Почтовый ящик %s существует"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, fuzzy, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Ошибка импорта аккаунта (%s): домен должен существовать "
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Перенаправленые"
@@ -869,8 +869,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -888,16 +887,16 @@ msgstr "Объект уже существует: %s"
msgid "%d objects imported successfully"
msgstr "%d объектов импортировано"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -908,11 +907,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1044,16 +1043,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Ошибочная строка"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1308,6 +1307,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Дата"
@@ -1398,7 +1398,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Нет"
@@ -1406,7 +1406,7 @@ msgstr "Нет"
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Да"
@@ -1464,9 +1464,9 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
-msgstr "От кого"
+msgstr "От"
#: admin/templates/admin/domains_log_headers.html:5
#: admin/templates/admin/messages_log_headers.html:5
@@ -1506,7 +1506,7 @@ msgstr "Автоматически перенаправлять письма н
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Обновление"
@@ -1625,7 +1625,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Импорт"
@@ -1704,11 +1704,11 @@ msgstr[0] "Синоним создан"
msgstr[1] "Синоним создан"
msgstr[2] "Синоним создан"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1739,11 +1739,11 @@ msgstr[0] "Аккаунт удален"
msgstr[1] "Аккаунта удалено"
msgstr[2] "Аккаунтов удалено"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Импорт доменов"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Импорт информации о пользователях"
@@ -1793,7 +1793,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Разрешить этому администратору доступ к пользовательским ящикам."
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Прочее"
@@ -1806,8 +1806,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1923,7 +1922,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Ошибка в написании"
@@ -1935,8 +1934,8 @@ msgstr "Неправильное количество циклов"
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1956,31 +1955,38 @@ msgstr ""
msgid "Address book"
msgstr "Адрес"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Веб-почта"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Аутентификация"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Тип аутентификации"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Базовая программа для проверки подлинности"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Схема пароля по умолчанию"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Схема используемая для шифровании пароля почтового ящика."
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Циклы"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1988,64 +1994,64 @@ msgstr ""
"Количество циклов (используется только для sha256crypt и sha512crypt), Может"
" быть от 1000 до 999999999, включительно."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
"Обновите пароль пользователя при входе в систему, чтобы использовать схему "
"пароля по умолчанию"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Пароль по умолчанию"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Пароль по умолчанию для автоматически создаваемых учетных записей."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Длина случайного пароля"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Длина случайно сгенерированного пароля."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -2053,73 +2059,76 @@ msgstr ""
msgid "LDAP settings"
msgstr "Параметры LDAP"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Адрес сервера"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP адрес или DNS имя сервера LDAP"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Порт сервера"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "Номер TCP порта LDAP сервера"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "Использовать защищенное соединение"
+msgstr "Использовать безопасное соединение"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Использовать SSL/TLS соединение с LDAP сервером"
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Укажите, если LDAP сервер в Active Directory"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Администратор груп"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2127,35 +2136,35 @@ msgstr ""
"Члены этих LDAP Posix групп должны быть созданы администратором домена. "
"Используйте ';' для как разделитель груп"
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Тип группы"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Тип групп, используемых вашим каталогом LDAP"
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "База поиска групп"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr "Уникальное имя базы которое используется для поиска групп"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Свойства пароля"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Свойства используемые для сохранения пользовательских паролей"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Метод аутентификации"
@@ -2167,17 +2176,17 @@ msgstr "Найти и соединиться"
msgid "Direct bind"
msgstr "Прямое соединение"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Выберите метод аутентификации "
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "Соединится с 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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2185,33 +2194,33 @@ msgstr ""
"Отличительное имя используемое для соединения с LDAP сервером. Оставьте "
"пустым для анонимного соединения"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Пароль для соединения"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "Пароль для соединения с LDAP сервером"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "База поиска пользователей"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr "Уникальное имя базы которое используется для поиска пользователей"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Фильтр поиска"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2219,11 +2228,11 @@ msgstr ""
"Необязательная срока поиска (например '(objectClass=person)') Значение нужно"
" заключить в скобки"
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Шаблон пользователя DN"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2232,114 +2241,114 @@ msgstr ""
"Шаблон используется для построения запросов к DN Он должен содержать атрибут"
" например (%(user)s)"
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Приборная панель"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Пользовательская RSS лента"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Отображать пользовательскую ленту RSS для реселлеров и администраторов "
"доменов"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Спрятать виджет новых функций"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Спрятать виджет новых функций для реселлеров и администраторов доменов"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Уведомления"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Адрес отправителя"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Email адрес для отправки уведомлений"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Публичный API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Разрешить передачу"
@@ -2347,59 +2356,59 @@ msgstr "Разрешить передачу"
msgid "Enable communication with Modoboa public API"
msgstr "Разрешить передачу с публичным API Modoboa"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Проверить новые версии"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Автоматически проверять доступность новых версий."
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Получатель"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Отправить статистику"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Отправлять статистику в Modoboa public API (счетчики и используемые "
"расширения)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Порог неактивного аккаунта"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Порог неактивного аккаунта"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2407,40 +2416,40 @@ msgstr ""
"Аккаунт с датой последнего входа, превышающей этот порог (в днях), будет "
"считаться неактивным"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Интервал между двумя последними проверками уведомлений (в секундах)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Максимальный срок хранения лог записей"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Срок хранения лог записей в днях "
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Элементов на странице"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Количество элементов на странице"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Порог перенаправления по умолчанию"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"Если приложение не указано. Используется перенаправление по умолчанию."
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2590,7 +2599,7 @@ msgstr "Альтернативный e-mail может быть использо
msgid "Failed to update password: LDAP module not installed"
msgstr "Ошибка обновления пароля: модуль LDAP не установлен"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "Аккаунт"
@@ -2603,13 +2612,15 @@ msgid "You can't import an account with a role greater than yours"
msgstr "Вы не можете импортировать аккаунт с ролью старше чем у вас"
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Пользователь '%s' должен иметь действительный почтовый адрес"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "Имя пользователя и адрес не должны отличатся для пользователя '%s'"
#: core/password_validation.py:25
@@ -3001,7 +3012,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -3039,15 +3050,16 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "No recipient defined"
msgid "Not resolved"
msgstr "Получатель не определен"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
-msgstr ""
+msgstr "Нет"
#: dmarc/models.py:11
#, fuzzy
@@ -3194,63 +3206,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3392,10 +3404,12 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
-msgstr ""
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid ""
+#| "Connection to MANAGESIEVE server failed, check your configuration"
+msgid "Connection to IMAP server failed: {error}"
+msgstr "Соединение с сервером MANAGESIEVE не удалось, проверьте конфигурацию"
#: imap_migration/checks.py:12
msgid ""
@@ -3420,11 +3434,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3436,20 +3450,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Разрешить передачу с публичным API Modoboa"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Подключение к базе данных %s не настроено"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "В разрешении отказано: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "В разрешении отказано"
@@ -3472,7 +3488,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Тема"
@@ -3720,7 +3736,7 @@ msgstr "Отвергнутые сообщения"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Статистика"
@@ -3728,71 +3744,71 @@ msgstr "Статистика"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
#, fuzzy
msgid "Average traffic (msgs/min)"
msgstr "Средний размер траффика"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "Отправлено сообщений"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "Принято сообщений"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "Возвращенные сообщения"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "Отвергнутые сообщения"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
#, fuzzy
#| msgid "sent messages"
msgid "virus messages"
msgstr "Отправлено сообщений"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "sent messages"
msgid "spam messages"
msgstr "Отправлено сообщений"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
#, fuzzy
#| msgid "rejected messages"
msgid "greylisted messages"
msgstr "Отвергнутые сообщения"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
#, fuzzy
msgid "Average normal traffic size (bytes/min)"
msgstr "Средний размер траффика"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "Принято"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "Отправлено"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "Почтовый траффик"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3808,41 +3824,41 @@ msgstr "Искать домен"
msgid "Apply"
msgstr "Применить"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Статистика не доступна"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "День"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "Неделя"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Месяц"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "Год"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Неизвестный графический набор "
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "Неизвестный графический набор "
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Не верный выбор периода"
@@ -4087,13 +4103,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s лимит исчерпан"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -4104,35 +4120,35 @@ msgstr "%s лимит исчерпан"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Эта дата закончилась"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr "Должно быть больше чем дата начала."
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Тайм-аут автоматического ответа"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr "Промежуток между автоматическими ответами"
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Тема по умолчанию"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4140,25 +4156,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Автоматические ответы"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "До"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4166,15 +4182,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Меня нет"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr "Содержание по умолчанию"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4187,14 +4203,14 @@ msgstr ""
"Всего хорошего!\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
#, fuzzy
#| msgid "sent messages"
msgid "Auto-reply message"
msgstr "Сообщение автоответчика"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Автоматический ответ"
@@ -4224,7 +4240,7 @@ msgstr "Активировать/Деактивировать автоответ
msgid "Define a message to automatically send when you are off"
msgstr "Задает сообщение для автоматической отправки при вашем отсутствии"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Сообщения автоответчика успешно обновлены"
@@ -4252,7 +4268,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4281,20 +4297,24 @@ msgid "Use the STARTTLS extension"
msgstr "Используйте расширение STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
-msgstr ""
+msgstr "Настройки IMAP"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
-msgstr ""
+msgstr "Адрес вашего IMAP сервера"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
-msgstr ""
+msgstr "Использовать защищенное соединение с IMAP севером"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr ""
+msgstr "Порт вашего IMAP сервера"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4352,7 +4372,7 @@ msgstr "Копия"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr "размер"
+msgstr "Размер"
#: sievefilters/constants.py:31
#, fuzzy
@@ -4396,39 +4416,35 @@ msgstr "Режим редактирования"
msgid "Select the mode you want the editor to work in"
msgstr "Выберите нужный режим для работы редактора"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
msgstr "Корзина"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
-msgstr ""
+msgstr "Папка для удаленных сообщений"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
-msgstr "Отправленные"
+msgstr "Папка отправленные"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr ""
+msgstr "Папка для копий отправленных сообщений"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
-msgstr "Черновики"
+msgstr "Папка для черновиков"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr ""
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
+msgstr "Папка для черновиков"
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
@@ -4606,7 +4622,7 @@ msgstr ""
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Назад"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4630,14 +4646,186 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Максимальный размер вложения"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Максимальный размер вложения в байтах (или КБ. МБ, ГБ)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "Настройки SMTP"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your MANAGESIEVE server"
+msgid "Address of your SMTP server"
+msgstr "Адрес вашего сервера SMTP"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Режим безопасного подключения"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Использовать защищенное соединение"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your MANAGESIEVE server"
+msgid "Listening port of your SMTP server"
+msgstr "Порт вашего SMTP сервера"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Требуется аутентификация"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Сервер требует авторизации"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr "Отображение"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Отображение сообщений по умолчанию"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Для отображения сообщения используется режим по умолчанию"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Разрешить показ HTML ссылок"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Разрешить/Запретить показ HTML ссылок"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Количество отображаемых сообщений на странице"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Максимальное количество сообщений на страницу"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Частота обновления листинга"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Ширина окна папок"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "Ширина окна списка папок"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr "Папки"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "Папка для спама"
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr "Папка для спама"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Написать сообщение"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Редактор по умолчанию"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Редактор по умолчанию для создания сообщения"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Тест подписи"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Пользовательская подпись"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Не удалось удалить вложение:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Не удалось получить разделитель уровней иерархии"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Входящие"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "Черновики"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Спам"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Отправленные"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Корзина"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Вложения слишком велики (лимит: %s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Механизм аутентификации"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Предпочтительный механизм аутентификации"
-
#, fuzzy
#~ msgid "Directory non-writable"
#~ msgstr "Домен изменен"
@@ -4726,9 +4914,6 @@ msgstr ""
#~ msgid "Filter removed"
#~ msgstr "Фильтр удален"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Ошибка удаления фильтра"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Набор фильтров сохранен"
diff --git a/modoboa/locale/si/LC_MESSAGES/django.po b/modoboa/locale/si/LC_MESSAGES/django.po
index 941f47b2d..0d5e3e7d5 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,31 +21,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -53,20 +53,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -75,23 +75,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -114,27 +114,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -155,137 +155,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -293,17 +293,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -314,37 +314,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -352,13 +352,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -524,8 +524,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -603,7 +603,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -621,7 +621,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -728,28 +728,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -786,8 +786,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -805,16 +804,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -825,11 +824,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -945,16 +944,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1177,6 +1176,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1262,7 +1262,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1270,7 +1270,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1320,7 +1320,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1359,7 +1359,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1473,7 +1473,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1546,11 +1546,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1579,11 +1579,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1625,7 +1625,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1638,8 +1638,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1746,7 +1745,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1758,7 +1757,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1774,92 +1773,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1867,107 +1871,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1979,170 +1986,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2150,92 +2157,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2387,7 +2394,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2400,13 +2407,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2779,7 +2784,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2815,11 +2820,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2955,63 +2961,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3143,9 +3149,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3171,11 +3177,11 @@ msgstr "LDAP ගිණුම සෑදීමට අසමත් විය: {}"
msgid "Failed to update LDAP account: {}"
msgstr "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "LDAP ගිණුම මැකීමට අසමත් විය: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "LDAP ගිණුම අබල කිරීමට අසමත් විය: {}"
@@ -3186,20 +3192,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3224,7 +3228,7 @@ msgid "Failed to update password: {}"
msgstr "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3420,7 +3424,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3428,63 +3432,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3500,39 +3504,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3755,11 +3759,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3768,33 +3772,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3802,23 +3806,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3826,15 +3830,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3843,12 +3847,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3876,7 +3880,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3904,7 +3908,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3930,18 +3934,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4029,34 +4037,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4244,3 +4248,150 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "LDAP ගිණුම සෑදීමට අසමත් විය: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/sk/LC_MESSAGES/django.po b/modoboa/locale/sk/LC_MESSAGES/django.po
index 713148788..d4b1c86ce 100644
--- a/modoboa/locale/sk/LC_MESSAGES/django.po
+++ b/modoboa/locale/sk/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -19,31 +19,31 @@ msgstr ""
"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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -51,20 +51,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -73,23 +73,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -112,27 +112,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -153,137 +153,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -291,17 +291,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -312,37 +312,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -350,13 +350,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -522,8 +522,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -601,7 +601,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -619,7 +619,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -726,28 +726,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -784,8 +784,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -803,16 +802,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -823,11 +822,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -943,16 +942,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1175,6 +1174,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1260,7 +1260,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1268,7 +1268,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1318,7 +1318,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1357,7 +1357,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1471,7 +1471,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1544,11 +1544,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1577,11 +1577,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1623,7 +1623,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1636,8 +1636,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1744,7 +1743,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1756,7 +1755,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1772,92 +1771,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1865,107 +1869,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1977,170 +1984,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2148,92 +2155,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2383,7 +2390,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2396,13 +2403,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2775,7 +2780,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2811,11 +2816,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2951,63 +2957,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3139,9 +3145,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3167,11 +3173,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3182,20 +3188,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3218,7 +3222,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3414,7 +3418,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3422,63 +3426,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3494,39 +3498,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3749,11 +3753,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3762,33 +3766,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3796,23 +3800,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3820,15 +3824,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3837,12 +3841,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3870,7 +3874,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3898,7 +3902,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3924,18 +3928,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4023,34 +4031,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4238,3 +4242,148 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/sk_SK/LC_MESSAGES/django.po b/modoboa/locale/sk_SK/LC_MESSAGES/django.po
index 4b3309296..1e888261f 100644
--- a/modoboa/locale/sk_SK/LC_MESSAGES/django.po
+++ b/modoboa/locale/sk_SK/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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/"
@@ -23,31 +23,31 @@ msgstr ""
"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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,20 +55,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -77,23 +77,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -116,27 +116,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -157,137 +157,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -295,17 +295,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -316,37 +316,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -354,13 +354,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -526,8 +526,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -605,7 +605,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -623,7 +623,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -730,28 +730,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -788,8 +788,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -807,16 +806,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -827,11 +826,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -947,16 +946,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1179,6 +1178,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1264,7 +1264,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1272,7 +1272,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1322,7 +1322,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1361,7 +1361,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1475,7 +1475,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1550,11 +1550,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1587,11 +1587,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1633,7 +1633,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1646,8 +1646,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1754,7 +1753,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1766,7 +1765,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1782,92 +1781,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1875,107 +1879,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1987,170 +1994,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2158,92 +2165,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2395,7 +2402,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Nepodarilo sa aktulizovať účet LDAP: {}"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2408,13 +2415,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2797,7 +2802,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2833,11 +2838,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2973,63 +2979,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3161,9 +3167,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3189,11 +3195,11 @@ msgstr "Nepodarilo sa vytvoriť účet LDAP: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Nepodarilo sa aktulizovať účet LDAP: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Nepodarilo sa odstrániť účet LDAP: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Nepodarilo sa deaktivovať účet LDAP: {}"
@@ -3204,20 +3210,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3242,7 +3246,7 @@ msgid "Failed to update password: {}"
msgstr "Nepodarilo sa aktulizovať účet LDAP: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3438,7 +3442,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3446,63 +3450,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3518,39 +3522,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3773,11 +3777,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3786,33 +3790,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3820,23 +3824,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3844,15 +3848,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3861,12 +3865,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3894,7 +3898,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3922,7 +3926,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3948,18 +3952,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4047,34 +4055,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4262,3 +4266,150 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Nepodarilo sa vytvoriť účet LDAP: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/sl_SI/LC_MESSAGES/django.po b/modoboa/locale/sl_SI/LC_MESSAGES/django.po
index d19d44aa5..cf3a7274f 100644
--- a/modoboa/locale/sl_SI/LC_MESSAGES/django.po
+++ b/modoboa/locale/sl_SI/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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/"
@@ -20,31 +20,31 @@ msgstr ""
"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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -52,20 +52,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -74,23 +74,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -113,27 +113,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknow migration"
msgid "Unknown status"
@@ -156,137 +156,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -294,17 +294,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -315,37 +315,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -353,13 +353,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
#, fuzzy
#| msgid "IMAP migration"
@@ -529,8 +529,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -608,7 +608,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -626,7 +626,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -733,28 +733,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -791,8 +791,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -810,16 +809,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -830,11 +829,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -954,16 +953,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1187,6 +1186,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1272,7 +1272,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1280,7 +1280,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1330,7 +1330,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1369,7 +1369,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1483,7 +1483,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1558,11 +1558,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1595,11 +1595,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1647,7 +1647,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1660,8 +1660,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1772,7 +1771,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1784,7 +1783,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1804,92 +1803,97 @@ msgstr ""
msgid "Address book"
msgstr "Naslov strežnika"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1899,115 +1903,118 @@ msgstr ""
msgid "LDAP settings"
msgstr "IMAP nastavitve brez povezave"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Naslov strežnika"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Vrata strežnika"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Naslov strežnika"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Vrata strežnika"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Uporabi zavarovano povezavo"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
#, 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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
#, fuzzy
#| msgid "Connection settings"
msgid "LDAP authentication settings"
msgstr "Nastavitve povezave"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -2019,174 +2026,174 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
#, fuzzy
#| msgid "Connection settings"
msgid "LDAP synchronization settings"
msgstr "Nastavitve povezave"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Naslov strežnika"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2194,92 +2201,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2429,7 +2436,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2444,13 +2451,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2835,7 +2840,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2871,11 +2876,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -3011,63 +3017,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3215,9 +3221,10 @@ msgstr "IMAP nastavitve brez povezave"
msgid "IMAP Migration"
msgstr "Selitev IMAP"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Povezava z IMAP strežnikom ni uspela: %s"
#: imap_migration/checks.py:12
@@ -3243,11 +3250,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3258,20 +3265,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3294,7 +3299,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3490,7 +3495,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3498,63 +3503,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3570,43 +3575,43 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
#, fuzzy
#| msgid "Unknow migration"
msgid "Unknown graphic set"
msgstr "Neznana selitev"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknow migration"
msgid "Unknown domain"
msgstr "Neznana selitev"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3855,11 +3860,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3868,33 +3873,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3902,23 +3907,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3926,15 +3931,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3943,12 +3948,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3976,7 +3981,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4006,7 +4011,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -4038,24 +4043,28 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "OfflineIMAP settings"
msgid "IMAP settings"
msgstr "IMAP nastavitve brez povezave"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
#, fuzzy
#| msgid "Address of your IMAP server"
msgid "Address of your IMAP server"
msgstr "Naslov vašega IMAP strežnika"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use a secured connection to access IMAP server"
msgid "Use a secured connection to access IMAP server"
msgstr "Za dostop do IMAP strežnika, uporabite zavarovano povezavo"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
#, fuzzy
#| msgid "Listening port of your IMAP server"
msgid "Listening port of your IMAP server"
@@ -4147,34 +4156,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
#, fuzzy
#| msgid "Connection to IMAP server failed: %s"
@@ -4367,15 +4372,164 @@ msgstr ""
msgid "next hop"
msgstr ""
-#, fuzzy
-#~| msgid "Connection settings"
-#~ msgid "Authentication mechanism"
-#~ msgstr "Nastavitve povezave"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
#, fuzzy
-#~| msgid "Connection settings"
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Nastavitve povezave"
+#| msgid "OfflineIMAP settings"
+msgid "SMTP settings"
+msgstr "IMAP nastavitve brez povezave"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "Address of your IMAP server"
+msgid "Address of your SMTP server"
+msgstr "Naslov vašega IMAP strežnika"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Uporabi zavarovano povezavo"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection to access IMAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Za dostop do IMAP strežnika, uporabite zavarovano povezavo"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of your IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "Vrata vašega IMAP strežnika"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Connection settings"
+msgid "Authentication required"
+msgstr "Nastavitve povezave"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "Connection settings"
+msgid "Server needs authentication"
+msgstr "Nastavitve povezave"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
#, fuzzy
#~| msgid "IMAP migration"
diff --git a/modoboa/locale/sv/LC_MESSAGES/django.po b/modoboa/locale/sv/LC_MESSAGES/django.po
index b856ed686..54c459159 100644
--- a/modoboa/locale/sv/LC_MESSAGES/django.po
+++ b/modoboa/locale/sv/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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."
@@ -28,26 +28,26 @@ 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:49
+#: admin/api/v1/serializers.py:48
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."
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 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:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 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:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "Åtkomst nekad."
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,22 +55,22 @@ msgstr "Åtkomst nekad."
msgid "This field is required"
msgstr "Detta fält är obligatoriskt"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Lista över administrerade domäner (endast återförsäljare och "
"domänadministratörer)."
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "Inte tillåtet för denna roll."
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "Måste vara lika med postlådans full_adress"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -79,25 +79,25 @@ msgstr "Måste vara lika med postlådans full_adress"
msgid "This field is required."
msgstr "Detta fält är obligatoriskt."
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "Lokal domän {} finns inte"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "En lista över mottagare"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
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:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "Du har inte tillgång till den här brevlådan."
@@ -120,27 +120,27 @@ msgstr "Måste vara ett positivt heltal"
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:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
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:261
+#: admin/api/v2/serializers.py:259
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:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "Definiera minst ett auktoriserat nätverk/adress"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr "En brevlåda krävs för att skapa alias."
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr "Okänd status"
@@ -161,26 +161,26 @@ msgstr "Inget larm-ID angett"
msgid "Received invalid alarm id(s)"
msgstr "Mottog ogiltiga larm-id(n)"
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "Domäner"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "Aktivera MX kontroller"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
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:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "Giltiga MX"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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."
@@ -188,11 +188,11 @@ 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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "Nya domäner måste använda auktoriserade MX(er)"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -200,71 +200,71 @@ 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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable SPF checks"
msgid "Enable IPV6 checks"
msgstr "Aktivera SPF-kontroller"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr "Aktivera SPF-kontroller"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr "Aktivera DKIM-kontroller"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
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"
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr "Aktivera DMARC-kontroller"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr "Aktivera kontroller av autokonfiguration"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "Aktivera DNSBL-kontroller"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "Kontrollera varje domän mot stora DNSBL-leverantörer"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr "Anpassad DNS-server"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
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:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "DKIM-nycklar lagringskatalog"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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 "
@@ -274,19 +274,19 @@ msgstr ""
"Se till att den här katalogen tillhör root-användaren och inte kan läsas av "
"omvärlden."
-#: admin/app_settings.py:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "Standard DKIM-nyckellängd"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
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:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "Standard domänkvota"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -294,11 +294,11 @@ 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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr "Standardgräns för domänsändning"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
@@ -306,7 +306,7 @@ msgstr ""
"Antal meddelanden som nyskapade domäner tillåts skicka per dag. Lämna tomt "
"utan gräns."
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -314,11 +314,11 @@ msgstr ""
msgid "Mailboxes"
msgstr "Brevlådor"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "Hantera brevlådor på filsystemet"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -326,7 +326,7 @@ 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:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -340,11 +340,11 @@ 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:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr "Standardgräns för postlådans sändning"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
@@ -352,28 +352,28 @@ msgstr ""
"Antal meddelanden som nyskapade brevlådor tillåts skicka per dag. Lämna tomt"
" utan gräns."
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "Automatisk kontoradering"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
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:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "Automatisk domän-/brevlådeskapande"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
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:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
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:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
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."
@@ -381,7 +381,7 @@ msgstr "Skapa ett alias med den gamla adressen när en postlåda byts namn."
msgid "Directory not found."
msgstr "Katalog hittades ej."
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
@@ -389,7 +389,7 @@ 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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Administration"
@@ -569,8 +569,8 @@ msgstr "Domäner användaren administrerar"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Generellt"
@@ -656,7 +656,7 @@ 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:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "domän alias"
@@ -674,7 +674,7 @@ msgstr "Lagringskatalogen för DKIM-nycklar är inte konfigurerad"
msgid "You can't define an unlimited quota."
msgstr "Du kan inte definiera en obegränsad kvot."
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "domän"
@@ -784,28 +784,28 @@ 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"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Kontoimport misslyckades (%s): domänen existerar inte"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "Brevlåda {} finns redan"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Kontoimport misslyckades (%s): fel kvota värde"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Vidarebefordra"
@@ -842,8 +842,9 @@ 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:256
-#, python-format
-msgid "DNS name is too long: %s"
+#, fuzzy
+#| msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr "DNS namn är för långt: %s"
#: admin/lib.py:287
@@ -861,16 +862,16 @@ msgstr "Objekt finns redan: %s"
msgid "%d objects imported successfully"
msgstr "%d objekt har importerats framgångsrikt"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
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:114
+#: admin/management/commands/subcommands/_import.py:112
#, 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:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr "Det gick inte att avkoda CSV-fil med %(encoding)s kodning"
@@ -881,11 +882,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Failed to communicate with public API: %s"
msgid "Failed to generate DKIM public key"
@@ -1005,16 +1006,16 @@ msgstr ""
msgid "Key length"
msgstr "Nyckellängd"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Ogiltig rad"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr "{}: ingen auktoriserad MX-post hittades för domänen"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr "{}: ogiltigt kvotvärde för domänen"
@@ -1238,6 +1239,7 @@ msgstr "Öppnade alarm för"
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Datum"
@@ -1325,7 +1327,7 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Nej"
@@ -1333,7 +1335,7 @@ msgstr "Nej"
msgid "Generate new key"
msgstr "Skapa ny nyckel"
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Ja"
@@ -1383,7 +1385,7 @@ msgstr "Kö 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Från"
@@ -1422,7 +1424,7 @@ msgstr "Vidarebefordra e-postmeddelanden automatiskt till en annan adress"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Uppdatera"
@@ -1554,7 +1556,7 @@ msgid "Message logs"
msgstr "Meddelandeloggar"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "Importera"
@@ -1628,11 +1630,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias raderat"
msgstr[1] "Alias raderat"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "MX-poster för {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL-sammanfattning för {}"
@@ -1661,11 +1663,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Konto raderat"
msgstr[1] "Konto raderat"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "Importera domäner"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "Importera identiteter"
@@ -1715,7 +1717,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Tillåt den här administratören att ändra användares brevlådor"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Övrigt"
@@ -1728,8 +1730,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1846,7 +1847,7 @@ 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:535
#: core/app_settings.py:543 core/app_settings.py:551
-#: postfix_autoreply/forms.py:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Ogiltig syntax"
@@ -1858,8 +1859,8 @@ msgstr "Ogiltigt antal omgångar"
msgid "This code is invalid"
msgstr "Denna kod är ogiltig"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
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: {}"
@@ -1879,31 +1880,38 @@ msgstr ""
msgid "Address book"
msgstr "Adress"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "Webmail"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Autentisering"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Autentiseringstyp"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Autentiserings backend"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Standard lösenords schema"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Krypteringsschema för brevlåde lösenord"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Antal omgångar"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -1911,36 +1919,36 @@ 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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Uppdatera lösenordsschema vid inloggning"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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"
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Standardlösenord"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Standardlösenord för automatiskt skapade konton."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Slumpmässig längd på lösenord"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Längd på slumpmässigt genererat lösenord"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Uppdatera lösenords service URL"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -1950,31 +1958,31 @@ msgstr ""
"Det gäller endast icke-lokala användare, dvs. de som skapas automatiskt "
"efter en lyckad extern autentisering (LDAP, SMTP)."
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Meddelande om återställning av lösenord"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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."
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "Aktivera lösenordsåterställning via SMS"
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS provider"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
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"
@@ -1982,75 +1990,78 @@ msgstr "Välj en leverantör för att skicka SMS för lösenordsåterställning"
msgid "LDAP settings"
msgstr "LDAP inställningar"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
msgstr "Server adress"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "Server port"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "TCP port som används av LDAP servern"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "Aktivera sekundär server (reserv)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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"
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "Sekundär serveradress"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "Sekundär serverport"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "Använd en säker anslutning"
+msgstr "Använd säker anslutning"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Administratörsgrupper"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
@@ -2058,35 +2069,35 @@ 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:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Grupptyp"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
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:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Grupper sökbas"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Lösenordsattribut"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Attribut som används för att lagra användarlösenord"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP autentiseringsinställningar"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Autentiseringsmetod"
@@ -2098,17 +2109,17 @@ msgstr "Sök och bind"
msgid "Direct bind"
msgstr "Direkt bindning"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Välj autentiseringsmetod att använda"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2116,34 +2127,34 @@ 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:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Bind lösenord"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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 ')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Användare sökbas"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Sökfilter"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2151,11 +2162,11 @@ msgstr ""
"En valfri filtersträng (t.ex. \"(objectClass = personer) '). För att vara "
"giltigt måste det omges av parenteser."
-#: core/app_settings.py:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Anvädar DN mall"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2164,25 +2175,25 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP synkroniseringsinställningar"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "Aktivera export till LDAP"
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
"Aktivera automatisk synkronisering mellan lokal databas och LDAP-katalog"
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
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:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2190,11 +2201,11 @@ msgstr ""
"Radera LDAP-fjärrkonto när det lokala kontot raderas, annars inaktiveras "
"det."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "DN-mall för kontot"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2203,81 +2214,81 @@ 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:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "Aktiver import från LDAP"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr "Aktivera kontosynkronisering från LDAP-katalog till lokal databas"
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Attribut för användarnamn"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Aktivera Dovecot LDAP-synkronisering"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
"LDAP-autentiseringsinställningar tillämpas på Dovecot-konfigurationen."
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP-konfigurationsfil"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
"Plats för konfigurationsfilen som innehåller Dovecot LDAP-inställningar."
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Kontrollpanel"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Användardefinierat RSS-flöde"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
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"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Dölj egenskaper widget"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
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:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Notifikationer"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Avsändaradress"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "E-postadress som används till att skicka notifikationer."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Publikt API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "Aktivera kommunikation"
@@ -2285,47 +2296,47 @@ msgstr "Aktivera kommunikation"
msgid "Enable communication with Modoboa public API"
msgstr "Aktivera kommunikation med Modoboa publikt API"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Kontrollera nya versioner"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "Kontrollera automatiskt om en nyare version finns"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr "Skicka ett mejl när nya versioner hittas"
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
"Skicka ett e-postmeddelande för att meddela administratörer om nya versioner"
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Mottagare"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Mottagare av e-postmeddelanden om nya versioner."
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "Skicka statistik"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr "Aktivera spårning av inaktiva konton"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account"
" is considered inactive if the user hasn't logged in"
@@ -2333,11 +2344,11 @@ 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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Gräns för inaktiva konton"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
@@ -2345,39 +2356,39 @@ msgstr ""
"Ett konto som inte har loggat in innan denna gräns (antal dagar) kommer "
"anses som inaktivt"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "Toppnotifikationer kontrollintervall"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervall mellan två toppnotifikationskontroller (i sekunder)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Maximal ålder för loggpost"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr "Maximal ålder i dagar för en logg post"
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Artiklar per sida"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Antal poster som visas per sida"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Standard topp omdirigering"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr "Standard omdirigering när ingen applikation angetts"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr "LDAP"
@@ -2532,7 +2543,7 @@ msgstr "En alternativ e-post adress, kan användas för återställningsbehov."
msgid "Failed to update password: LDAP module not installed"
msgstr "Misslyckades med att uppdatera lösenord: LDAP modul ej installerad"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "konto"
@@ -2545,13 +2556,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr "Den enkla användaren '%s' måste ha en gällande e-postadress"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "användarnamn och e-post fält får inte avvika för '%s'"
#: core/password_validation.py:25
@@ -2945,7 +2958,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "Användare '{}' loggade ut framgångsrikt"
@@ -2982,11 +2995,12 @@ msgstr "DMARC"
msgid "Show DMARC report for {}"
msgstr "Visa DMARC-rapport för {}"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr "Ej löst"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr "Ingen"
@@ -3122,63 +3136,63 @@ msgstr "Ogiltig mask hittades {}"
msgid "Not an SPF record"
msgstr "Inte ett SPF-rekord"
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr "Okänd mekanism {}"
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr "Okänd modifierare {}"
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr "Dubblettmodifierare {} hittades"
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr "Ingen mekanism hittades"
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr "Inte en giltig DKIM-post"
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr "Ogiltig tagg {}"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr "Ingen nyckel hittades i posten"
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr "Fel värde {} för tagg {}"
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr "Fel värde {} för tagg {}:"
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr "inte ett heltal"
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr "mindre än {}"
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr "större än {}"
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr "Inte en giltig DMARC-post"
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr "Okänd tagg {}"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr "Missing required p tag"
@@ -3317,9 +3331,10 @@ msgstr "OfflineIMAP-filterinställningar"
msgid "IMAP Migration"
msgstr "IMAP-migrering"
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, fuzzy, python-brace-format
+#| msgid "Connection to IMAP server failed: %s"
+msgid "Connection to IMAP server failed: {error}"
msgstr "Anslutningen till IMAP servern misslyckades: %s"
#: imap_migration/checks.py:12
@@ -3349,11 +3364,11 @@ msgstr "Det gick inte att skapa LDAP-konto: {}"
msgid "Failed to update LDAP account: {}"
msgstr "Det gick inte att uppdatera LDAP-konto: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Failed to delete LDAP account: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Det gick inte att inaktivera LDAP-konto: {}"
@@ -3364,20 +3379,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Det gick inte att kommunicera med offentligt API: %s"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "Anslutning till databasen %s är inte konfigurerad"
#: 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:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "Tillstånd nekas: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "Tillstånd nekas"
@@ -3400,7 +3417,7 @@ msgid "Failed to update password: {}"
msgstr "Misslyckades med att uppdatera lösenord: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Ämne"
@@ -3616,7 +3633,7 @@ msgstr "Visa grålistade meddelanden"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "Gör skillnad på hårda och mjuka rejekt (grålistning)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "Statistik"
@@ -3624,63 +3641,63 @@ msgstr "Statistik"
msgid "Failed to locate rrdtool binary."
msgstr "Det gick inte att hitta binär rrdtool."
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "Genomsnittlig trafik (medd/min)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "skickade meddelanden"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "mottagna meddelanden"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "studsade meddelanden"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "avvisade meddelanden"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "virus meddelanden"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "skräp meddelanden"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "grålistade meddelanden"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "Genomsnittlig normal trafikstorlek (byte/min)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "mottagen storlek"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "skickad storlek"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "E-posttrafik"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "Genomsnittligt kontoskapande (konto/timme)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "Nya konton"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "Konton"
@@ -3696,39 +3713,39 @@ msgstr "Sök en domän"
msgid "Apply"
msgstr "Tillämpa"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "Ingen statistik tillgänglig"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "Dag"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "ecka"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "Månad"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "År"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "Anpassad"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "Okänd grafikuppsättning"
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr "Okänd domän"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "Dålig anpassad period"
@@ -3966,13 +3983,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: gräns nådd"
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3981,37 +3998,37 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Detta datum har varit"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, fuzzy
#| msgid "Cannot be greater than domain quota"
msgid "Must be greater than start date"
msgstr "Måste vara nyare än startdatum"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "Automatiskt svar timeout"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
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/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "Standard ämne"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr "Standard ämne när ett autosvarsmeddelande skapas automatiskt."
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4021,26 +4038,26 @@ msgstr ""
"automatiskt. '%(name)s' ersätts med användarens fullständiga namn."
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "Automatiska svar"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "Tills"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4050,17 +4067,17 @@ 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:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "Jag är borta"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "Standard innehåll"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4073,14 +4090,14 @@ msgstr ""
"Med vänliga hälsningar,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "Autosvar"
@@ -4110,7 +4127,7 @@ msgstr "Aktivera / inaktivera din autosvar"
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
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "Automatisk svarsmeddelande uppdaterats."
@@ -4138,7 +4155,7 @@ msgstr "målvärdport"
msgid "verify recipients"
msgstr "verifiera mottagare"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4171,28 +4188,32 @@ msgid "Use the STARTTLS extension"
msgstr "Använd STARTTLS"
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "IMAP inställningar"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
#, fuzzy
#| msgid "IP address of your Modoboa server"
msgid "Address of your IMAP server"
-msgstr "Adress för din IMAP server"
+msgstr "Adressen till din IMAP-server"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
-msgstr "Använd en säker anslutning för att ansluta till IMAP server"
+msgstr "Använd säker anslutning mot IMAP-servern"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
#, fuzzy
#| msgid "Listening port of the IMAP server"
msgid "Listening port of your IMAP server"
-msgstr "Lyssningsport för din IMAP server"
+msgstr "IMAP-server port"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4300,41 +4321,37 @@ msgstr "Redigeringsläge"
msgid "Select the mode you want the editor to work in"
msgstr "Välj det läge du vill redigeraren att arbeta i"
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create Folders"
msgid "Trash folder"
-msgstr "Skräpkatalog"
+msgstr "Papperskorg katalog"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
msgstr "Katalog där raderade meddelanden hamnar"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create Folders"
msgid "Sent folder"
msgstr "Skickat katalog"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr "Katalog där en kopia av skickade meddelanden hamnar"
+msgstr "Katalog där kopior av skickade meddelanden hamnar"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create Folders"
msgid "Drafts folder"
-msgstr "Utkast katalog"
+msgstr "Utkast"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr "Katalog där utkast sparas"
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr "Misslyckades med att hämta hierarkinavgränsaren"
+msgstr "Katalog där dina utkast hamnar"
#: sievefilters/lib.py:52
#, fuzzy
@@ -4528,7 +4545,7 @@ msgstr "Verifikationskod"
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "Tillbaka"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4550,14 +4567,190 @@ msgstr "service"
msgid "next hop"
msgstr "nästa hopp"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "Maximal storlek för bilaga"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "Största storlek på bifogad fil i byte (eller KB, MB, GB om det anges)"
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "SMTP inställningar"
+
+#: webmail/app_settings.py:75
+#, fuzzy
+#| msgid "IP address of your Modoboa server"
+msgid "Address of your SMTP server"
+msgstr "Adressen till din SMTP-server"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Använd en säker anslutning"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Använd säker anslutning mot SMTP-servern"
+
+#: webmail/app_settings.py:93
+#, fuzzy
+#| msgid "Listening port of the IMAP server"
+msgid "Listening port of your SMTP server"
+msgstr "SMTP-server port"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Autentisering krävs"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "Servern behöver autentisering"
+
+#: webmail/app_settings.py:118
+#, fuzzy
+#| msgid "Display details"
+msgid "Display"
+msgstr "Visning"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "Standard visningsläge för meddelande"
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr "Standard visningsläge för meddelande"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "Aktivera visning av HTML länkar"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "Aktivera / inaktivera om HTML länkar skall visas"
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Antalet visade e-postmeddelanden per sida"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "Anger det maximala antalet meddelanden som visas på en sida"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "Lyssning uppdateringsfrekvens"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "Brevlådornas behållares bredd"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "Bredden av brevlådans listbehållare"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Folders"
+msgstr "Kataloger"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Junk folder"
+msgstr "Skräpkatalog"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "Katalog där skräppost läggs"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "Komponera meddelanden"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Standard editor"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr "Standardredigerare att använda när du skriver ett meddelande"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "Signatur text"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "Användardefinierad e-post signatur"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to remove filter"
+msgid "Failed to remove attachment: "
+msgstr "Misslyckades med att radera bilaga:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "Det gick inte att hämta hierarki avgränsare"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "Inkorg"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create Folders"
+msgid "Drafts"
+msgstr "Utkast"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "Skräp"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "Skickat"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "Papperskorg"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "Bilagan är för stor (max:% s)"
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Autentiseringsmekanism"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "Önskad autentiseringsmekanism"
-
#~ msgid "Directory non-writable"
#~ msgstr "Katalog är en skrivbar"
@@ -4655,9 +4848,6 @@ msgstr "nästa hopp"
#~ msgid "Filter removed"
#~ msgstr "Filter raderat"
-#~ msgid "Failed to remove filter"
-#~ msgstr "Det gick inte att radera filtret"
-
#, fuzzy
#~ msgid "Filters set saved"
#~ msgstr "Filter uppsättning sparat"
diff --git a/modoboa/locale/tr/LC_MESSAGES/django.po b/modoboa/locale/tr/LC_MESSAGES/django.po
index 6dd636e65..cde9bd82e 100644
--- a/modoboa/locale/tr/LC_MESSAGES/django.po
+++ b/modoboa/locale/tr/LC_MESSAGES/django.po
@@ -8,43 +8,44 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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"
+"Language-Team: Turkish (http://www.transifex.com/tonio/modoboa/language/"
+"tr/)\n"
"Language: 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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
#, fuzzy
#| msgid "Permission denied"
msgid "Permission denied."
msgstr "İzin reddedildi"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -52,22 +53,22 @@ msgstr "İzin reddedildi"
msgid "This field is required"
msgstr "Bu alan gerekli"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
#, fuzzy
#| msgid "Hide features widget for resellers and domain administrators"
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:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -78,25 +79,25 @@ msgstr ""
msgid "This field is required."
msgstr "Bu alan gerekli"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -119,27 +120,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -164,151 +165,151 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
#, fuzzy
#| msgid "Enable API access"
msgid "Enable MX checks"
msgstr "API erişimini etkinleştir"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 ""
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, 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
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable API access"
msgid "Enable SPF checks"
msgstr "API erişimini etkinleştir"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable API access"
msgid "Enable DKIM checks"
msgstr "API erişimini etkinleştir"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable API access"
msgid "Enable DMARC checks"
msgstr "API erişimini etkinleştir"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
#, fuzzy
#| msgid "Enable API access"
msgid "Enable DNSBL checks"
msgstr "API erişimini etkinleştir"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
#, fuzzy
#| msgid "Custom RSS feed"
msgid "Custom DNS server"
msgstr "Özel RSS beslemesi"
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -316,19 +317,18 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: 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:454 admin/forms/domain.py:54
+#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -338,40 +338,39 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Automatic account removal"
msgstr "Etkin olmayan hesap eşiği"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:177 admin/app_settings.py:489
+msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -379,13 +378,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
#, fuzzy
#| msgid "Administrator groups"
@@ -497,9 +496,9 @@ 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 ""
#: admin/forms/account.py:254 admin/models/domain.py:39
@@ -565,8 +564,8 @@ msgstr "Alan adı Yöneticisi"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Genel"
@@ -658,7 +657,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -676,7 +675,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -797,28 +796,28 @@ msgstr "Parolanızı mı unuttunuz?"
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -857,8 +856,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -876,16 +874,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, fuzzy, python-format
#| msgid "unable to determine encoding of string"
msgid "Unable to decode CSV file using %(encoding)s encoding"
@@ -897,11 +895,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1035,16 +1033,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "Geçersiz satır"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1096,9 +1094,8 @@ 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"
@@ -1290,6 +1287,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "Tarih"
@@ -1377,12 +1375,11 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "Hayır"
@@ -1390,7 +1387,7 @@ msgstr "Hayır"
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "Evet"
@@ -1448,7 +1445,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr "Kimden"
@@ -1489,7 +1486,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Güncelle"
@@ -1524,11 +1521,11 @@ 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
@@ -1617,7 +1614,7 @@ msgid "Message logs"
msgstr "İleti"
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1695,11 +1692,11 @@ msgid_plural "Aliases deleted"
msgstr[0] "Silindi"
msgstr[1] "Silindi"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1732,11 +1729,11 @@ msgid_plural "Accounts deleted"
msgstr[0] "Hesap DN şablonu."
msgstr[1] "Hesap DN şablonu."
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1788,7 +1785,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "Bu yöneticinin kullanıcı posta kutularına erişimine izin ver"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Çeşitli"
@@ -1801,8 +1798,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1840,8 +1836,7 @@ msgstr "LDAP eşitleme ayarları"
msgid "Interval in seconds between 2 synchronization requests"
msgstr ""
-#: contacts/app_settings.py:51
-#: contacts/templates/modoboa_contacts/index.html:6
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
#: core/api/v2/viewsets.py:164
msgid "Contacts"
msgstr ""
@@ -1918,7 +1913,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "Geçersiz sözdizimi"
@@ -1930,8 +1925,7 @@ msgstr "Geçersiz tur sayısı"
msgid "This code is invalid"
msgstr "Bu kod geçersiz"
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
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: {}"
@@ -1951,67 +1945,72 @@ msgstr ""
msgid "Address book"
msgstr "Adresinden"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Kimlik Doğrulama"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Kimlik Doğrulama Türü"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "Kimlik doğrulama için kullanılan arka uç."
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Varsayılan parola şeması."
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Posta kutusunu şifrelemek için kullanılan şema"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "Çevrimler"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
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."
+"Kullanılacak tur sayısı (Sadece sha256crypt ve sha512crypt kullanılır). 1000 "
+"ve 999999999 arasında olmalıdır."
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr "Parola şemasını girişte güncelle"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
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:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Varsayılan parola"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Otomatik oluşturulan hesaplar için varsayılan parola."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Rastgele parola uzunluğu"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "Rastgele oluşturulmuş parolaların uzunluğu."
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr "Parola servisi URL sayfasını güncelle"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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 "
@@ -2022,29 +2021,29 @@ msgstr ""
"kimlik doğrulamasından sonra otomatik olarak oluşturulanlar gibi. (LDAP, "
"SMTP)"
-#: core/app_settings.py:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr "Parola kurtarma duyurusu"
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
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:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr "SMS ile parola kurtarmayı etkinleştir."
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
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."
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr "SMS sağlayıcı"
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr "Kurtarma parolası göndermek için bir SMS sağlayıcı seçin. "
@@ -2052,111 +2051,114 @@ msgstr "Kurtarma parolası göndermek için bir SMS sağlayıcı seçin. "
msgid "LDAP settings"
msgstr "LDAP ayarları"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Sunucu adresi"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Sunucu portu"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP sunucusunun kullandığı TCP port numarası"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr "İkincil sunucuyu etkinleştir (geri çekil)"
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
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:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr "İkincil sunucu adresi"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr "İkincil sunucu portu"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr "İkincil LDAP sunucusunun kullandığı TCP port numarası"
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Güvenli bir bağlantı kullanın"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
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:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
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:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Yönetici grupları"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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 ""
"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:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Grup türü"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "Dizininizle kullanılacak LDAP grubu türü."
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "Grup arama tabanı."
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
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:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Atanan parola"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Kullanıcı parolalarını saklamak için kullanılacak nitelik"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr "LDAP kimilk doğrulama ayarları"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Kimlik doğrulama metodu"
@@ -2168,17 +2170,17 @@ msgstr "Ara ve bağla"
msgid "Direct bind"
msgstr "Doğrudan bağla"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Kullanılacak kimlik doğrulama yöntemini seçin"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr "DN bağla"
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -2186,34 +2188,34 @@ msgstr ""
"LDAP sunucusuna bağlanırken kullanılacak isim. Anonim bir bağlantı için boş "
"bırakın"
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Parolayı bağla."
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
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)"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "Kullanıcı arama tabanı"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
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:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Arama filtresi"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -2221,11 +2223,11 @@ 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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "Kullanıcı DN şablonu."
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -2234,24 +2236,24 @@ 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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr "LDAP eşitleme ayarları"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr "LDAP'a dışa aktarmayı etkinleştir."
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
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:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr "Yerel hesap silindiğinde uzak LDAP hesabını sil"
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
@@ -2259,11 +2261,11 @@ msgstr ""
"Yerel hesap silindiğinde uzak LDAP hesabını silin, aksi halde devre dışı "
"bırakılır."
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr "Hesap DN şablonu."
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
@@ -2272,77 +2274,77 @@ 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:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr "LDAP'tan içe aktarmayı etkinleştir"
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
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:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr "Atanan kullanıcı adı"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
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:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr "Dovecot LDAP eşitlemesini etkinleştir"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
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:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr "Dovecot LDAP yapılandırma dosyası"
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
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:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Gösterge Paneli"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "Özel RSS beslemesi"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
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:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "Özellikler Aracı'nı gizle"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
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:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Bildirimler"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Gönderici adresi"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Bildirimlerin gönderileceği e-posta adresi."
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Genel API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "İletişimi etkinleştir"
@@ -2350,101 +2352,100 @@ msgstr "İletişimi etkinleştir"
msgid "Enable communication with Modoboa public API"
msgstr "Modoboa genel API'si ile iletişimi etkinleştir"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Yeni sürümleri kontrol et"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
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"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
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:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
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:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr "Alıcı"
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr "Yeni sürüm bildirim iletilerinin alıcısı."
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "İstatistikleri gönder"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
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)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "Etkin olmayan hesap eşiği"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "Etkin olmayan hesap eşiği"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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 ""
"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:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "En önemli bildirimler kontrol aralığı"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "İki üst bildirim kontrolü arasındaki aralık (saniye cinsinden)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Maksimum günlük kaydı yaşı"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
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:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Sayfa başına öğe"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr "Sayfa başına görüntülenen öğe sayısı"
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr "Varsayılan üst yönlendirme"
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
"Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme"
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2600,7 +2601,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Parola güncellenemedi: LDAP modülü kurulu değil"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "Hesap"
@@ -2613,13 +2614,15 @@ 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:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+#, fuzzy
+#| msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' 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:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+#, fuzzy
+#| msgid "username and email fields must not differ for '%s'"
+msgid "username and email fields must not differ for '{}'"
msgstr "'%s' için kullanıcı adı ve e-posta alanları farklı olmamalıdır"
#: core/password_validation.py:25
@@ -2769,15 +2772,15 @@ msgstr ""
#: core/templates/core/information.html:6
#, python-format
msgid ""
-"The password scheme %(scheme)s has been deprecated and will"
-" be removed in the next minor version. The procedure to upgrade to a "
-"stronger scheme is as follows: - Go to Parameters > "
-"General section
- Change the value of Default "
-"password scheme
- Make sure Update password scheme "
-"at login option is enabled
- Save your changes
"
-"- Logout / Login with your current account so its password gets "
-"updated
- Inform ALL your users that they must login"
-" to Modoboa to complete the operation
"
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
msgstr ""
#: core/templates/core/information.html:18
@@ -2900,8 +2903,8 @@ 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."
+"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 "
@@ -3016,7 +3019,7 @@ 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/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr "'{}' kullanıcısı başarıyla çıkış yaptı"
@@ -3054,11 +3057,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -3204,67 +3208,67 @@ msgstr "Geçersiz tur sayısı"
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
#, fuzzy
#| msgid "Invalid syntax"
msgid "Invalid tag {}"
msgstr "Geçersiz sözdizimi"
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
#, fuzzy
#| msgid "Unknown"
msgid "Unknown tag {}"
msgstr "Bilinmeyen"
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3298,8 +3302,8 @@ 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."
+"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
@@ -3388,8 +3392,8 @@ 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
@@ -3406,9 +3410,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3438,13 +3442,13 @@ msgstr "{} Parola güncelleme başarısız"
msgid "Failed to update LDAP account: {}"
msgstr "{} Parola güncelleme başarısız"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
#, fuzzy
#| msgid "Failed to update password: {}"
msgid "Failed to delete LDAP account: {}"
msgstr "{} Parola güncelleme başarısız"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
#, fuzzy
#| msgid "Failed to update password: {}"
msgid "Failed to disable LDAP account: {}"
@@ -3458,20 +3462,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "Modoboa genel API'si ile iletişimi etkinleştir"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "%s veritabanına bağlantı yapılandırılmamış"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr "dize kodlaması belirlenemiyor"
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "%sizin reddedildi"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "İzin reddedildi"
@@ -3494,7 +3500,7 @@ msgid "Failed to update password: {}"
msgstr "{} Parola güncelleme başarısız"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Konu"
@@ -3511,8 +3517,8 @@ 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"
@@ -3532,8 +3538,8 @@ msgstr ""
#: 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)"
+"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:58 limits/app_settings.py:198
@@ -3568,8 +3574,8 @@ msgstr ""
#: 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)"
+"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:104 limits/app_settings.py:260
@@ -3586,8 +3592,8 @@ msgstr ""
#: 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)"
+"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
@@ -3694,7 +3700,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
#, fuzzy
#| msgid "Send statistics"
msgid "Statistics"
@@ -3704,69 +3710,69 @@ msgstr "İstatistikleri gönder"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
#, fuzzy
#| msgid "Message"
msgid "sent messages"
msgstr "İleti"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
#, fuzzy
#| msgid "Message"
msgid "spam messages"
msgstr "İleti"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
#, fuzzy
#| msgid "account"
msgid "New accounts"
msgstr "Hesap"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
#, fuzzy
#| msgid "account"
msgid "Accounts"
@@ -3788,43 +3794,43 @@ msgstr "Ara ve bağla"
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
#, fuzzy
#| msgid "No preferences available."
msgid "No statistics available"
msgstr "Kullanılabilir tercihler yok."
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown"
msgid "Unknown domain"
msgstr "Bilinmeyen"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -4065,11 +4071,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -4078,35 +4084,35 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This code is invalid"
msgid "This date is over"
msgstr "Bu kod geçersiz"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4114,25 +4120,25 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Automatic replies"
msgstr "Etkin olmayan hesap eşiği"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4140,15 +4146,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4157,14 +4163,14 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: 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:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -4194,7 +4200,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -4228,7 +4234,7 @@ msgstr ""
msgid "verify recipients"
msgstr "Alıcı"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "Enter a valid email address."
msgid "Filter %s already exists"
@@ -4257,22 +4263,26 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "LDAP ayarları"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
msgstr "LDAP sunucusuna erişmek için bir SSL/STARTTLS bağlantısı kullanın"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4374,34 +4384,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4498,7 +4504,8 @@ 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"
+"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"
" "
#: templates/registration/password_reset_confirm_code.html:22
@@ -4520,10 +4527,10 @@ msgid ""
"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.
"
+"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
@@ -4532,8 +4539,8 @@ 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:"
+"%(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
@@ -4575,8 +4582,8 @@ msgstr "Eski parola"
#: templates/registration/twofactor_code_verify.html:35
msgid ""
-"Enter the code from the two-factor app on your mobile device. If you've lost"
-" your device, you may enter one of your recovery codes."
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
msgstr ""
#: templates/registration/twofactor_code_verify.html:42
@@ -4612,14 +4619,178 @@ msgstr ""
msgid "next hop"
msgstr ""
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+#, fuzzy
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "LDAP ayarları"
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Güvenli bir bağlantı kullanın"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "LDAP sunucusuna erişmek için bir SSL/STARTTLS bağlantısı kullanın"
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Kimlik doğrulama metodu"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "LDAP kimilk doğrulama ayarları"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default mode used when displaying a message"
+msgstr ""
+"Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+#, fuzzy
+#| msgid "Number of displayed items per page"
+msgid "Number of displayed emails per page"
+msgstr "Sayfa başına görüntülenen öğe sayısı"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "Message"
+msgid "Composing messages"
+msgstr "İleti"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default top redirection"
+msgid "Default editor"
+msgstr "Varsayılan üst yönlendirme"
+
+#: webmail/app_settings.py:228
+#, fuzzy
+#| msgid "The default redirection used when no application is specified"
+msgid "The default editor to use when composing a message"
+msgstr ""
+"Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to update password: {}"
+msgid "Failed to remove attachment: "
+msgstr "{} Parola güncelleme başarısız"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
+
#, fuzzy
#~ msgid "Authentication mechanism"
#~ msgstr "Kimlik doğrulama metodu"
-#, fuzzy
-#~ msgid "Prefered authentication mechanism"
-#~ msgstr "LDAP kimilk doğrulama ayarları"
-
#~ 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."
diff --git a/modoboa/locale/tr_TR/LC_MESSAGES/django.po b/modoboa/locale/tr_TR/LC_MESSAGES/django.po
index d6b0249fe..3866149b1 100644
--- a/modoboa/locale/tr_TR/LC_MESSAGES/django.po
+++ b/modoboa/locale/tr_TR/LC_MESSAGES/django.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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/"
@@ -23,31 +23,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,20 +55,20 @@ msgstr ""
msgid "This field is required"
msgstr "Bu alan gereklidir"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -77,23 +77,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -116,27 +116,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -157,137 +157,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -295,17 +295,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -316,37 +316,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -354,13 +354,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "Yönetim"
@@ -526,8 +526,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "Genel"
@@ -605,7 +605,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -623,7 +623,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -730,28 +730,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -788,8 +788,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -807,16 +806,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -827,11 +826,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -947,16 +946,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1179,6 +1178,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1266,7 +1266,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1274,7 +1274,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1324,7 +1324,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1363,7 +1363,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "Güncelle"
@@ -1477,7 +1477,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1550,11 +1550,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1583,11 +1583,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1635,7 +1635,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "Çeşitli"
@@ -1648,8 +1648,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1764,7 +1763,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1776,7 +1775,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1794,96 +1793,103 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "E-posta"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "Yetkilendirme"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "Yetkilendirme türü"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "Varsayılan parola şeması"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "Mailbox parolalarını şifrelemek için kullanılacak şema"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password scheme at login"
msgstr "Şifre şemasını güncelle"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "Varsayılan parola"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "Otomatik oluşturulan hesaplar için varsayılan parola."
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "Rastgele şifre uzunluğu"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password service URL"
msgstr "Şifre şemasını güncelle"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1891,117 +1897,120 @@ msgstr ""
msgid "LDAP settings"
msgstr "LDAP ayarları"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr "Sunucu adresi"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
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:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr "Sunucu portu"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP sunucu tarafından kullanılan TCP portu"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Sunucu adresi"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
#, 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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Sunucu portu"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
#, 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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr "Güvenli bir bağlantı kullan"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "LDAP sunucu bir Active Directory ise"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "Yönetici grupları"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "Grup türü"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "Parola özelliği"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "Kullanıcı parolalarını saklamak için kullanılacak özellik"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Yetkilendirme metodu"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "Yetkilendirme metodu"
@@ -2013,174 +2022,174 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "Kullanılacak yetkilendirme metodunu seçin"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "Arama filtresi"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP ayarları"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Parola özelliği"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "gösterge Paneli"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "Bildirimler"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "Gönderici adresi"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "Bildirimlerin gönderileceği email adresi"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "Genel API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2188,92 +2197,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "Yeni versiyonları kontrol et"
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "İstatistikleri gönder"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "Maksimum günlük kayıt yaşı"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "Sayfa başına öğe"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2429,7 +2438,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2442,13 +2451,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2827,7 +2834,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2865,11 +2872,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -3011,63 +3019,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3201,9 +3209,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3231,11 +3239,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3246,20 +3254,20 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
-msgstr ""
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permissions"
+msgid "Permission denied: {}"
+msgstr "İzinler"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3282,7 +3290,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr "Konu"
@@ -3478,7 +3486,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
#, fuzzy
#| msgid "Send statistics"
msgid "Statistics"
@@ -3488,65 +3496,65 @@ msgstr "İstatistikleri gönder"
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
#, fuzzy
#| msgid "New account"
msgid "New accounts"
msgstr "Yeni hesap"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
#, fuzzy
#| msgid "New account"
msgid "Accounts"
@@ -3566,39 +3574,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3831,11 +3839,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3844,35 +3852,35 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "Bu alan gereklidir"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3880,23 +3888,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3904,15 +3912,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3921,12 +3929,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3956,7 +3964,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3984,7 +3992,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -4012,22 +4020,26 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
msgstr "LDAP ayarları"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use a secured connection"
msgid "Use a secured connection to access IMAP server"
msgstr "Güvenli bir bağlantı kullan"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4123,34 +4135,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4349,14 +4357,166 @@ msgstr "hizmet"
msgid "next hop"
msgstr "sonraki atlama"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
#, fuzzy
-#~| msgid "Authentication method"
-#~ msgid "Authentication mechanism"
-#~ msgstr "Yetkilendirme metodu"
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "LDAP ayarları"
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "Güvenli bir bağlantı kullan"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Use a secured connection to access SMTP server"
+msgstr "Güvenli bir bağlantı kullan"
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "Yetkilendirme metodu"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Server needs authentication"
+msgstr "Yetkilendirme metodu"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default password"
+msgid "Default editor"
+msgstr "Varsayılan parola"
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
#, fuzzy
#~| msgid "Authentication method"
-#~ msgid "Prefered authentication mechanism"
+#~ msgid "Authentication mechanism"
#~ msgstr "Yetkilendirme metodu"
#, fuzzy
diff --git a/modoboa/locale/uk/LC_MESSAGES/django.po b/modoboa/locale/uk/LC_MESSAGES/django.po
index 586117892..1d7c0bcb9 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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"
@@ -24,31 +24,31 @@ msgstr ""
"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:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -56,20 +56,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -78,23 +78,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -117,27 +117,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -158,137 +158,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -296,17 +296,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -317,37 +317,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -355,13 +355,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -527,8 +527,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -606,7 +606,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -624,7 +624,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -731,28 +731,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -789,8 +789,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -808,16 +807,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -828,11 +827,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -948,16 +947,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1180,6 +1179,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1265,7 +1265,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1273,7 +1273,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1323,7 +1323,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1362,7 +1362,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1476,7 +1476,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1551,11 +1551,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1588,11 +1588,11 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1634,7 +1634,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1647,8 +1647,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1755,7 +1754,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1767,7 +1766,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1783,92 +1782,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1876,107 +1880,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1988,170 +1995,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2159,92 +2166,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2396,7 +2403,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "Не вдалося оновити обліковий запис LDAP: {} "
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2409,13 +2416,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2798,7 +2803,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2834,11 +2839,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2974,63 +2980,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3162,9 +3168,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3190,11 +3196,11 @@ msgstr "Не вдалося створити обліковий запис LDAP:
msgid "Failed to update LDAP account: {}"
msgstr "Не вдалося оновити обліковий запис LDAP: {} "
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "Не вдалося видалити обліковий запис LDAP: {} "
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "Не вдалося відключити обліковий запис LDAP: {} "
@@ -3205,20 +3211,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3243,7 +3247,7 @@ msgid "Failed to update password: {}"
msgstr "Не вдалося оновити обліковий запис LDAP: {} "
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3439,7 +3443,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3447,63 +3451,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3519,39 +3523,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3774,11 +3778,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3787,33 +3791,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3821,23 +3825,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3845,15 +3849,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3862,12 +3866,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3895,7 +3899,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3923,7 +3927,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3949,18 +3953,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4048,34 +4056,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4263,3 +4267,150 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "Не вдалося створити обліковий запис LDAP: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/zh/LC_MESSAGES/django.po b/modoboa/locale/zh/LC_MESSAGES/django.po
index 48eb716b8..2a87b4f44 100644
--- a/modoboa/locale/zh/LC_MESSAGES/django.po
+++ b/modoboa/locale/zh/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,31 +18,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -50,20 +50,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -72,23 +72,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -111,27 +111,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -152,137 +152,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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 ""
-#: admin/app_settings.py:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -290,19 +290,18 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: 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:454 admin/forms/domain.py:54
+#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -312,38 +311,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:177 admin/app_settings.py:489
+msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -351,13 +349,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -459,9 +457,9 @@ 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 ""
#: admin/forms/account.py:254 admin/models/domain.py:39
@@ -523,8 +521,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -602,7 +600,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -620,7 +618,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -727,28 +725,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -785,8 +783,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -804,16 +801,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -824,11 +821,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -944,16 +941,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1003,9 +1000,8 @@ 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 ""
@@ -1177,6 +1173,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1258,12 +1255,11 @@ 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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1271,7 +1267,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1321,7 +1317,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1360,7 +1356,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1391,11 +1387,11 @@ 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
@@ -1474,7 +1470,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1547,11 +1543,11 @@ msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1580,11 +1576,11 @@ msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1626,7 +1622,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1639,8 +1635,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1674,8 +1669,7 @@ msgstr ""
msgid "Interval in seconds between 2 synchronization requests"
msgstr ""
-#: contacts/app_settings.py:51
-#: contacts/templates/modoboa_contacts/index.html:6
+#: contacts/app_settings.py:51 contacts/templates/modoboa_contacts/index.html:6
#: core/api/v2/viewsets.py:164
msgid "Contacts"
msgstr ""
@@ -1748,7 +1742,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1760,8 +1754,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1777,92 +1770,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1870,107 +1868,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
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 ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1982,170 +1983,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2153,93 +2154,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
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 ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2389,7 +2389,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2402,13 +2402,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2552,15 +2550,15 @@ msgstr ""
#: core/templates/core/information.html:6
#, python-format
msgid ""
-"The password scheme %(scheme)s has been deprecated and will"
-" be removed in the next minor version. The procedure to upgrade to a "
-"stronger scheme is as follows: - Go to Parameters > "
-"General section
- Change the value of Default "
-"password scheme
- Make sure Update password scheme "
-"at login option is enabled
- Save your changes
"
-"- Logout / Login with your current account so its password gets "
-"updated
- Inform ALL your users that they must login"
-" to Modoboa to complete the operation
"
+"The password scheme %(scheme)s has been deprecated and will "
+"be removed in the next minor version. The procedure to upgrade to a stronger "
+"scheme is as follows: - Go to Parameters > General "
+"section
- Change the value of Default password scheme"
+"strong>
- Make sure Update password scheme at login "
+"option is enabled
- Save your changes
- Logout / Login with "
+"your current account so its password gets updated
- Inform "
+"ALL your users that they must login to Modoboa to complete "
+"the operation
"
msgstr ""
#: core/templates/core/information.html:18
@@ -2678,8 +2676,8 @@ 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."
+"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
@@ -2781,7 +2779,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2817,11 +2815,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2957,63 +2956,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3047,8 +3046,8 @@ 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."
+"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
@@ -3129,8 +3128,8 @@ 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
@@ -3145,9 +3144,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3173,11 +3172,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3188,20 +3187,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3224,7 +3221,7 @@ msgid "Failed to update password: {}"
msgstr ""
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3241,8 +3238,8 @@ 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
msgid "Domain admins"
msgstr ""
@@ -3260,8 +3257,8 @@ msgstr ""
#: 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)"
+"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:58 limits/app_settings.py:198
@@ -3296,8 +3293,8 @@ msgstr ""
#: 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)"
+"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:104 limits/app_settings.py:260
@@ -3314,8 +3311,8 @@ msgstr ""
#: 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)"
+"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
@@ -3420,7 +3417,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3428,63 +3425,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3500,39 +3497,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3755,11 +3752,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3768,33 +3765,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3802,23 +3799,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3826,15 +3823,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3843,12 +3840,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3876,7 +3873,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3904,7 +3901,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3930,18 +3927,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4029,34 +4030,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4212,8 +4209,8 @@ msgstr ""
#: templates/registration/twofactor_code_verify.html:35
msgid ""
-"Enter the code from the two-factor app on your mobile device. If you've lost"
-" your device, you may enter one of your recovery codes."
+"Enter the code from the two-factor app on your mobile device. If you've lost "
+"your device, you may enter one of your recovery codes."
msgstr ""
#: templates/registration/twofactor_code_verify.html:42
@@ -4244,3 +4241,148 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+msgid "Failed to remove attachment: "
+msgstr ""
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/zh_CN/LC_MESSAGES/django.po b/modoboa/locale/zh_CN/LC_MESSAGES/django.po
index ea50e39f7..c761c59d9 100644
--- a/modoboa/locale/zh_CN/LC_MESSAGES/django.po
+++ b/modoboa/locale/zh_CN/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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/"
@@ -22,31 +22,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 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:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr ""
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -54,20 +54,20 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr ""
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -76,23 +76,23 @@ msgstr ""
msgid "This field is required."
msgstr ""
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr ""
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 admin/api/v2/viewsets.py:271
msgid "This alias already exists"
msgstr ""
-#: admin/api/v1/serializers.py:565
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr ""
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr ""
@@ -115,27 +115,27 @@ msgstr ""
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
msgid "A mailbox is required to create aliases."
msgstr ""
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
msgid "Unknown status"
msgstr ""
@@ -156,137 +156,137 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 ""
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
msgid "Enable IPV6 checks"
msgstr ""
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
msgid "Enable SPF checks"
msgstr ""
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
msgid "Check if every domain has a valid SPF record"
msgstr ""
-#: admin/app_settings.py:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
msgid "Enable DKIM checks"
msgstr ""
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
msgstr ""
-#: admin/app_settings.py:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
msgid "Enable DMARC checks"
msgstr ""
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
msgid "Check if every domain has a valid DMARC record"
msgstr ""
-#: admin/app_settings.py:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
msgid "Enable autoconfig checks"
msgstr ""
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
msgid "Check if every domain has a valid records for autoconfiguration"
msgstr ""
-#: admin/app_settings.py:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
msgid "Default domain sending limit"
msgstr ""
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -294,17 +294,17 @@ msgstr ""
msgid "Mailboxes"
msgstr ""
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr ""
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr ""
-#: admin/app_settings.py:148 admin/app_settings.py:456 admin/forms/domain.py:54
+#: admin/app_settings.py:148 admin/app_settings.py:454 admin/forms/domain.py:54
#: admin/models/domain.py:36 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
@@ -315,37 +315,37 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
msgid "Default mailbox sending limit"
msgstr ""
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
@@ -353,13 +353,13 @@ msgstr ""
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
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:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr ""
@@ -525,8 +525,8 @@ msgstr ""
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr ""
@@ -604,7 +604,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr ""
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr ""
@@ -622,7 +622,7 @@ msgstr ""
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr ""
@@ -729,28 +729,28 @@ msgstr ""
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
@@ -787,8 +787,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -806,16 +805,16 @@ msgstr ""
msgid "%d objects imported successfully"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -826,11 +825,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
msgid "Failed to generate DKIM public key"
msgstr ""
@@ -946,16 +945,16 @@ msgstr ""
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
msgid "{}: no authorized MX record found for domain"
msgstr ""
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
msgid "{}: invalid quota value for domain"
msgstr ""
@@ -1178,6 +1177,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr ""
@@ -1263,7 +1263,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:400
+#: lib/form_utils.py:399
msgid "No"
msgstr ""
@@ -1271,7 +1271,7 @@ msgstr ""
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr ""
@@ -1321,7 +1321,7 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
msgid "From"
msgstr ""
@@ -1360,7 +1360,7 @@ msgstr ""
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr ""
@@ -1474,7 +1474,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr ""
@@ -1546,11 +1546,11 @@ msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] ""
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr ""
@@ -1577,11 +1577,11 @@ msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] ""
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr ""
@@ -1623,7 +1623,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr ""
@@ -1636,8 +1636,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1744,7 +1743,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr ""
@@ -1756,7 +1755,7 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200 core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199 core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1772,92 +1771,97 @@ msgstr ""
msgid "Address book"
msgstr ""
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+msgid "Webmail"
+msgstr ""
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr ""
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1865,107 +1869,110 @@ msgstr ""
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
-#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: sievefilters/forms.py:16 sievefilters/forms.py:38 webmail/app_settings.py:36
+#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
-#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: sievefilters/forms.py:23 sievefilters/forms.py:50 webmail/app_settings.py:54
+#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr ""
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr ""
@@ -1977,170 +1984,170 @@ msgstr ""
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963
-#: core/app_settings.py:1026
+#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr ""
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr ""
@@ -2148,92 +2155,92 @@ msgstr ""
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:416 core/app_settings.py:1204 core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201 core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
msgid "Enable inactive account tracking"
msgstr ""
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2385,7 +2392,7 @@ msgstr ""
msgid "Failed to update password: LDAP module not installed"
msgstr "无法更新LDAP帐户: {}"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr ""
@@ -2398,13 +2405,11 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
+msgid "The simple user '{}' must have a valid email address"
msgstr ""
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2772,7 +2777,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2808,11 +2813,12 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr ""
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
msgid "Not resolved"
msgstr ""
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
msgstr ""
@@ -2948,63 +2954,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3136,9 +3142,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3164,11 +3170,11 @@ msgstr "无法创建LDAP帐户: {}"
msgid "Failed to update LDAP account: {}"
msgstr "无法更新LDAP帐户: {}"
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr "无法删除LDAP帐户: {}"
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr "无法关闭LDAP帐户: {}"
@@ -3179,20 +3185,18 @@ msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+msgid "Permission denied: {}"
msgstr ""
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr ""
@@ -3217,7 +3221,7 @@ msgid "Failed to update password: {}"
msgstr "无法更新LDAP帐户: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
msgstr ""
@@ -3413,7 +3417,7 @@ msgstr ""
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr ""
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr ""
@@ -3421,63 +3425,63 @@ msgstr ""
msgid "Failed to locate rrdtool binary."
msgstr ""
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr ""
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr ""
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr ""
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr ""
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr ""
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr ""
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr ""
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr ""
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr ""
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr ""
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr ""
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr ""
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr ""
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr ""
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr ""
@@ -3493,39 +3497,39 @@ msgstr ""
msgid "Apply"
msgstr ""
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr ""
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr ""
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr ""
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr ""
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr ""
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr ""
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr ""
-#: maillog/views.py:71
+#: maillog/views.py:69
msgid "Unknown domain"
msgstr ""
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr ""
@@ -3748,11 +3752,11 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
msgid "Daily sending limit reached"
msgstr ""
-#: policyd/core.py:125
+#: policyd/core.py:136
msgid "[modoboa] Sending limit reached"
msgstr ""
@@ -3761,33 +3765,33 @@ msgstr ""
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
msgid "This date is over"
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
msgid "Must be greater than start date"
msgstr ""
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr ""
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr ""
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr ""
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr ""
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -3795,23 +3799,23 @@ msgid ""
msgstr ""
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
msgid "Automatic replies"
msgstr ""
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr ""
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss"
msgstr ""
-#: postfix_autoreply/forms.py:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -3819,15 +3823,15 @@ msgid ""
"%(untildate)s"
msgstr ""
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr ""
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
msgid "Default content"
msgstr ""
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -3836,12 +3840,12 @@ msgid ""
"%(name)s\n"
msgstr ""
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
msgid "Auto-reply message"
msgstr ""
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr ""
@@ -3869,7 +3873,7 @@ msgstr ""
msgid "Define a message to automatically send when you are off"
msgstr ""
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr ""
@@ -3897,7 +3901,7 @@ msgstr ""
msgid "verify recipients"
msgstr ""
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, python-format
msgid "Filter %s already exists"
msgstr ""
@@ -3923,18 +3927,22 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
msgid "IMAP settings"
msgstr ""
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
msgstr ""
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
msgid "Use a secured connection to access IMAP server"
msgstr ""
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
msgstr ""
@@ -4022,34 +4030,30 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
msgid "Trash folder"
msgstr ""
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
msgid "Folder where deleted messages go"
msgstr ""
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
msgid "Sent folder"
msgstr ""
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
msgstr ""
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
msgid "Drafts folder"
msgstr ""
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
msgstr ""
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
-
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
@@ -4237,3 +4241,150 @@ msgstr ""
#: transport/models.py:17
msgid "next hop"
msgstr ""
+
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr ""
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr ""
+
+#: webmail/app_settings.py:67
+msgid "SMTP settings"
+msgstr ""
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:82
+msgid "Secured connection mode"
+msgstr ""
+
+#: webmail/app_settings.py:84
+msgid "Use a secured connection to access SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr ""
+
+#: webmail/app_settings.py:100
+msgid "Authentication required"
+msgstr ""
+
+#: webmail/app_settings.py:102
+msgid "Server needs authentication"
+msgstr ""
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr ""
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr ""
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr ""
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr ""
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr ""
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr ""
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr ""
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr ""
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr ""
+
+#: webmail/app_settings.py:176
+msgid "Folders"
+msgstr ""
+
+#: webmail/app_settings.py:207
+msgid "Junk folder"
+msgstr ""
+
+#: webmail/app_settings.py:209
+msgid "Folder where junk messages should go"
+msgstr ""
+
+#: webmail/app_settings.py:220
+msgid "Composing messages"
+msgstr ""
+
+#: webmail/app_settings.py:226
+msgid "Default editor"
+msgstr ""
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr ""
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr ""
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr ""
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+#| msgid "Failed to create LDAP account: {}"
+msgid "Failed to remove attachment: "
+msgstr "无法创建LDAP帐户: {}"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr ""
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr ""
+
+#: webmail/lib/imaputils.py:476
+msgid "Drafts"
+msgstr ""
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr ""
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr ""
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr ""
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr ""
diff --git a/modoboa/locale/zh_TW/LC_MESSAGES/django.po b/modoboa/locale/zh_TW/LC_MESSAGES/django.po
index 7f1938666..c38e29cb8 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: 2025-02-11 09:00+0100\n"
+"POT-Creation-Date: 2025-05-08 17:08+0200\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,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49
+#: admin/api/v1/serializers.py:41 admin/forms/domain.py:49
#, fuzzy
#| msgid ""
#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
@@ -29,25 +29,25 @@ msgid ""
"A value of 0 means no quota."
msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
-#: admin/api/v1/serializers.py:49
+#: admin/api/v1/serializers.py:48
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
-#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118
+#: admin/api/v1/serializers.py:96 admin/forms/domain.py:118
msgid "No authorized MX record found for this domain"
msgstr "沒有找到這個網域已驗證過的 MX 紀錄"
-#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160
+#: admin/api/v1/serializers.py:114 admin/forms/domain.py:160
msgid "Cannot be greater than domain quota"
msgstr "不可以超過網域配額"
-#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:386
-#: admin/api/v2/serializers.py:496 admin/models/alias.py:38
+#: admin/api/v1/serializers.py:160 admin/api/v1/serializers.py:385
+#: admin/api/v2/serializers.py:492 admin/models/alias.py:38
msgid "Permission denied."
msgstr "權限不足"
-#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77
-#: admin/api/v2/serializers.py:428 admin/forms/alias.py:113
+#: admin/api/v1/serializers.py:222 admin/api/v2/serializers.py:77
+#: admin/api/v2/serializers.py:424 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:582 core/app_settings.py:584 core/app_settings.py:595
@@ -55,20 +55,20 @@ msgstr "權限不足"
msgid "This field is required"
msgstr "這個欄位是必填的"
-#: admin/api/v1/serializers.py:235
+#: admin/api/v1/serializers.py:234
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "管理員網域列表 (只有經銷商和網域管理員)。"
-#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:478
+#: admin/api/v1/serializers.py:358 admin/api/v2/serializers.py:474
msgid "Not allowed for this role."
msgstr "不允許這個身份"
-#: admin/api/v1/serializers.py:377
+#: admin/api/v1/serializers.py:376
msgid "Must be equal to mailbox full_address"
msgstr "必須跟信箱完整位址一樣"
-#: admin/api/v1/serializers.py:415 admin/api/v2/serializers.py:528
+#: admin/api/v1/serializers.py:418 admin/api/v2/serializers.py:526
#: 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 calendars/serializers.py:175
@@ -77,25 +77,25 @@ msgstr "必須跟信箱完整位址一樣"
msgid "This field is required."
msgstr "這個欄位是必填的"
-#: admin/api/v1/serializers.py:427 admin/api/v2/serializers.py:545
+#: admin/api/v1/serializers.py:430 admin/api/v2/serializers.py:543
msgid "Local domain {} does not exist"
msgstr "本機網域 {} 不存在"
-#: admin/api/v1/serializers.py:513
+#: admin/api/v1/serializers.py:516
msgid "A list of recipient"
msgstr "收件人列表"
-#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271
+#: admin/api/v1/serializers.py:532 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
+#: admin/api/v1/serializers.py:568
msgid "You don't have access to this domain."
msgstr "您不能存取這個網域。"
-#: admin/api/v1/serializers.py:574
+#: admin/api/v1/serializers.py:577
msgid "You don't have access to this mailbox."
msgstr "您不能存取這個信箱。"
@@ -118,29 +118,29 @@ msgstr "必須是正整數"
msgid "openssl not found, please make sure it is installed."
msgstr "openssl 找不到,請確認已安裝。"
-#: admin/api/v2/serializers.py:248 admin/app_settings.py:263
+#: admin/api/v2/serializers.py:246 admin/app_settings.py:261
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
-#: admin/api/v2/serializers.py:261
+#: admin/api/v2/serializers.py:259
msgid "Please disable imap migration before disabling this option."
msgstr ""
-#: admin/api/v2/serializers.py:274 admin/app_settings.py:277
+#: admin/api/v2/serializers.py:272 admin/app_settings.py:275
msgid "Define at least one authorized network / address"
msgstr "定義至少一個已驗證網路/位址"
-#: admin/api/v2/serializers.py:513
+#: admin/api/v2/serializers.py:509
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
-#: admin/api/v2/serializers.py:533
+#: admin/api/v2/serializers.py:531
#, fuzzy
#| msgid "A mailbox is required"
msgid "A mailbox is required to create aliases."
msgstr "信箱是必要的"
-#: admin/api/v2/serializers.py:696
+#: admin/api/v2/serializers.py:694
#, fuzzy
#| msgid "Unknown"
msgid "Unknown status"
@@ -163,157 +163,157 @@ msgstr ""
msgid "Received invalid alarm id(s)"
msgstr ""
-#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289
+#: admin/app_settings.py:23 admin/app_settings.py:287 admin/handlers.py:285
#: 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 "網域"
-#: admin/app_settings.py:26 admin/app_settings.py:295
+#: admin/app_settings.py:26 admin/app_settings.py:293
msgid "Enable MX checks"
msgstr "啟用 MX 檢查"
-#: admin/app_settings.py:28 admin/app_settings.py:297
+#: admin/app_settings.py:28 admin/app_settings.py:295
msgid "Check that every domain has a valid MX record"
msgstr "檢查每個網域都有正確的 MX 紀錄"
-#: admin/app_settings.py:32 admin/app_settings.py:304
+#: admin/app_settings.py:32 admin/app_settings.py:302
msgid "Valid MXs"
msgstr "正確的 MX"
-#: admin/app_settings.py:35 admin/app_settings.py:307
+#: admin/app_settings.py:35 admin/app_settings.py:305
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:43 admin/app_settings.py:317
+#: admin/app_settings.py:43 admin/app_settings.py:315
msgid "New domains must use authorized MX(s)"
msgstr "新的網域必須要有已驗立的 MX(s)"
-#: admin/app_settings.py:46 admin/app_settings.py:321
+#: admin/app_settings.py:46 admin/app_settings.py:319
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:52 admin/app_settings.py:329
+#: admin/app_settings.py:52 admin/app_settings.py:327
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable IPV6 checks"
msgstr "啟用 DNS 檢查"
-#: admin/app_settings.py:54 admin/app_settings.py:332
+#: admin/app_settings.py:54 admin/app_settings.py:330
msgid "Check if MX setup for ipv6 is valid"
msgstr ""
-#: admin/app_settings.py:58 admin/app_settings.py:339
+#: admin/app_settings.py:58 admin/app_settings.py:337
#, fuzzy
#| msgid "Enable DNS checks"
msgid "Enable SPF checks"
msgstr "啟用 DNS 檢查"
-#: admin/app_settings.py:60 admin/app_settings.py:341
+#: admin/app_settings.py:60 admin/app_settings.py:339
#, 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:64 admin/app_settings.py:348
+#: admin/app_settings.py:64 admin/app_settings.py:346
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DKIM checks"
msgstr "啟用 MX 檢查"
-#: admin/app_settings.py:67 admin/app_settings.py:350
+#: admin/app_settings.py:67 admin/app_settings.py:348
#, 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:72 admin/app_settings.py:358
+#: admin/app_settings.py:72 admin/app_settings.py:356
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable DMARC checks"
msgstr "啟用 MX 檢查"
-#: admin/app_settings.py:74 admin/app_settings.py:360
+#: admin/app_settings.py:74 admin/app_settings.py:358
#, 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:78 admin/app_settings.py:367
+#: admin/app_settings.py:78 admin/app_settings.py:365
#, fuzzy
#| msgid "Enable MX checks"
msgid "Enable autoconfig checks"
msgstr "啟用 MX 檢查"
-#: admin/app_settings.py:81 admin/app_settings.py:369
+#: admin/app_settings.py:81 admin/app_settings.py:367
#, 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:86 admin/app_settings.py:377
+#: admin/app_settings.py:86 admin/app_settings.py:375
msgid "Enable DNSBL checks"
msgstr "啟用 DNSBL 檢查"
-#: admin/app_settings.py:88 admin/app_settings.py:379
+#: admin/app_settings.py:88 admin/app_settings.py:377
msgid "Check every domain against major DNSBL providers"
msgstr "針對每個 DNSBL 供應商來檢查每個網域"
-#: admin/app_settings.py:92 admin/app_settings.py:386
+#: admin/app_settings.py:92 admin/app_settings.py:384
msgid "Custom DNS server"
msgstr ""
-#: admin/app_settings.py:96 admin/app_settings.py:388
+#: admin/app_settings.py:96 admin/app_settings.py:386
msgid "Use a custom DNS server instead of local server configuration"
msgstr ""
-#: admin/app_settings.py:101 admin/app_settings.py:396
+#: admin/app_settings.py:101 admin/app_settings.py:394
msgid "DKIM keys storage directory"
msgstr "DKIM 金鑰儲存目錄"
-#: admin/app_settings.py:104 admin/app_settings.py:398
+#: admin/app_settings.py:104 admin/app_settings.py:396
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:112 admin/app_settings.py:407
+#: admin/app_settings.py:112 admin/app_settings.py:405
msgid "Default DKIM key length"
msgstr "預設 DKIM 金鑰長度"
-#: admin/app_settings.py:115 admin/app_settings.py:409
+#: admin/app_settings.py:115 admin/app_settings.py:407
msgid "Default length in bits for newly generated DKIM keys."
msgstr "預設長度是給新產生的 DKIM 金鑰用。"
-#: admin/app_settings.py:119 admin/app_settings.py:416
+#: admin/app_settings.py:119 admin/app_settings.py:414
msgid "Default domain quota"
msgstr "預設網域配額"
-#: admin/app_settings.py:122 admin/app_settings.py:418
+#: admin/app_settings.py:122 admin/app_settings.py:416
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:128 admin/app_settings.py:426
+#: admin/app_settings.py:128 admin/app_settings.py:424
#, fuzzy
#| msgid "Default domain quota"
msgid "Default domain sending limit"
msgstr "預設網域配額"
-#: admin/app_settings.py:131 admin/app_settings.py:428
+#: admin/app_settings.py:131 admin/app_settings.py:426
msgid ""
"Number of messages freshly created domains will be allowed to send per day. "
"Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:136 admin/app_settings.py:440
+#: admin/app_settings.py:136 admin/app_settings.py:438
#: 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
@@ -321,17 +321,17 @@ msgstr ""
msgid "Mailboxes"
msgstr "信箱"
-#: admin/app_settings.py:139 admin/app_settings.py:446
+#: admin/app_settings.py:139 admin/app_settings.py:444
msgid "Handle mailboxes on filesystem"
msgstr "在檔案系統上處理信箱"
-#: admin/app_settings.py:142 admin/app_settings.py:448
+#: admin/app_settings.py:142 admin/app_settings.py:446
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr "當他要在 Modoboa 上取得更名或移除就會在檔案系統上更名或移除信箱"
-#: admin/app_settings.py:148 admin/app_settings.py:456
+#: admin/app_settings.py:148 admin/app_settings.py:454
#: admin/forms/domain.py:54 admin/models/domain.py:36
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
@@ -347,40 +347,40 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。"
-#: admin/app_settings.py:157 admin/app_settings.py:467
+#: admin/app_settings.py:157 admin/app_settings.py:465
#, fuzzy
#| msgid "Default mailbox quota"
msgid "Default mailbox sending limit"
msgstr "預設信箱配額"
-#: admin/app_settings.py:160 admin/app_settings.py:469
+#: admin/app_settings.py:160 admin/app_settings.py:467
msgid ""
"Number of messages freshly created mailboxes will be allowed to send per "
"day. Leave empty for no limit."
msgstr ""
-#: admin/app_settings.py:166 admin/app_settings.py:477
+#: admin/app_settings.py:166 admin/app_settings.py:475
msgid "Automatic account removal"
msgstr "自動刪除帳號"
-#: admin/app_settings.py:169 admin/app_settings.py:479
+#: admin/app_settings.py:169 admin/app_settings.py:477
msgid "When a mailbox is removed, also remove the associated account"
msgstr "當信箱移除時,也會移除關聯的帳號"
-#: admin/app_settings.py:174 admin/app_settings.py:488
+#: admin/app_settings.py:174 admin/app_settings.py:486
msgid "Automatic domain/mailbox creation"
msgstr "自動建立網域/信箱"
-#: admin/app_settings.py:177 admin/app_settings.py:491
+#: admin/app_settings.py:177 admin/app_settings.py:489
msgid ""
"Create a domain and a mailbox when an account is automatically created."
msgstr "當帳號自動建立後會建立網域和一個信箱。"
-#: admin/app_settings.py:182 admin/app_settings.py:500
+#: admin/app_settings.py:182 admin/app_settings.py:498
msgid "Create an alias when a mailbox is renamed"
msgstr "當信箱更名時會建立別名"
-#: admin/app_settings.py:185 admin/app_settings.py:503
+#: admin/app_settings.py:185 admin/app_settings.py:501
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr "當信箱更名時建立別名並使用在舊的位址。"
@@ -388,7 +388,7 @@ msgstr "當信箱更名時建立別名並使用在舊的位址。"
msgid "Directory not found."
msgstr "目錄不存在"
-#: admin/app_settings.py:458
+#: admin/app_settings.py:456
#, fuzzy
#| msgid ""
#| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -398,7 +398,7 @@ msgid ""
"value specified. A value of 0 means no quota."
msgstr "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。"
-#: admin/app_settings.py:522 admin/app_settings.py:527
+#: admin/app_settings.py:520 admin/app_settings.py:525
#: core/api/v2/viewsets.py:148
msgid "Administration"
msgstr "管理員"
@@ -572,8 +572,8 @@ msgstr "系統管理者網域(S)"
#: 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/app_settings.py:12 postfix_autoreply/forms.py:107
-#: sievefilters/forms.py:59
+#: postfix_autoreply/app_settings.py:12 postfix_autoreply/forms.py:105
+#: sievefilters/forms.py:59 webmail/app_settings.py:11
msgid "General"
msgstr "一般"
@@ -654,7 +654,7 @@ msgid ""
"GB. A value of 0 means no quota."
msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
-#: admin/forms/domain.py:106 admin/handlers.py:185
+#: admin/forms/domain.py:106 admin/handlers.py:181
msgid "domain alias"
msgstr "網域別名"
@@ -672,7 +672,7 @@ msgstr "未設置 DKIM 金鑰儲存目錄"
msgid "You can't define an unlimited quota."
msgstr "您不可以定義無限制配額。"
-#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107
+#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:118
msgid "domain"
msgstr "網域"
@@ -779,30 +779,30 @@ msgstr "加密密碼"
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "假如密碼包含在您的檔案且未加密時請勾選這個選項"
-#: admin/handlers.py:233
+#: admin/handlers.py:229
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "帳號匯入失敗 (%s): 網域不存在"
-#: admin/handlers.py:248 admin/models/mailbox.py:340
+#: admin/handlers.py:244 admin/models/mailbox.py:340
msgid "Mailbox {} already exists"
msgstr "信箱 {} 已存在"
-#: admin/handlers.py:257
+#: admin/handlers.py:253
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "帳號匯入失敗 (%s): 錯誤配額"
-#: admin/handlers.py:298
+#: admin/handlers.py:294
#: 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:316 admin/templates/admin/forward.html:2
+#: admin/handlers.py:312 admin/templates/admin/forward.html:2
msgid "Forward"
-msgstr "轉發"
+msgstr "轉寄"
#: admin/lib.py:47
msgid "A mailbox is required"
@@ -839,8 +839,7 @@ msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr "DNS 解析逾時,無法查詢 %s 在這個時間點"
#: admin/lib.py:256
-#, python-format
-msgid "DNS name is too long: %s"
+msgid "DNS name is too long: {}"
msgstr ""
#: admin/lib.py:287
@@ -859,16 +858,16 @@ msgstr "元件已存在: %s"
msgid "%d objects imported successfully"
msgstr "%d 元件已匯入成功"
-#: admin/management/commands/subcommands/_import.py:99
+#: admin/management/commands/subcommands/_import.py:97
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:114
+#: admin/management/commands/subcommands/_import.py:112
#, python-format
msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_import.py:125
+#: admin/management/commands/subcommands/_import.py:123
#, python-format
msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
@@ -879,11 +878,11 @@ msgid ""
"exist)"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:56
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
msgid "Failed to generate DKIM private key"
msgstr ""
-#: admin/management/commands/subcommands/_manage_dkim_keys.py:68
+#: admin/management/commands/subcommands/_manage_dkim_keys.py:62
#, fuzzy
#| msgid "Enable communication with Modoboa public API"
msgid "Failed to generate DKIM public key"
@@ -1007,18 +1006,18 @@ msgstr "假如您啟用這個功能,DKIM 金鑰將會產生給這個網域。"
msgid "Key length"
msgstr "金鑰長度"
-#: admin/models/domain.py:368 admin/models/domain_alias.py:70
+#: admin/models/domain.py:366 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
msgid "Invalid line"
msgstr "無效的線"
-#: admin/models/domain.py:378
+#: admin/models/domain.py:376
#, fuzzy
#| msgid "No authorized MX record found for domain {}"
msgid "{}: no authorized MX record found for domain"
msgstr "沒有找到這個網域已驗證過的 MX 紀錄 {}"
-#: admin/models/domain.py:383
+#: admin/models/domain.py:382
#, fuzzy
#| msgid "Invalid quota value for domain '{}'"
msgid "{}: invalid quota value for domain"
@@ -1254,6 +1253,7 @@ msgstr ""
#: 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
+#: webmail/lib/imapemail.py:306
msgid "Date"
msgstr "日期"
@@ -1345,7 +1345,7 @@ msgid ""
msgstr ""
#: admin/templates/admin/domain_detail.html:142 core/constants.py:53
-#: lib/form_utils.py:400
+#: lib/form_utils.py:399
msgid "No"
msgstr "否"
@@ -1353,7 +1353,7 @@ msgstr "否"
msgid "Generate new key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400
+#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:399
msgid "Yes"
msgstr "是"
@@ -1403,15 +1403,15 @@ msgstr ""
#: 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:117 postfix_autoreply/forms.py:18
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:118
msgid "To"
-msgstr "收件人"
+msgstr "到"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1442,7 +1442,7 @@ msgstr "自動轉寄郵件到其他位址"
#: 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:356
+#: core/templates/core/user_profile.html:19 lib/form_utils.py:355
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10
msgid "Update"
msgstr "更新"
@@ -1563,7 +1563,7 @@ msgid "Message logs"
msgstr ""
#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130
-#: admin/views/import_.py:57 admin/views/import_.py:78
+#: admin/views/import_.py:50 admin/views/import_.py:71
msgid "Import"
msgstr "匯入"
@@ -1638,11 +1638,11 @@ msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "別名已刪除"
-#: admin/views/dns.py:28
+#: admin/views/dns.py:24
msgid "MX records of {}"
msgstr "MX 紀錄 {}"
-#: admin/views/dns.py:50
+#: admin/views/dns.py:42
msgid "DNSBL summary for {}"
msgstr "DNSBL 摘要 {}"
@@ -1669,11 +1669,11 @@ msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "帳號已刪除"
-#: admin/views/import_.py:56
+#: admin/views/import_.py:49
msgid "Import domains"
msgstr "匯入網域"
-#: admin/views/import_.py:77
+#: admin/views/import_.py:70
msgid "Import identities"
msgstr "匯入使用者"
@@ -1723,7 +1723,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr "允許這個管理者來存取使用者信箱"
#: calendars/app_settings.py:60 core/app_settings.py:438
-#: core/app_settings.py:1258
+#: core/app_settings.py:1255
msgid "Miscellaneous"
msgstr "雜項"
@@ -1736,8 +1736,7 @@ msgid ""
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
msgstr ""
-#: calendars/app_settings.py:89 calendars/handlers.py:55
-#: core/api/v2/viewsets.py:157
+#: calendars/app_settings.py:89 core/api/v2/viewsets.py:157
msgid "Calendars"
msgstr ""
@@ -1855,7 +1854,7 @@ 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:155
+#: postfix_autoreply/forms.py:153
msgid "Invalid syntax"
msgstr "無效語法"
@@ -1867,8 +1866,8 @@ msgstr ""
msgid "This code is invalid"
msgstr ""
-#: core/api/v2/serializers.py:367 core/views/auth.py:200
-#: core/views/auth.py:253
+#: core/api/v2/serializers.py:367 core/views/auth.py:199
+#: core/views/auth.py:252
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -1888,96 +1887,103 @@ msgstr ""
msgid "Address book"
msgstr "地址"
-#: core/app_settings.py:44 core/app_settings.py:716
+#: core/api/v2/viewsets.py:171 core/api/v2/viewsets.py:173
+#: webmail/app_settings.py:258 webmail/app_settings.py:265
+#, fuzzy
+#| msgid "E-mail"
+msgid "Webmail"
+msgstr "網頁郵件"
+
+#: core/app_settings.py:44 core/app_settings.py:713
msgid "Authentication"
msgstr "驗證"
-#: core/app_settings.py:47 core/app_settings.py:722
+#: core/app_settings.py:47 core/app_settings.py:719
msgid "Authentication type"
msgstr "驗證類型"
-#: core/app_settings.py:50 core/app_settings.py:724
+#: core/app_settings.py:50 core/app_settings.py:721
msgid "The backend used for authentication"
msgstr "此背景程式已用於驗證"
-#: core/app_settings.py:55 core/app_settings.py:731
+#: core/app_settings.py:55 core/app_settings.py:728
msgid "Default password scheme"
msgstr "預設密碼方案"
-#: core/app_settings.py:58 core/app_settings.py:733
+#: core/app_settings.py:58 core/app_settings.py:730
msgid "Scheme used to crypt mailbox passwords"
msgstr "方案已使用於加密信箱密碼"
-#: core/app_settings.py:62 core/app_settings.py:740
+#: core/app_settings.py:62 core/app_settings.py:737
msgid "Rounds"
msgstr "輪"
-#: core/app_settings.py:65 core/app_settings.py:742
+#: core/app_settings.py:65 core/app_settings.py:739
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:71 core/app_settings.py:752
+#: core/app_settings.py:71 core/app_settings.py:749
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "預設密碼方案"
-#: core/app_settings.py:74 core/app_settings.py:755
+#: core/app_settings.py:74 core/app_settings.py:752
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:79 core/app_settings.py:763
+#: core/app_settings.py:79 core/app_settings.py:760
msgid "Default password"
msgstr "預設密碼"
-#: core/app_settings.py:81 core/app_settings.py:765
+#: core/app_settings.py:81 core/app_settings.py:762
msgid "Default password for automatically created accounts."
msgstr "預設密碼是給自動產生帳號用。"
-#: core/app_settings.py:85 core/app_settings.py:772
+#: core/app_settings.py:85 core/app_settings.py:769
msgid "Random password length"
msgstr "隨機密碼長度"
-#: core/app_settings.py:88 core/app_settings.py:774
+#: core/app_settings.py:88 core/app_settings.py:771
msgid "Length of randomly generated passwords."
msgstr "隨機產生密碼的長度。"
-#: core/app_settings.py:92 core/app_settings.py:781
+#: core/app_settings.py:92 core/app_settings.py:778
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "預設密碼方案"
-#: core/app_settings.py:96 core/app_settings.py:783
+#: core/app_settings.py:96 core/app_settings.py:780
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:104 core/app_settings.py:793
+#: core/app_settings.py:104 core/app_settings.py:790
msgid "Password recovery announcement"
msgstr ""
-#: core/app_settings.py:109 core/app_settings.py:795
+#: core/app_settings.py:109 core/app_settings.py:792
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
-#: core/app_settings.py:114 core/app_settings.py:804
+#: core/app_settings.py:114 core/app_settings.py:801
msgid "Enable password recovery by SMS"
msgstr ""
-#: core/app_settings.py:117 core/app_settings.py:807
+#: core/app_settings.py:117 core/app_settings.py:804
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
-#: core/app_settings.py:122 core/app_settings.py:815
+#: core/app_settings.py:122 core/app_settings.py:812
msgid "SMS provider"
msgstr ""
-#: core/app_settings.py:124 core/app_settings.py:818
+#: core/app_settings.py:124 core/app_settings.py:815
msgid "Choose a provider to send password recovery SMS"
msgstr ""
@@ -1985,117 +1991,120 @@ msgstr ""
msgid "LDAP settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:132 core/app_settings.py:836
+#: core/app_settings.py:132 core/app_settings.py:833
#: sievefilters/app_settings.py:18 sievefilters/app_settings.py:51
#: sievefilters/forms.py:16 sievefilters/forms.py:38
+#: webmail/app_settings.py:36 webmail/app_settings.py:73
msgid "Server address"
-msgstr "伺服器地址"
+msgstr "伺服器位址"
-#: core/app_settings.py:134 core/app_settings.py:838
+#: core/app_settings.py:134 core/app_settings.py:835
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP 伺服器的 IP 或 DNS 名稱"
-#: core/app_settings.py:138 core/app_settings.py:845
+#: core/app_settings.py:138 core/app_settings.py:842
#: sievefilters/app_settings.py:25 sievefilters/app_settings.py:67
#: sievefilters/forms.py:23 sievefilters/forms.py:50
+#: webmail/app_settings.py:54 webmail/app_settings.py:91
msgid "Server port"
msgstr "伺服器連接埠"
-#: core/app_settings.py:140 core/app_settings.py:847
+#: core/app_settings.py:140 core/app_settings.py:844
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP 伺服器所使用的 TCP 連接埠"
-#: core/app_settings.py:144 core/app_settings.py:855
+#: core/app_settings.py:144 core/app_settings.py:852
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:147 core/app_settings.py:858
+#: core/app_settings.py:147 core/app_settings.py:855
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:153 core/app_settings.py:866
+#: core/app_settings.py:153 core/app_settings.py:863
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "伺服器地址"
-#: core/app_settings.py:156 core/app_settings.py:869
+#: core/app_settings.py:156 core/app_settings.py:866
#, 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:161 core/app_settings.py:876
+#: core/app_settings.py:161 core/app_settings.py:873
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "伺服器連接埠"
-#: core/app_settings.py:163 core/app_settings.py:879
+#: core/app_settings.py:163 core/app_settings.py:876
#, 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:167 core/app_settings.py:886
+#: core/app_settings.py:167 core/app_settings.py:883
#: sievefilters/app_settings.py:58 sievefilters/forms.py:44
+#: webmail/app_settings.py:45
msgid "Use a secured connection"
-msgstr "使用安全的連接"
+msgstr "使用安全的連線"
-#: core/app_settings.py:171 core/app_settings.py:888
+#: core/app_settings.py:171 core/app_settings.py:885
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器"
-#: core/app_settings.py:176 core/app_settings.py:895
+#: core/app_settings.py:176 core/app_settings.py:892
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:178 core/app_settings.py:897
+#: core/app_settings.py:178 core/app_settings.py:894
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "判斷 LDAP 伺服器是否是 Active Directory 伺服器"
-#: core/app_settings.py:182 core/app_settings.py:904
+#: core/app_settings.py:182 core/app_settings.py:901
msgid "Administrator groups"
msgstr "管理者群組"
-#: core/app_settings.py:185 core/app_settings.py:906
+#: core/app_settings.py:185 core/app_settings.py:903
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators."
" Use ';' characters to separate groups."
msgstr "這些 LDAP 群組的成員將會建立為網域管理者。使用 ';' 字元來分開群組"
-#: core/app_settings.py:192 core/app_settings.py:915
+#: core/app_settings.py:192 core/app_settings.py:912
msgid "Group type"
msgstr "群組類型"
-#: core/app_settings.py:195 core/app_settings.py:917
+#: core/app_settings.py:195 core/app_settings.py:914
msgid "The LDAP group type to use with your directory."
msgstr "此 LDAP 群組類型會使用您的目錄"
-#: core/app_settings.py:199 core/app_settings.py:924
+#: core/app_settings.py:199 core/app_settings.py:921
msgid "Groups search base"
msgstr "群組搜尋基準"
-#: core/app_settings.py:202 core/app_settings.py:926
+#: core/app_settings.py:202 core/app_settings.py:923
msgid "The distinguished name of the search base used to find groups"
msgstr "搜尋基準使用醒目的名稱來找到群組"
-#: core/app_settings.py:208 core/app_settings.py:934
+#: core/app_settings.py:208 core/app_settings.py:931
msgid "Password attribute"
msgstr "密碼屬性"
-#: core/app_settings.py:210 core/app_settings.py:936
+#: core/app_settings.py:210 core/app_settings.py:933
msgid "The attribute used to store user passwords"
msgstr "此屬性使用在儲存使用者密碼"
-#: core/app_settings.py:214 core/app_settings.py:943
+#: core/app_settings.py:214 core/app_settings.py:940
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "身份驗證方法"
-#: core/app_settings.py:217 core/app_settings.py:951
+#: core/app_settings.py:217 core/app_settings.py:948
msgid "Authentication method"
msgstr "身份驗證方法"
@@ -2107,97 +2116,97 @@ msgstr "搜尋和 bind"
msgid "Direct bind"
msgstr "直接 bind"
-#: core/app_settings.py:223 core/app_settings.py:954
+#: core/app_settings.py:223 core/app_settings.py:951
msgid "Choose the authentication method to use"
msgstr "選擇驗證模組來使用"
-#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961
-#: core/app_settings.py:1024
+#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:958
+#: core/app_settings.py:1021
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:230 core/app_settings.py:282 core/app_settings.py:960
+#: core/app_settings.py:1023
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:237 core/app_settings.py:289 core/app_settings.py:972
-#: core/app_settings.py:1034
+#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:969
+#: core/app_settings.py:1031
msgid "Bind password"
msgstr "Bind 密碼"
-#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974
-#: core/app_settings.py:1036
+#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:971
+#: core/app_settings.py:1033
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "此密碼使用於當綁定到 LDAP 伺服器 (有 'Bind DN')"
-#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984
-#: core/app_settings.py:1089
+#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:981
+#: core/app_settings.py:1086
msgid "Users search base"
msgstr "使用者搜尋基準"
-#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986
-#: core/app_settings.py:1091
+#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:983
+#: core/app_settings.py:1088
msgid "The distinguished name of the search base used to find users"
msgstr "搜尋基準使用醒目的名稱來找到使用者"
-#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995
-#: core/app_settings.py:1100
+#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:992
+#: core/app_settings.py:1097
msgid "Search filter"
msgstr "搜尋過濾器"
-#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997
-#: core/app_settings.py:1102
+#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:994
+#: core/app_settings.py:1099
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:266 core/app_settings.py:1006
+#: core/app_settings.py:266 core/app_settings.py:1003
msgid "User DN template"
msgstr "使用者 DN 範本"
-#: core/app_settings.py:269 core/app_settings.py:1008
+#: core/app_settings.py:269 core/app_settings.py:1005
#, python-format
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:276 core/app_settings.py:1017
+#: core/app_settings.py:276 core/app_settings.py:1014
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:299 core/app_settings.py:1045
+#: core/app_settings.py:299 core/app_settings.py:1042
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:302 core/app_settings.py:1047
+#: core/app_settings.py:302 core/app_settings.py:1044
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:308 core/app_settings.py:1056
+#: core/app_settings.py:308 core/app_settings.py:1053
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:311 core/app_settings.py:1059
+#: core/app_settings.py:311 core/app_settings.py:1056
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:317 core/app_settings.py:1068
+#: core/app_settings.py:317 core/app_settings.py:1065
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "使用者 DN 範本"
-#: core/app_settings.py:320 core/app_settings.py:1070
+#: core/app_settings.py:320 core/app_settings.py:1067
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -2207,81 +2216,81 @@ msgid ""
"placeholder (ie. %(user)s)"
msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)"
-#: core/app_settings.py:327 core/app_settings.py:1079
+#: core/app_settings.py:327 core/app_settings.py:1076
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:330 core/app_settings.py:1081
+#: core/app_settings.py:330 core/app_settings.py:1078
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:354 core/app_settings.py:1111
+#: core/app_settings.py:354 core/app_settings.py:1108
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "密碼屬性"
-#: core/app_settings.py:357 core/app_settings.py:1113
+#: core/app_settings.py:357 core/app_settings.py:1110
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:362 core/app_settings.py:1122
+#: core/app_settings.py:362 core/app_settings.py:1119
#, fuzzy
#| msgid "Enable communication"
msgid "Enable Dovecot LDAP sync"
msgstr "啟用通訊"
-#: core/app_settings.py:365 core/app_settings.py:1124
+#: core/app_settings.py:365 core/app_settings.py:1121
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
-#: core/app_settings.py:370 core/app_settings.py:1132
+#: core/app_settings.py:370 core/app_settings.py:1129
msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:374 core/app_settings.py:1134
+#: core/app_settings.py:374 core/app_settings.py:1131
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:379 core/app_settings.py:1147
+#: core/app_settings.py:379 core/app_settings.py:1144
#: core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "儀表板"
-#: core/app_settings.py:382 core/app_settings.py:1153
+#: core/app_settings.py:382 core/app_settings.py:1150
msgid "Custom RSS feed"
msgstr "自訂 RSS 來源"
-#: core/app_settings.py:385 core/app_settings.py:1155
+#: core/app_settings.py:385 core/app_settings.py:1152
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者"
-#: core/app_settings.py:390 core/app_settings.py:1163
+#: core/app_settings.py:390 core/app_settings.py:1160
msgid "Hide features widget"
msgstr "隱藏功能物件"
-#: core/app_settings.py:393 core/app_settings.py:1165
+#: core/app_settings.py:393 core/app_settings.py:1162
msgid "Hide features widget for resellers and domain administrators"
msgstr "隱藏功能物件給經銷商和網域管理者"
-#: core/app_settings.py:397 core/app_settings.py:1177
+#: core/app_settings.py:397 core/app_settings.py:1174
msgid "Notifications"
msgstr "通知"
-#: core/app_settings.py:400 core/app_settings.py:1183
+#: core/app_settings.py:400 core/app_settings.py:1180
msgid "Sender address"
msgstr "伺服器位址"
-#: core/app_settings.py:402 core/app_settings.py:1185
+#: core/app_settings.py:402 core/app_settings.py:1182
msgid "Email address used to send notifications."
msgstr "郵件地址用於寄送通知。"
-#: core/app_settings.py:405 core/app_settings.py:1196
+#: core/app_settings.py:405 core/app_settings.py:1193
msgid "Public API"
msgstr "公用 API"
-#: core/app_settings.py:408 core/app_settings.py:1202
+#: core/app_settings.py:408 core/app_settings.py:1199
msgid "Enable communication"
msgstr "啟用通訊"
@@ -2289,95 +2298,95 @@ msgstr "啟用通訊"
msgid "Enable communication with Modoboa public API"
msgstr "開啟 Modoboa 公用 API 的通訊"
-#: core/app_settings.py:414 core/app_settings.py:1211
+#: core/app_settings.py:414 core/app_settings.py:1208
msgid "Check new versions"
msgstr "檢查新的版本"
-#: core/app_settings.py:416 core/app_settings.py:1204
-#: core/app_settings.py:1214
+#: core/app_settings.py:416 core/app_settings.py:1201
+#: core/app_settings.py:1211
msgid "Automatically checks if a newer version is available"
msgstr "假如有新的版本就自動檢查"
-#: core/app_settings.py:420 core/app_settings.py:1222
+#: core/app_settings.py:420 core/app_settings.py:1219
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:422 core/app_settings.py:1226
+#: core/app_settings.py:422 core/app_settings.py:1223
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:425 core/app_settings.py:1233
+#: core/app_settings.py:425 core/app_settings.py:1230
#: sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:427 core/app_settings.py:1236
+#: core/app_settings.py:427 core/app_settings.py:1233
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:431 core/app_settings.py:1243
+#: core/app_settings.py:431 core/app_settings.py:1240
msgid "Send statistics"
msgstr "寄送狀態"
-#: core/app_settings.py:434 core/app_settings.py:1246
+#: core/app_settings.py:434 core/app_settings.py:1243
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr "寄送狀態到 Modoboa 公用 API (計數器及已使用的外掛)"
-#: core/app_settings.py:441 core/app_settings.py:1265
+#: core/app_settings.py:441 core/app_settings.py:1262
#, fuzzy
#| msgid "Inactive account threshold"
msgid "Enable inactive account tracking"
msgstr "未啟用帳號上限"
-#: core/app_settings.py:444 core/app_settings.py:1268
+#: core/app_settings.py:444 core/app_settings.py:1265
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:451 core/app_settings.py:1277
+#: core/app_settings.py:451 core/app_settings.py:1274
msgid "Inactive account threshold"
msgstr "未啟用帳號上限"
-#: core/app_settings.py:454 core/app_settings.py:1280
+#: core/app_settings.py:454 core/app_settings.py:1277
msgid ""
"An account with a last login date greater than this threshold (in days) will"
" be considered as inactive"
msgstr "這個帳號最後一次登錄日期超過這個上限 (在幾天) 將考慮停用"
-#: core/app_settings.py:460 core/app_settings.py:1289
+#: core/app_settings.py:460 core/app_settings.py:1286
msgid "Top notifications check interval"
msgstr "檢查提醒間隔"
-#: core/app_settings.py:462 core/app_settings.py:1292
+#: core/app_settings.py:462 core/app_settings.py:1289
msgid "Interval between two top notification checks (in seconds)"
msgstr "兩次檢查提醒間隔 (在幾秒)"
-#: core/app_settings.py:466 core/app_settings.py:1299
+#: core/app_settings.py:466 core/app_settings.py:1296
msgid "Maximum log record age"
msgstr "最大日誌紀錄時間"
-#: core/app_settings.py:468 core/app_settings.py:1301
+#: core/app_settings.py:468 core/app_settings.py:1298
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:472 core/app_settings.py:1308
+#: core/app_settings.py:472 core/app_settings.py:1305
msgid "Items per page"
msgstr "每頁的條目數量"
-#: core/app_settings.py:474 core/app_settings.py:1310
+#: core/app_settings.py:474 core/app_settings.py:1307
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:1317
+#: core/app_settings.py:478 core/app_settings.py:1314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:482 core/app_settings.py:1319
+#: core/app_settings.py:482 core/app_settings.py:1316
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:830
+#: core/app_settings.py:827
msgid "LDAP"
msgstr ""
@@ -2535,7 +2544,7 @@ msgstr "替代的電子郵件,可以使用在需要回復的時候。"
msgid "Failed to update password: LDAP module not installed"
msgstr "更新密碼失敗: LDAP 模組未安裝"
-#: core/models.py:186 policyd/core.py:106
+#: core/models.py:186 policyd/core.py:117
msgid "account"
msgstr "帳號"
@@ -2548,13 +2557,13 @@ msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
-#, python-format
-msgid "The simple user '%s' must have a valid email address"
-msgstr ""
+#, fuzzy
+#| msgid "Enter a valid email address."
+msgid "The simple user '{}' must have a valid email address"
+msgstr "輸入有效的電子郵件"
-#: core/models.py:383
-#, python-format
-msgid "username and email fields must not differ for '%s'"
+#: core/models.py:384
+msgid "username and email fields must not differ for '{}'"
msgstr ""
#: core/password_validation.py:25
@@ -2939,7 +2948,7 @@ msgstr ""
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:160
+#: core/views/auth.py:159
msgid "User '{}' successfully logged out"
msgstr ""
@@ -2979,15 +2988,16 @@ msgstr ""
msgid "Show DMARC report for {}"
msgstr "沒有 %s 的 MX 紀錄"
-#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120
+#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:61 dmarc/views.py:120
#, fuzzy
#| msgid "Not defined"
msgid "Not resolved"
msgstr "未定義"
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
+#: webmail/constants.py:18
msgid "None"
-msgstr ""
+msgstr "沒有"
#: dmarc/models.py:11
#, fuzzy
@@ -3137,63 +3147,63 @@ msgstr ""
msgid "Not an SPF record"
msgstr ""
-#: dnstools/lib.py:179
+#: dnstools/lib.py:177
msgid "Unknown mechanism {}"
msgstr ""
-#: dnstools/lib.py:181
+#: dnstools/lib.py:179
msgid "Unknown modifier {}"
msgstr ""
-#: dnstools/lib.py:184
+#: dnstools/lib.py:182
msgid "Duplicate modifier {} found"
msgstr ""
-#: dnstools/lib.py:188
+#: dnstools/lib.py:186
msgid "No mechanism found"
msgstr ""
-#: dnstools/lib.py:195
+#: dnstools/lib.py:193
msgid "Not a valid DKIM record"
msgstr ""
-#: dnstools/lib.py:203 dnstools/lib.py:256
+#: dnstools/lib.py:201 dnstools/lib.py:254
msgid "Invalid tag {}"
msgstr ""
-#: dnstools/lib.py:208
+#: dnstools/lib.py:206
msgid "No key found in record"
msgstr ""
-#: dnstools/lib.py:215
+#: dnstools/lib.py:213
msgid "Wrong value {} for tag {}"
msgstr ""
-#: dnstools/lib.py:230
+#: dnstools/lib.py:228
msgid "Wrong value {} for tag {}:"
msgstr ""
-#: dnstools/lib.py:234
+#: dnstools/lib.py:232
msgid " not an integer"
msgstr ""
-#: dnstools/lib.py:236
+#: dnstools/lib.py:234
msgid " less than {}"
msgstr ""
-#: dnstools/lib.py:239
+#: dnstools/lib.py:237
msgid " greater than {}"
msgstr ""
-#: dnstools/lib.py:248
+#: dnstools/lib.py:246
msgid "Not a valid DMARC record"
msgstr ""
-#: dnstools/lib.py:259
+#: dnstools/lib.py:257
msgid "Unknown tag {}"
msgstr ""
-#: dnstools/lib.py:264
+#: dnstools/lib.py:262
msgid "Missing required p tag"
msgstr ""
@@ -3335,9 +3345,9 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
-#: imap_migration/auth_backends.py:49 sievefilters/imaputils.py:107
-#, python-format
-msgid "Connection to IMAP server failed: %s"
+#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
+#, python-brace-format
+msgid "Connection to IMAP server failed: {error}"
msgstr ""
#: imap_migration/checks.py:12
@@ -3365,11 +3375,11 @@ msgstr ""
msgid "Failed to update LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:134
+#: ldapsync/lib.py:135
msgid "Failed to delete LDAP account: {}"
msgstr ""
-#: ldapsync/lib.py:141
+#: ldapsync/lib.py:144
msgid "Failed to disable LDAP account: {}"
msgstr ""
@@ -3381,20 +3391,22 @@ msgid "Failed to communicate with public API: %s"
msgstr "開啟 Modoboa 公用 API 的通訊"
#: lib/db_utils.py:22
-#, python-format
-msgid "Connection to database %s not configured"
+#, fuzzy
+#| msgid "Connection to database %s not configured"
+msgid "Connection to database {} not configured"
msgstr "連線到資料庫 %s 未設置"
#: lib/email_utils.py:139 lib/email_utils.py:350
msgid "unable to determine encoding of string"
msgstr ""
-#: lib/exceptions.py:83
-#, python-format
-msgid "Permission denied: %s"
+#: lib/exceptions.py:85
+#, fuzzy
+#| msgid "Permission denied: %s"
+msgid "Permission denied: {}"
msgstr "權限不足: %s"
-#: lib/exceptions.py:84
+#: lib/exceptions.py:86
msgid "Permission denied"
msgstr "權限不足"
@@ -3417,9 +3429,9 @@ msgid "Failed to update password: {}"
msgstr "更新密碼失敗: {}"
#: lib/templatetags/lib_tags.py:120 sievefilters/constants.py:23
-#: templates/common/email_searchbar.html:17
+#: templates/common/email_searchbar.html:17 webmail/lib/imapemail.py:304
msgid "Subject"
-msgstr "主題"
+msgstr "主旨"
#: limits/app_settings.py:17 limits/app_settings.py:147
msgid "Default per-admin limits"
@@ -3613,7 +3625,7 @@ msgstr "顯示灰名單郵件"
msgid "Differentiate between hard and soft rejects (greylisting)"
msgstr "區分在硬的退件跟軟的退件之間 (灰名單)"
-#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21
+#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:20
msgid "Statistics"
msgstr "統計"
@@ -3621,63 +3633,63 @@ msgstr "統計"
msgid "Failed to locate rrdtool binary."
msgstr "指定 rrdtools 位置失敗。"
-#: maillog/graphics.py:168
+#: maillog/graphics.py:166
msgid "Average traffic (msgs/min)"
msgstr "平均流量 (郵件數/分鐘)"
-#: maillog/graphics.py:171
+#: maillog/graphics.py:169
msgid "sent messages"
msgstr "已發訊息"
-#: maillog/graphics.py:172
+#: maillog/graphics.py:170
msgid "received messages"
msgstr "收到的訊息"
-#: maillog/graphics.py:173
+#: maillog/graphics.py:171
msgid "bounced messages"
msgstr "已退回郵件"
-#: maillog/graphics.py:174
+#: maillog/graphics.py:172
msgid "rejected messages"
msgstr "已拒絕郵件"
-#: maillog/graphics.py:175
+#: maillog/graphics.py:173
msgid "virus messages"
msgstr "病毒郵件"
-#: maillog/graphics.py:176
+#: maillog/graphics.py:174
msgid "spam messages"
msgstr "垃圾郵件"
-#: maillog/graphics.py:183
+#: maillog/graphics.py:181
msgid "greylisted messages"
msgstr "灰名單郵件"
-#: maillog/graphics.py:200
+#: maillog/graphics.py:198
msgid "Average normal traffic size (bytes/min)"
msgstr "平均流量大小 (位元組/分鐘)"
-#: maillog/graphics.py:203
+#: maillog/graphics.py:201
msgid "received size"
msgstr "已接收大小"
-#: maillog/graphics.py:204
+#: maillog/graphics.py:202
msgid "sent size"
msgstr "寄送大小"
-#: maillog/graphics.py:211
+#: maillog/graphics.py:209
msgid "Mail traffic"
msgstr "郵件流量"
-#: maillog/graphics.py:254
+#: maillog/graphics.py:252
msgid "Average account creation (account/hour)"
msgstr "建立帳號平均值 (帳號/小時)"
-#: maillog/graphics.py:256
+#: maillog/graphics.py:254
msgid "New accounts"
msgstr "新帳號"
-#: maillog/graphics.py:263
+#: maillog/graphics.py:261
msgid "Accounts"
msgstr "帳號"
@@ -3693,41 +3705,41 @@ msgstr "搜尋網域"
msgid "Apply"
msgstr "套用"
-#: maillog/views.py:33
+#: maillog/views.py:31
msgid "No statistics available"
msgstr "沒有可用的狀態"
-#: maillog/views.py:39
+#: maillog/views.py:37
msgid "Day"
msgstr "日"
-#: maillog/views.py:40
+#: maillog/views.py:38
msgid "Week"
msgstr "周"
-#: maillog/views.py:41
+#: maillog/views.py:39
msgid "Month"
msgstr "月"
-#: maillog/views.py:42
+#: maillog/views.py:40
msgid "Year"
msgstr "年"
-#: maillog/views.py:43
+#: maillog/views.py:41
msgid "Custom"
msgstr "自訂"
-#: maillog/views.py:66
+#: maillog/views.py:64
msgid "Unknown graphic set"
msgstr "未知圖形設定"
-#: maillog/views.py:71
+#: maillog/views.py:69
#, fuzzy
#| msgid "Unknown graphic set"
msgid "Unknown domain"
msgstr "未知圖形設定"
-#: maillog/views.py:76
+#: maillog/views.py:74
msgid "Bad custom period"
msgstr "錯誤的自訂期間"
@@ -3976,13 +3988,13 @@ msgid ""
"path."
msgstr ""
-#: policyd/core.py:88
+#: policyd/core.py:99
#, fuzzy
#| msgid "%s: limit reached"
msgid "Daily sending limit reached"
msgstr "%s: 已達到上限"
-#: policyd/core.py:125
+#: policyd/core.py:136
#, fuzzy
#| msgid "%s: limit reached"
msgid "[modoboa] Sending limit reached"
@@ -3993,37 +4005,37 @@ msgstr "%s: 已達到上限"
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
msgstr ""
-#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:88
+#: postfix_autoreply/api/v2/serializers.py:42 postfix_autoreply/forms.py:86
#, fuzzy
#| msgid "This field is required"
msgid "This date is over"
msgstr "這個日期已經過了"
-#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:90
+#: postfix_autoreply/api/v2/serializers.py:45 postfix_autoreply/forms.py:88
#, fuzzy
#| msgid "Cannot be greater than domain quota"
msgid "Must be greater than start date"
msgstr "必須比開始日期遲"
-#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:110
+#: postfix_autoreply/app_settings.py:18 postfix_autoreply/forms.py:108
msgid "Automatic reply timeout"
msgstr "自動答覆逾時"
-#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:113
+#: postfix_autoreply/app_settings.py:20 postfix_autoreply/forms.py:111
msgid "Timeout in seconds between two auto-replies to the same recipient"
msgstr "向同一個收件人發送兩次自動答覆的時間間隔,以秒計算"
#: postfix_autoreply/app_settings.py:27 postfix_autoreply/app_settings.py:36
-#: postfix_autoreply/forms.py:119
+#: postfix_autoreply/forms.py:117
msgid "Default subject"
msgstr "預設主體"
-#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:122
+#: postfix_autoreply/app_settings.py:29 postfix_autoreply/forms.py:120
msgid ""
"Default subject used when an auto-reply message is created automatically"
msgstr "當自動回覆訊息自動建立後會使用預設主旨"
-#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:138
+#: postfix_autoreply/app_settings.py:38 postfix_autoreply/forms.py:136
#, python-format
msgid ""
"Default content used when an auto-reply message is created automatically. "
@@ -4031,25 +4043,25 @@ msgid ""
msgstr "當自動回覆訊息自動建立後會使用預設內容。此 '%(name)s' 巨集會取代使用者名稱。"
#: postfix_autoreply/apps.py:14 postfix_autoreply/apps.py:20
-#: postfix_autoreply/forms.py:163
+#: postfix_autoreply/forms.py:161
#, fuzzy
#| msgid "Automatic account removal"
msgid "Automatic replies"
msgstr "自動答覆"
-#: postfix_autoreply/forms.py:23
+#: postfix_autoreply/forms.py:21
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:28
+#: postfix_autoreply/forms.py:26
msgid "Until"
msgstr "直到"
-#: postfix_autoreply/forms.py:31
+#: postfix_autoreply/forms.py:29
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:39
+#: postfix_autoreply/forms.py:37
#, python-format
msgid ""
"The content of your answer. You can use the following variables, which will "
@@ -4057,17 +4069,17 @@ msgid ""
"%(untildate)s"
msgstr "此內容的答案。您可以使用以下的變數,這將會自動替換適當的值: %(name)s, %(fromdate)s, %(untildate)s"
-#: postfix_autoreply/forms.py:120
+#: postfix_autoreply/forms.py:118
msgid "I'm off"
msgstr "我不在位置上"
-#: postfix_autoreply/forms.py:129
+#: postfix_autoreply/forms.py:127
#, fuzzy
#| msgid "Default domain quota"
msgid "Default content"
msgstr "預設內容"
-#: postfix_autoreply/forms.py:131
+#: postfix_autoreply/forms.py:129
#, python-format
msgid ""
"I'm currently off. I'll answer as soon as I come back.\n"
@@ -4080,14 +4092,14 @@ msgstr ""
"Best regards,\n"
"%(name)s\n"
-#: postfix_autoreply/handlers.py:118
+#: postfix_autoreply/handlers.py:114
#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3
#, fuzzy
#| msgid "spam messages"
msgid "Auto-reply message"
msgstr "自動答覆訊息"
-#: postfix_autoreply/handlers.py:131
+#: postfix_autoreply/handlers.py:127
msgid "Auto reply"
msgstr "自動答覆"
@@ -4117,7 +4129,7 @@ msgstr "啟用/停用您的自動回覆"
msgid "Define a message to automatically send when you are off"
msgstr "當您不在位置上時定義一個自動寄送的郵件"
-#: postfix_autoreply/views.py:30
+#: postfix_autoreply/views.py:28
msgid "Auto reply message updated successfully."
msgstr "自動答覆訊息已成功更新"
@@ -4145,7 +4157,7 @@ msgstr "目標主機連接埠"
msgid "verify recipients"
msgstr "驗證收件者"
-#: sievefilters/api/v2/viewsets.py:186
+#: sievefilters/api/v2/viewsets.py:190
#, fuzzy, python-format
#| msgid "User '%s' already exists"
msgid "Filter %s already exists"
@@ -4174,24 +4186,28 @@ msgid "Use the STARTTLS extension"
msgstr ""
#: sievefilters/app_settings.py:45 sievefilters/forms.py:35
+#: webmail/app_settings.py:30
#, fuzzy
#| msgid "LDAP settings"
msgid "IMAP settings"
-msgstr "LDAP 設定"
+msgstr "IMAP 設定"
#: sievefilters/app_settings.py:52 sievefilters/forms.py:40
+#: webmail/app_settings.py:38
msgid "Address of your IMAP server"
-msgstr ""
+msgstr "您的 IMAP 伺服器位址"
#: sievefilters/app_settings.py:60 sievefilters/forms.py:46
+#: webmail/app_settings.py:47
#, fuzzy
#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgid "Use a secured connection to access IMAP server"
-msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器"
+msgstr "使用安全的連線來存取 IMAP 伺服器"
#: sievefilters/app_settings.py:68 sievefilters/forms.py:52
+#: webmail/app_settings.py:56
msgid "Listening port of your IMAP server"
-msgstr ""
+msgstr "您的 IMAP 伺服器的連接埠"
#: sievefilters/apps.py:15 sievefilters/apps.py:20
#, fuzzy
@@ -4241,15 +4257,15 @@ msgstr ""
#, fuzzy
#| msgid "Sender address"
msgid "Sender"
-msgstr "伺服器位址"
+msgstr "寄件者"
#: sievefilters/constants.py:26
msgid "Cc"
-msgstr ""
+msgstr "副本"
#: sievefilters/constants.py:29
msgid "Size"
-msgstr ""
+msgstr "大小"
#: sievefilters/constants.py:31
#, fuzzy
@@ -4297,41 +4313,37 @@ msgstr ""
msgid "Select the mode you want the editor to work in"
msgstr ""
-#: sievefilters/forms.py:73
+#: sievefilters/forms.py:73 webmail/app_settings.py:182
#, fuzzy
#| msgid "Create aliases"
msgid "Trash folder"
-msgstr "建立別名"
+msgstr "垃圾筒"
-#: sievefilters/forms.py:74
+#: sievefilters/forms.py:74 webmail/app_settings.py:184
#, fuzzy
#| msgid "rejected messages"
msgid "Folder where deleted messages go"
-msgstr "已拒絕郵件"
+msgstr "已刪除郵件的資料夾"
-#: sievefilters/forms.py:79
+#: sievefilters/forms.py:79 webmail/app_settings.py:191
#, fuzzy
#| msgid "Create aliases"
msgid "Sent folder"
-msgstr "建立別名"
+msgstr "寄件夾"
-#: sievefilters/forms.py:80
+#: sievefilters/forms.py:80 webmail/app_settings.py:193
msgid "Folder where copies of sent messages go"
-msgstr ""
+msgstr "已寄出郵件的資料夾"
-#: sievefilters/forms.py:85
+#: sievefilters/forms.py:85 webmail/app_settings.py:200
#, fuzzy
#| msgid "Create aliases"
msgid "Drafts folder"
-msgstr "建立別名"
+msgstr "草稿"
-#: sievefilters/forms.py:86
+#: sievefilters/forms.py:86 webmail/app_settings.py:201
msgid "Folder where drafts go"
-msgstr ""
-
-#: sievefilters/imaputils.py:90
-msgid "Failed to retrieve hierarchy delimiter"
-msgstr ""
+msgstr "草稿郵件的資料夾"
#: sievefilters/lib.py:52
msgid "Connection to MANAGESIEVE server failed, check your configuration"
@@ -4511,7 +4523,7 @@ msgstr "通知"
#: templates/registration/twofactor_code_verify.html:45
#: templates/registration/twofactor_code_verify.html:51
msgid "Back"
-msgstr ""
+msgstr "上一步"
#: templates/registration/twofactor_code_verify.html:49
msgid "Log using Webauthn"
@@ -4533,12 +4545,175 @@ msgstr "服務"
msgid "next hop"
msgstr "下一步"
+#: webmail/app_settings.py:17
+msgid "Maximum attachment size"
+msgstr "最大附件大小"
+
+#: webmail/app_settings.py:19
+msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
+msgstr "最大附件大小的位元組 (假如有指定可以是 KB, MB, GB)"
+
+#: webmail/app_settings.py:67
#, fuzzy
-#~ msgid "Authentication mechanism"
-#~ msgstr "身份驗證方法"
+#| msgid "LDAP settings"
+msgid "SMTP settings"
+msgstr "SMTP 設定"
+
+#: webmail/app_settings.py:75
+msgid "Address of your SMTP server"
+msgstr "您的 SMTP 伺服器位址"
+
+#: webmail/app_settings.py:82
+#, fuzzy
+#| msgid "Use a secured connection"
+msgid "Secured connection mode"
+msgstr "安全連線模式"
+
+#: webmail/app_settings.py:84
+#, fuzzy
+#| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
+msgid "Use a secured connection to access SMTP server"
+msgstr "使用安全的連線來存取 SMTP 伺服器"
+
+#: webmail/app_settings.py:93
+msgid "Listening port of your SMTP server"
+msgstr "您的 SMTP 伺服器的連接埠"
+
+#: webmail/app_settings.py:100
+#, fuzzy
+#| msgid "Authentication method"
+msgid "Authentication required"
+msgstr "必須驗證"
+
+#: webmail/app_settings.py:102
+#, fuzzy
+msgid "Server needs authentication"
+msgstr "伺服器需要驗證"
+
+#: webmail/app_settings.py:118
+msgid "Display"
+msgstr "顯示"
+
+#: webmail/app_settings.py:124
+msgid "Default message display mode"
+msgstr "預設訊息顯示模式"
+
+#: webmail/app_settings.py:126
+msgid "The default mode used when displaying a message"
+msgstr "當正在顯示訊息時會使用預設模式"
+
+#: webmail/app_settings.py:133
+msgid "Enable HTML links display"
+msgstr "啟用 HTMK 顯示連結"
+
+#: webmail/app_settings.py:136
+msgid "Enable/Disable HTML links display"
+msgstr "啟用/停用 HTMK 顯示連結"
+
+#: webmail/app_settings.py:144
+msgid "Number of displayed emails per page"
+msgstr "每一頁顯示郵件數量"
+
+#: webmail/app_settings.py:147
+msgid "Sets the maximum number of messages displayed in a page"
+msgstr "設定最大每一頁顯示郵件數量"
+
+#: webmail/app_settings.py:154
+msgid "Listing refresh rate"
+msgstr "列出重整頻率"
+
+#: webmail/app_settings.py:156
+msgid "Automatic listing refresh rate (in secconds)"
+msgstr ""
+
+#: webmail/app_settings.py:163
+msgid "Folder container's width"
+msgstr "資料夾寬度"
+
+#: webmail/app_settings.py:165
+msgid "The width of the folder list container"
+msgstr "資料夾列表寬度"
+
+#: webmail/app_settings.py:176
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Folders"
+msgstr "資料夾"
+
+#: webmail/app_settings.py:207
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Junk folder"
+msgstr "垃圾信資料夾"
+
+#: webmail/app_settings.py:209
+#, fuzzy
+#| msgid "rejected messages"
+msgid "Folder where junk messages should go"
+msgstr "垃圾郵件的資料夾"
+
+#: webmail/app_settings.py:220
+#, fuzzy
+#| msgid "sent messages"
+msgid "Composing messages"
+msgstr "編寫郵件"
+
+#: webmail/app_settings.py:226
+#, fuzzy
+#| msgid "Default subject"
+msgid "Default editor"
+msgstr "預設編輯器"
+
+#: webmail/app_settings.py:228
+msgid "The default editor to use when composing a message"
+msgstr "當編寫郵件時會使用預設編輯器"
+
+#: webmail/app_settings.py:235
+msgid "Signature text"
+msgstr "簽名文字"
+
+#: webmail/app_settings.py:237
+msgid "User defined email signature"
+msgstr "使用者定義郵件簽名"
+
+#: webmail/lib/attachments.py:113
+#, fuzzy
+msgid "Failed to remove attachment: "
+msgstr "移除附件失敗:"
+
+#: webmail/lib/imaputils.py:222
+msgid "Failed to retrieve hierarchy delimiter"
+msgstr "無法檢查層次分隔"
+
+#: webmail/lib/imaputils.py:472
+msgid "Inbox"
+msgstr "收件夾"
+
+#: webmail/lib/imaputils.py:476
+#, fuzzy
+#| msgid "Create aliases"
+msgid "Drafts"
+msgstr "草稿"
+
+#: webmail/lib/imaputils.py:481
+msgid "Junk"
+msgstr "垃圾信"
+
+#: webmail/lib/imaputils.py:486
+msgid "Sent"
+msgstr "寄件夾"
+
+#: webmail/lib/imaputils.py:491
+msgid "Trash"
+msgstr "垃圾筒"
+
+#: webmail/viewsets.py:343
+#, python-format
+msgid "Attachment is too big (limit: %s)"
+msgstr "附件太大 (限制: %s)"
#, fuzzy
-#~ msgid "Prefered authentication mechanism"
+#~ msgid "Authentication mechanism"
#~ msgstr "身份驗證方法"
#, fuzzy
@@ -4589,10 +4764,6 @@ msgstr "下一步"
#~ msgid "Move this filter down"
#~ msgstr "移除這個權限"
-#, fuzzy
-#~ msgid "Failed to retrieve filters set"
-#~ msgstr "無法收回信箱位置 (%s)"
-
#, fuzzy
#~ msgid "Filter created"
#~ msgstr "別名已建立"
diff --git a/test_project/test_project/settings.py b/test_project/test_project/settings.py
index dd8e6d3c7..6194046eb 100644
--- a/test_project/test_project/settings.py
+++ b/test_project/test_project/settings.py
@@ -428,6 +428,6 @@ DISABLE_DASHBOARD_EXTERNAL_QUERIES = False
LDAP_SERVER_PORT = os.environ.get("LDAP_SERVER_PORT", 3389)
-WEBMAIL_DEV_MODE = True
+WEBMAIL_DEV_MODE = os.environ.get("WEBMAIL_DEV_MODE", "off") == "on"
WEBMAIL_DEV_USERNAME = os.environ.get("WEBMAIL_DEV_USERNAME", "")
WEBMAIL_DEV_PASSWORD = os.environ.get("WEBMAIL_DEV_PASSWORD", "")