From d038bf2b02972784b3073ff04d7f3c6ccaf0d95d Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 4 Feb 2026 09:32:08 +0100 Subject: [PATCH] Updated translation files --- frontend/src/locale/br/app.po | 308 +++-- frontend/src/locale/cs/app.po | 296 +++-- frontend/src/locale/de/app.po | 316 ++++-- frontend/src/locale/el/app.po | 296 +++-- frontend/src/locale/en/app.po | 296 +++-- frontend/src/locale/es/app.po | 308 +++-- frontend/src/locale/fi/app.po | 313 +++-- frontend/src/locale/fr/app.po | 412 ++++--- frontend/src/locale/it/app.po | 308 +++-- frontend/src/locale/ja/app.po | 296 +++-- frontend/src/locale/messages.pot | 296 +++-- frontend/src/locale/nl/app.po | 296 +++-- frontend/src/locale/pl/app.po | 296 +++-- frontend/src/locale/pt_BR/app.po | 316 ++++-- frontend/src/locale/ru/app.po | 316 ++++-- frontend/src/locale/sv/app.po | 316 ++++-- frontend/src/locale/tr/app.po | 300 +++-- frontend/src/locale/zh/app.po | 296 +++-- modoboa/locale/br/LC_MESSAGES/django.po | 574 +++++----- modoboa/locale/cs/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/cs_CZ/LC_MESSAGES/django.po | 578 +++++----- modoboa/locale/de/LC_MESSAGES/django.po | 566 +++++----- modoboa/locale/de_DE/LC_MESSAGES/django.po | 578 +++++----- modoboa/locale/el_GR/LC_MESSAGES/django.po | 586 +++++----- modoboa/locale/en/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/es/LC_MESSAGES/django.po | 584 +++++----- modoboa/locale/es_MX/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/fi/LC_MESSAGES/django.po | 570 +++++----- modoboa/locale/fr/LC_MESSAGES/django.po | 1192 ++++++++++++-------- modoboa/locale/hu/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/it/LC_MESSAGES/django.po | 578 +++++----- modoboa/locale/ja_JP/LC_MESSAGES/django.po | 972 +++++++++------- modoboa/locale/ka/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/nl_NL/LC_MESSAGES/django.po | 570 +++++----- modoboa/locale/no/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/pl_PL/LC_MESSAGES/django.po | 566 +++++----- modoboa/locale/pt_BR/LC_MESSAGES/django.po | 568 +++++----- modoboa/locale/pt_PT/LC_MESSAGES/django.po | 586 +++++----- modoboa/locale/ro_RO/LC_MESSAGES/django.po | 570 +++++----- modoboa/locale/ru/LC_MESSAGES/django.po | 1058 ++++++++++------- modoboa/locale/si/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/sk/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/sk_SK/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/sl_SI/LC_MESSAGES/django.po | 565 +++++----- modoboa/locale/sv/LC_MESSAGES/django.po | 566 +++++----- modoboa/locale/tr/LC_MESSAGES/django.po | 573 +++++----- modoboa/locale/tr_TR/LC_MESSAGES/django.po | 568 +++++----- modoboa/locale/uk/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/zh/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/zh_CN/LC_MESSAGES/django.po | 563 ++++----- modoboa/locale/zh_TW/LC_MESSAGES/django.po | 568 +++++----- 51 files changed, 14445 insertions(+), 11428 deletions(-) diff --git a/frontend/src/locale/br/app.po b/frontend/src/locale/br/app.po index 5702df85f..5d933e036 100644 --- a/frontend/src/locale/br/app.po +++ b/frontend/src/locale/br/app.po @@ -62,8 +62,8 @@ msgstr "Kont krouet" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -113,7 +113,7 @@ msgstr "Enaouet" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -133,7 +133,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -233,7 +233,7 @@ msgstr "Anv implier" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -264,10 +264,10 @@ msgstr "Kont nevez" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Oberioù" @@ -286,7 +286,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -297,7 +297,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -458,6 +458,7 @@ msgstr "Hollek" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 #, fuzzy msgid "First name" msgstr "Anv bihan" @@ -466,6 +467,7 @@ msgstr "Anv bihan" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Anv familh" @@ -557,9 +559,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Serriñ" @@ -620,7 +624,7 @@ msgstr "O vezañ anavezet" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Klask" @@ -668,13 +672,14 @@ msgstr "Implij" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -901,7 +906,7 @@ msgstr "Neket ganet" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -993,7 +998,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Ouzhpennañ" @@ -1277,10 +1282,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1473,7 +1478,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Kont nevez" @@ -1513,7 +1518,7 @@ msgstr "Kont krouet" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1912,7 +1917,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1924,17 +1929,17 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 #, fuzzy msgid "Provider" msgstr "Domani krouet" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 #, fuzzy msgid "Old account" msgstr "Kont nevez" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 #, fuzzy msgid "Migration deleted" msgstr "Deiziad krouidigezh" @@ -1954,14 +1959,14 @@ msgid "Associated domain" msgstr "Domanioù meret" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 #, fuzzy msgid "Associated domains" msgstr "Domanioù meret" @@ -1986,7 +1991,7 @@ msgstr "Domanioù meret" msgid "No associated domains" msgstr "Domanioù meret" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 #, fuzzy msgid "Provider updated" msgstr "Profil hizivaet" @@ -2026,8 +2031,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -2079,7 +2084,7 @@ msgid "Edit calendar" msgstr "Alias nevez" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 #, fuzzy msgid "New calendar" msgstr "Alias nevez" @@ -2103,7 +2108,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2117,21 +2122,22 @@ msgid "Edit event" msgstr "Kont nevez" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 #, fuzzy msgid "New event" msgstr "Kont nevez" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 #, fuzzy msgid "Event updated" msgstr "Kont hizivaet" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Kont hizivaet" @@ -2150,7 +2156,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 #, fuzzy msgid "Send" msgstr "Kont nevez" @@ -2189,13 +2195,12 @@ msgid "Category deleted" msgstr "Deiziad krouidigezh" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Rummadoù" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 #, fuzzy msgid "Display name" msgstr "Diskouez an anv" @@ -2252,23 +2257,35 @@ msgstr "Aozañ an darempred" msgid "New contact" msgstr "Darempred nevez" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Pellgomz" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Chomlec'h postel" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Niverenn pellgomz" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Darempredoù" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2363,7 +2380,7 @@ msgstr "" msgid "Notifications" msgstr "Deiziad aozañ diwezhañ" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Digevreañ" @@ -2437,7 +2454,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Emporzhiañ" @@ -2477,14 +2494,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2501,7 +2524,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2509,28 +2532,41 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 #, fuzzy msgid "Provide one or more addresses" msgstr "Chomlec'hioù ar c'haser" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "Postel" + +#: src/components/webmail/ComposeEmailForm.vue:301 #, fuzzy msgid "Email sent" msgstr "Postel" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 #, fuzzy msgid "Add to contacts" @@ -2545,60 +2581,100 @@ msgstr "Aozañ an darempred" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 #, fuzzy msgid "Empty mailbox" msgstr "Gant ur voest-posteloù" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Kont krouet" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 #, fuzzy msgid "Message(s) deleted" msgstr "Implij" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 #, fuzzy msgid "Message(s) flagged" msgstr "Implij" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "Emporzhiañ domanioù" msgstr[1] "Emporzhiañ domanioù" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Deiziad krouidigezh" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 #, fuzzy msgid "Parent mailbox" @@ -2624,7 +2700,7 @@ msgstr "Boest-posteloù" msgid "Mailbox created" msgstr "Domani krouet" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2641,12 +2717,12 @@ msgstr "Implijout un dalvoudegezh domani dre-ziouer" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Arventennoù" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2693,7 +2769,7 @@ msgid "Migrations" msgstr "Kadarnadur" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Titouroù" @@ -2701,35 +2777,35 @@ msgstr "Titouroù" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 #, fuzzy msgid "Create a new mailbox" msgstr "Gant ur voest-posteloù" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 #, fuzzy msgid "Edit this mailbox" msgstr "Gant ur voest-posteloù" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 #, fuzzy msgid "Delete this mailbox" msgstr "Gant ur voest-posteloù" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 #, fuzzy msgid "Mailbox compressed" msgstr "Boest-posteloù" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 #, fuzzy msgid "Mailbox deleted" msgstr "Deiziad krouidigezh" @@ -2746,24 +2822,28 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 #, fuzzy msgid "Field is required" msgstr "Ar vaezienn-mañ a zo rekiset" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Disklotadurioù gerioù-tremen" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2883,7 +2963,7 @@ msgstr "Arventennoù" msgid "Two-factor auth" msgstr "O vezañ anavezet" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Treuzkas" @@ -3047,28 +3127,32 @@ msgstr "Stumm staliet" msgid "Message history" msgstr "Implij" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 #, fuzzy msgid "Calendar deleted" msgstr "Deiziad krouidigezh" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Darempredoù" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 #, fuzzy msgid "Add a category" msgstr "Oberioù" @@ -3108,7 +3192,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 #, fuzzy msgid "Message deleted" msgstr "Implij" @@ -3121,39 +3205,44 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 #, fuzzy msgid "Enable links" msgstr "Enaouet" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 #, fuzzy msgid "Disable links" msgstr "Lazhet" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 #, fuzzy msgid "Display source" msgstr "Diskouez an anv" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Implij" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Implij" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" @@ -3162,6 +3251,9 @@ msgstr "" msgid "Webmail" msgstr "Postel" +#~ msgid "Phone" +#~ msgstr "Pellgomz" + #, fuzzy #~ msgid "inactive" #~ msgstr "Oberioù" diff --git a/frontend/src/locale/cs/app.po b/frontend/src/locale/cs/app.po index 682d9640c..90231793d 100644 --- a/frontend/src/locale/cs/app.po +++ b/frontend/src/locale/cs/app.po @@ -61,8 +61,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -111,7 +111,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -131,7 +131,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -229,7 +229,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -259,10 +259,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -281,7 +281,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -292,7 +292,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -438,6 +438,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -445,6 +446,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -533,9 +535,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -593,7 +597,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -641,13 +645,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -863,7 +868,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -954,7 +959,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1234,10 +1239,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1416,7 +1421,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1453,7 +1458,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1823,7 +1828,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1835,15 +1840,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1860,14 +1865,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1887,7 +1892,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1925,8 +1930,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1974,7 +1979,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1995,7 +2000,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2008,19 +2013,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2037,7 +2043,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2071,13 +2077,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2129,23 +2134,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2233,7 +2247,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2307,7 +2321,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2344,14 +2358,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2368,7 +2388,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2376,26 +2396,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2408,57 +2440,95 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" msgstr[2] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2479,7 +2549,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2495,12 +2565,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2545,7 +2615,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2553,31 +2623,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2593,23 +2663,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2718,7 +2792,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2872,27 +2946,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2928,7 +3006,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2940,35 +3018,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/de/app.po b/frontend/src/locale/de/app.po index 231a7c841..c3041f156 100644 --- a/frontend/src/locale/de/app.po +++ b/frontend/src/locale/de/app.po @@ -68,8 +68,8 @@ msgstr "API-Token erstellt" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "Warnung" @@ -118,7 +118,7 @@ msgstr "Aktiviert" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "Betreff" @@ -141,7 +141,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "Von" @@ -242,7 +242,7 @@ msgstr "Name" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -272,10 +272,10 @@ msgstr "Anzahl benutzt" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Aktionen" @@ -294,7 +294,7 @@ msgstr "Wollen Sie dieses WebAuthn Gerät wirklich löschen?" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Nein" @@ -305,7 +305,7 @@ msgstr "Nein" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Ja" @@ -451,6 +451,7 @@ msgstr "Allgemeine Einstellungen" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "Vorname" @@ -458,6 +459,7 @@ msgstr "Vorname" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Nachname" @@ -550,9 +552,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Schließen" @@ -618,7 +622,7 @@ msgstr "Authentifikator registrieren" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Suchen" @@ -666,13 +670,14 @@ msgstr "Verwendung" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "Löschen" @@ -892,7 +897,7 @@ msgstr "Nicht generiert" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -989,7 +994,7 @@ msgstr "Eine Domäne wählen" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Hinzufügen" @@ -1271,10 +1276,10 @@ msgstr "Domain gelöscht" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "Bearbeiten" @@ -1469,7 +1474,7 @@ msgid "Create standard aliases for the domain." msgstr "Standardaliase für diese Domäne erstellen." #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Neues Konto" @@ -1507,7 +1512,7 @@ msgstr "Konto gelöscht" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1899,7 +1904,7 @@ msgstr "IMAP Port" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "Gesichert" @@ -1911,15 +1916,15 @@ msgstr "Ist die IMAP Verbindung mit SSL/TLS oder StartTLS gesichert?" msgid "Check connection:" msgstr "Verbindung überprüfen:" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "Provider" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "Altes Konto" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "Migration gelöscht" @@ -1936,14 +1941,14 @@ msgid "Associated domain" msgstr "Zugehörige Domain" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "Port" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "Verknüpfte Domänen" @@ -1963,7 +1968,7 @@ msgstr "Anzahl der zugehörigen Domains:" msgid "No associated domains" msgstr "Keine zugehörigen Domains" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "Provider aktualisiert" @@ -2002,8 +2007,8 @@ msgstr "Warteschlangen ID" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "Bis" @@ -2055,7 +2060,7 @@ msgid "Edit calendar" msgstr "Kalender bearbeiten" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "Neuer Kalender" @@ -2076,7 +2081,7 @@ msgid "Title" msgstr "Titel" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "Kalender" @@ -2089,19 +2094,20 @@ msgid "Edit event" msgstr "Ereignis bearbeiten" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "Neues Ereignis" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "Termin hinzugefügt" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "Ereignis aktualisiert" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "Ereignis gelöscht" @@ -2120,7 +2126,7 @@ msgid "Select an ICS file" msgstr "ICS Datei wählen" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "Senden" @@ -2155,13 +2161,12 @@ msgid "Category deleted" msgstr "Kalender gelöscht" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Kategorien" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "Anzeigename" @@ -2213,23 +2218,36 @@ msgstr "Kontakt bearbeiten" msgid "New contact" msgstr "Neuer Kontakt" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "Adressbuchinfos anzeigen" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "Kontakte mit dem Adressbuch synchronisieren" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" -msgstr "E-Mail" +#: src/components/contacts/ContactList.vue:48 +#, fuzzy +msgid "Synchronize" +msgstr "Synchronisierung wurde gestartet" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Telefon" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "Adressbuchinfos anzeigen" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "E-Mail Adresse" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Telefonnummer" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Administrator entfernt" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "Synchronisierung wurde gestartet" @@ -2323,7 +2341,7 @@ msgstr "" msgid "Notifications" msgstr "Datum der letzten Änderung" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Logout" @@ -2403,7 +2421,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "Doppelte Objekte nicht als Fehler behandeln" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Import" @@ -2440,14 +2458,20 @@ msgid "Relative time ranges" msgstr "Relative Zeiträume" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Tag" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Woche" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Monat" @@ -2464,7 +2488,7 @@ msgid "no" msgstr "nein" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "Anhänge" @@ -2472,26 +2496,39 @@ msgstr "Anhänge" msgid "Attach" msgstr "Anhängen" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 msgid "Provide one or more addresses" msgstr "Eine oder mehrere Adressen eingeben" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "Cc" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "Bcc" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "E-Mail gesendet" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "E-Mail gesendet" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "Zu Kontakten hinzufügen" @@ -2504,57 +2541,98 @@ msgstr "Kontakt aktualisieren" msgid "Contact added to address book" msgstr "Kontakt zum Adressbuch hinzugefügt" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "Als gelesen markieren" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "Als ungelesen markieren" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "Als gefolgt markieren" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "Als nicht gefolgt markieren" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "Postfach leeren" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "an" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "Noch keine Nachricht in diesem Postfach" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +#, fuzzy +msgid "Sending failure" +msgstr "Senden verboten" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Konto gelöscht" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "Nachricht(en) gelöscht" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "Als Junk markierte Nachricht(en)" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "Nicht als Junk markierte Nachricht(en)" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "Nachricht(en) markiert" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "Wichtige Nachrichten" msgstr[1] "Wichtige Nachrichten" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Wählen Sie eine Datei aus" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "Übergeordnetes Postfach" @@ -2575,7 +2653,7 @@ msgstr "Postfach umbenannt" msgid "Mailbox created" msgstr "Postfach erstellt" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2592,12 +2670,12 @@ msgstr "Standardwert der Domain verwenden" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Einstellungen" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "Filter" @@ -2642,7 +2720,7 @@ msgid "Migrations" msgstr "Migrationen" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Information" @@ -2650,31 +2728,31 @@ msgstr "Information" msgid "Compose" msgstr "Komponieren" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "Neues Postfach erstellen" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "Dieses Postfach bearbeiten" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "Dieses Postfach löschen" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "Dieses Postfach komprimieren" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "Postfach komprimiert" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "Dieses Postfach löschen?" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "Postfach gelöscht" @@ -2690,23 +2768,28 @@ msgstr "CSV scheint schlecht formatiert zu sein" msgid "Not a valid email" msgstr "Keine gültige E-Mail" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +#, fuzzy +msgid "Not a valid time" +msgstr "Keine gültige E-Mail" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "Feld ist erforderlich" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "Mindestlänge beträgt %{ length }" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "Muss ein numerischer Wert oder leer sein" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Passwörter stimmen nicht überein" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "Ungültige Portnummer" @@ -2818,7 +2901,7 @@ msgstr "Kontoeinstellungen" msgid "Two-factor auth" msgstr "2 Faktor Authentifizierung" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Weiterleiten" @@ -2986,27 +3069,31 @@ msgstr "Lezte Version" msgid "Message history" msgstr "Nachrichtenverlauf" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "Meine Kalender" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "Zugriffsregeln" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "Wollen Sie den Kalender wirklich löschen?" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "Kalender gelöscht" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Kontakte" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "Kategorie hinzufügen" @@ -3045,7 +3132,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "Nachricht gelöscht" @@ -3057,36 +3144,41 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "Antworten" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "Allen antworten" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "Links aktivieren" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "Links deaktivieren" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "Quelle anzeigen" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Nachricht gelöscht" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Nachrichtenverlauf" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "Als Junk markierte Nachricht" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "Nachricht als, kein Junk markiert" @@ -3094,6 +3186,12 @@ msgstr "Nachricht als, kein Junk markiert" msgid "Webmail" msgstr "Webmail" +#~ msgid "E-mail" +#~ msgstr "E-Mail" + +#~ msgid "Phone" +#~ msgstr "Telefon" + #~ msgid "active" #~ msgstr "aktiv" diff --git a/frontend/src/locale/el/app.po b/frontend/src/locale/el/app.po index ad3156778..36323817b 100644 --- a/frontend/src/locale/el/app.po +++ b/frontend/src/locale/el/app.po @@ -61,8 +61,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -111,7 +111,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -131,7 +131,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -229,7 +229,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -259,10 +259,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -281,7 +281,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -292,7 +292,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -438,6 +438,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -445,6 +446,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -533,9 +535,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -593,7 +597,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -641,13 +645,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -863,7 +868,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -954,7 +959,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1234,10 +1239,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1416,7 +1421,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1453,7 +1458,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1823,7 +1828,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1835,15 +1840,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1860,14 +1865,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1887,7 +1892,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1924,8 +1929,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1973,7 +1978,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1994,7 +1999,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2007,19 +2012,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2036,7 +2042,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2069,13 +2075,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2127,23 +2132,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2231,7 +2245,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2305,7 +2319,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2342,14 +2356,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2366,7 +2386,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2374,26 +2394,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2406,56 +2438,94 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2476,7 +2546,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2492,12 +2562,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2542,7 +2612,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2550,31 +2620,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2590,23 +2660,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2715,7 +2789,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2869,27 +2943,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2925,7 +3003,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2937,35 +3015,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/en/app.po b/frontend/src/locale/en/app.po index dcce899ca..9018b4ef9 100644 --- a/frontend/src/locale/en/app.po +++ b/frontend/src/locale/en/app.po @@ -53,8 +53,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -103,7 +103,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -123,7 +123,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -221,7 +221,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -251,10 +251,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -273,7 +273,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -284,7 +284,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -430,6 +430,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -437,6 +438,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -525,9 +527,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -585,7 +589,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -633,13 +637,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -855,7 +860,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -946,7 +951,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1226,10 +1231,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1408,7 +1413,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1445,7 +1450,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1815,7 +1820,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1827,15 +1832,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1852,14 +1857,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1879,7 +1884,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1916,8 +1921,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1965,7 +1970,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1986,7 +1991,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -1999,19 +2004,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2028,7 +2034,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2061,13 +2067,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2119,23 +2124,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2223,7 +2237,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2297,7 +2311,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2334,14 +2348,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2358,7 +2378,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2366,26 +2386,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2398,56 +2430,94 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2468,7 +2538,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2484,12 +2554,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2534,7 +2604,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2542,31 +2612,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2582,23 +2652,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2707,7 +2781,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2861,27 +2935,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2917,7 +2995,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2929,35 +3007,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/es/app.po b/frontend/src/locale/es/app.po index b324cc8cf..dec2a1231 100644 --- a/frontend/src/locale/es/app.po +++ b/frontend/src/locale/es/app.po @@ -63,8 +63,8 @@ msgstr "Cuenta creada" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -114,7 +114,7 @@ msgstr "Activado" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -134,7 +134,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -234,7 +234,7 @@ msgstr "Nombre de usuario" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -265,10 +265,10 @@ msgstr "Nueva cuenta" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Acciones" @@ -287,7 +287,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -298,7 +298,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -457,6 +457,7 @@ msgstr "General" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 #, fuzzy msgid "First name" msgstr "Nombre" @@ -465,6 +466,7 @@ msgstr "Nombre" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Apellidos" @@ -556,9 +558,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Cerrar" @@ -619,7 +623,7 @@ msgstr "Autenticación" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Buscar" @@ -667,13 +671,14 @@ msgstr "Uso" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -898,7 +903,7 @@ msgstr "Sin definir" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -990,7 +995,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Agregar" @@ -1273,10 +1278,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1467,7 +1472,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Nueva cuenta" @@ -1507,7 +1512,7 @@ msgstr "Cuenta creada" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1905,7 +1910,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1917,17 +1922,17 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 #, fuzzy msgid "Provider" msgstr "Dominio creado" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 #, fuzzy msgid "Old account" msgstr "Nueva cuenta" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 #, fuzzy msgid "Migration deleted" msgstr "Fecha de creación" @@ -1947,14 +1952,14 @@ msgid "Associated domain" msgstr "Dominios administrados" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 #, fuzzy msgid "Associated domains" msgstr "Dominios administrados" @@ -1979,7 +1984,7 @@ msgstr "Dominios administrados" msgid "No associated domains" msgstr "Dominios administrados" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 #, fuzzy msgid "Provider updated" msgstr "Perfil actualizado" @@ -2019,8 +2024,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -2073,7 +2078,7 @@ msgid "Edit calendar" msgstr "Nuevo alias" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 #, fuzzy msgid "New calendar" msgstr "Nuevo alias" @@ -2097,7 +2102,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2111,21 +2116,22 @@ msgid "Edit event" msgstr "Nueva cuenta" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 #, fuzzy msgid "New event" msgstr "Nueva cuenta" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 #, fuzzy msgid "Event updated" msgstr "Cuenta actualizada" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Cuenta actualizada" @@ -2144,7 +2150,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 #, fuzzy msgid "Send" msgstr "Nueva cuenta" @@ -2183,13 +2189,12 @@ msgid "Category deleted" msgstr "Fecha de creación" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Categorías" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 #, fuzzy msgid "Display name" msgstr "Nombre a mostrar" @@ -2246,23 +2251,35 @@ msgstr "Editar contacto" msgid "New contact" msgstr "Nuevo contacto" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Teléfono" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Dirección de email" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Número de teléfono" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Contactos" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2357,7 +2374,7 @@ msgstr "" msgid "Notifications" msgstr "Última fecha de modificación" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Salir" @@ -2431,7 +2448,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Importar" @@ -2470,14 +2487,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Día" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Semana" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Mes" @@ -2494,7 +2517,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2502,28 +2525,41 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 #, fuzzy msgid "Provide one or more addresses" msgstr "Direcciónes de remitente" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "Correo-e" + +#: src/components/webmail/ComposeEmailForm.vue:301 #, fuzzy msgid "Email sent" msgstr "Correo-e" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 #, fuzzy msgid "Add to contacts" @@ -2538,60 +2574,100 @@ msgstr "Editar contacto" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 #, fuzzy msgid "Empty mailbox" msgstr "Con una mailbox" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Cuenta creada" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 #, fuzzy msgid "Message(s) deleted" msgstr "Uso" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 #, fuzzy msgid "Message(s) flagged" msgstr "Uso" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "Importar dominios" msgstr[1] "Importar dominios" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Fecha de creación" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 #, fuzzy msgid "Parent mailbox" @@ -2617,7 +2693,7 @@ msgstr "Mailboxes" msgid "Mailbox created" msgstr "Dominio creado" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2634,12 +2710,12 @@ msgstr "Usar el valor por defecto del dominio" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Configuración" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2686,7 +2762,7 @@ msgid "Migrations" msgstr "Confirmación" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Información" @@ -2694,35 +2770,35 @@ msgstr "Información" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 #, fuzzy msgid "Create a new mailbox" msgstr "Con una mailbox" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 #, fuzzy msgid "Edit this mailbox" msgstr "Con una mailbox" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 #, fuzzy msgid "Delete this mailbox" msgstr "Con una mailbox" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 #, fuzzy msgid "Mailbox compressed" msgstr "Mailboxes" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 #, fuzzy msgid "Mailbox deleted" msgstr "Fecha de creación" @@ -2739,23 +2815,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Las contraseñas no coinciden" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2875,7 +2955,7 @@ msgstr "Configuración" msgid "Two-factor auth" msgstr "Autenticación" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Siguiente" @@ -3039,28 +3119,32 @@ msgstr "Versión instalada" msgid "Message history" msgstr "Uso" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 #, fuzzy msgid "Calendar deleted" msgstr "Fecha de creación" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Contactos" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 #, fuzzy msgid "Add a category" msgstr "Acciones" @@ -3100,7 +3184,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 #, fuzzy msgid "Message deleted" msgstr "Uso" @@ -3113,39 +3197,44 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 #, fuzzy msgid "Enable links" msgstr "Activado" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 #, fuzzy msgid "Disable links" msgstr "Deshabilitado" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 #, fuzzy msgid "Display source" msgstr "Nombre a mostrar" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Uso" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Uso" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" @@ -3154,6 +3243,9 @@ msgstr "" msgid "Webmail" msgstr "Correo-e" +#~ msgid "Phone" +#~ msgstr "Teléfono" + #, fuzzy #~ msgid "inactive" #~ msgstr "Acciones" diff --git a/frontend/src/locale/fi/app.po b/frontend/src/locale/fi/app.po index 18898a187..c0ae90023 100644 --- a/frontend/src/locale/fi/app.po +++ b/frontend/src/locale/fi/app.po @@ -59,8 +59,8 @@ msgstr "API-tunniste luotu" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "Varoitus" @@ -109,7 +109,7 @@ msgstr "Käytössä" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -129,7 +129,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "Lähde" @@ -232,7 +232,7 @@ msgstr "Käyttäjätunnus" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -264,10 +264,10 @@ msgstr "Uusi tili" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Toiminnot" @@ -287,7 +287,7 @@ msgstr "Haluatko todella poistaa aliaksen %{ alias }?" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Ei" @@ -298,7 +298,7 @@ msgstr "Ei" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Kyllä" @@ -459,6 +459,7 @@ msgstr "Yleiset asetukset" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "Etunimi" @@ -466,6 +467,7 @@ msgstr "Etunimi" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Sukunimi" @@ -560,9 +562,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Sulje" @@ -629,7 +633,7 @@ msgstr "Kaksivaiheinent tunnistus" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Hae" @@ -679,13 +683,14 @@ msgstr "Viesti" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "Poista" @@ -917,7 +922,7 @@ msgstr "Ei luotu" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -1014,7 +1019,7 @@ msgstr "Valitse verkkotunnus" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Lisää" @@ -1304,10 +1309,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "Muokkaa" @@ -1504,7 +1509,7 @@ msgid "Create standard aliases for the domain." msgstr "Luo verkkotunnuksen tavanomaiset aliakset." #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Uusi tili" @@ -1543,7 +1548,7 @@ msgstr "Tili luotu" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1955,7 +1960,7 @@ msgstr "Automaattinen asetusten määrittäminen" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 #, fuzzy msgid "Secured" msgstr "Turvallisuus" @@ -1968,17 +1973,17 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 #, fuzzy msgid "Provider" msgstr "Etunimi" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 #, fuzzy msgid "Old account" msgstr "Muokkaa tiliä" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 #, fuzzy msgid "Migration deleted" msgstr "Luontipäivä" @@ -1998,14 +2003,14 @@ msgid "Associated domain" msgstr "Hallinnoidut verkkotunnukset" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 #, fuzzy msgid "Associated domains" msgstr "Hallinnoidut verkkotunnukset" @@ -2030,7 +2035,7 @@ msgstr "Hallinnoidut verkkotunnukset" msgid "No associated domains" msgstr "Hallinnoidut verkkotunnukset" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 #, fuzzy msgid "Provider updated" msgstr "Profiili päivitetty" @@ -2070,8 +2075,8 @@ msgstr "Jonon ID" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "Vastaanottaja" @@ -2122,7 +2127,7 @@ msgid "Edit calendar" msgstr "Muokkaa aliasta" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 #, fuzzy msgid "New calendar" msgstr "Uusi alias" @@ -2146,7 +2151,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2160,21 +2165,22 @@ msgid "Edit event" msgstr "Muokkaa tiliä" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 #, fuzzy msgid "New event" msgstr "Uusi tili" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 #, fuzzy msgid "Event updated" msgstr "Tili päivitetty" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Tili päivitetty" @@ -2194,7 +2200,7 @@ msgid "Select an ICS file" msgstr "Valitse tiedosto" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 #, fuzzy msgid "Send" msgstr "Valitse tili" @@ -2232,13 +2238,12 @@ msgid "Category deleted" msgstr "Verkkotunnuksen alias poistettu" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 #, fuzzy msgid "Display name" msgstr "Etunimi" @@ -2296,24 +2301,35 @@ msgstr "Muokkaa tiliä" msgid "New contact" msgstr "Uusi tili" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -#, fuzzy -msgid "E-mail" -msgstr "Sähköposti" - -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "" + +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Sähköpostiosoite" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Puhelinnumero" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Järjestelmänvalvoja poistettu" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2410,7 +2426,7 @@ msgstr "" msgid "Notifications" msgstr "Tunniste" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Kirjaudu ulos" @@ -2486,7 +2502,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "Älä käsittele päällekkäisiä objekteja virheinä" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Tuonti" @@ -2525,14 +2541,20 @@ msgid "Relative time ranges" msgstr "Suhteelliset aikavälialueet" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Päivä" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Viikko" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Kuukausi" @@ -2549,7 +2571,7 @@ msgid "no" msgstr "ei" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2557,28 +2579,41 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 #, fuzzy msgid "Provide one or more addresses" msgstr "Lähettäjän osoitteet" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "Sähköposti" + +#: src/components/webmail/ComposeEmailForm.vue:301 #, fuzzy msgid "Email sent" msgstr "Sähköposti" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 #, fuzzy msgid "Add to contacts" @@ -2593,60 +2628,101 @@ msgstr "Muokkaa tiliä" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 #, fuzzy msgid "Empty mailbox" msgstr "Postilaatikolla" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +#, fuzzy +msgid "Sending failure" +msgstr "Lähetysraja" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Tili luotu" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 #, fuzzy msgid "Message(s) deleted" msgstr "Viestien historia" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 #, fuzzy msgid "Message(s) flagged" msgstr "Viestien historia" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "Tuo verkkotunnuksia" msgstr[1] "Tuo verkkotunnuksia" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Valitse tiedosto" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 #, fuzzy msgid "Parent mailbox" @@ -2672,7 +2748,7 @@ msgstr "Postilaatikot" msgid "Mailbox created" msgstr "Verkkotunnus luotu" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2689,12 +2765,12 @@ msgstr "Verkkotunnus päivitetty" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Asetukset" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2742,7 +2818,7 @@ msgid "Migrations" msgstr "Rajoitukset" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 #, fuzzy msgid "Information" msgstr "Tiedot" @@ -2751,37 +2827,37 @@ msgstr "Tiedot" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 #, fuzzy msgid "Create a new mailbox" msgstr "Postilaatikolla" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 #, fuzzy msgid "Edit this mailbox" msgstr "Postilaatikolla" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 #, fuzzy msgid "Delete this mailbox" msgstr "Postilaatikolla" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 #, fuzzy msgid "Compress this mailbox" msgstr "Postilaatikolla" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 #, fuzzy msgid "Mailbox compressed" msgstr "Postilaatikot" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 #, fuzzy msgid "Delete this mailbox?" msgstr "Postilaatikolla" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 #, fuzzy msgid "Mailbox deleted" msgstr "Luontipäivä" @@ -2798,24 +2874,28 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 #, fuzzy msgid "Field is required" msgstr "Tämä kenttä on pakollinen" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Salasanat eivät täsmää" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 #, fuzzy msgid "Invalid port number" msgstr "Virheellinen salasana" @@ -2939,7 +3019,7 @@ msgstr "Päivitä asetukset" msgid "Two-factor auth" msgstr "Kaksivaiheinent tunnistus" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Välitä" @@ -3101,29 +3181,33 @@ msgstr "Asennettu versio" msgid "Message history" msgstr "Viestien historia" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 #, fuzzy msgid "Do you really want to delete this calendar?" msgstr "Haluatko todella poistaa aliaksen %{ alias }?" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 #, fuzzy msgid "Calendar deleted" msgstr "Verkkotunnuksen alias poistettu" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 #, fuzzy msgid "Add a category" msgstr "Toiminnot" @@ -3163,7 +3247,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 #, fuzzy msgid "Message deleted" msgstr "Viestien historia" @@ -3176,39 +3260,44 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 #, fuzzy msgid "Enable links" msgstr "Käytössä" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 #, fuzzy msgid "Disable links" msgstr "Pois käytöstä" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 #, fuzzy msgid "Display source" msgstr "Etunimi" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Viestien historia" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Viestien historia" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" @@ -3217,6 +3306,10 @@ msgstr "" msgid "Webmail" msgstr "Sähköposti" +#, fuzzy +#~ msgid "E-mail" +#~ msgstr "Sähköposti" + #, fuzzy #~ msgid "inactive" #~ msgstr "Toiminnot" diff --git a/frontend/src/locale/fr/app.po b/frontend/src/locale/fr/app.po index 781a5ef62..91f404683 100644 --- a/frontend/src/locale/fr/app.po +++ b/frontend/src/locale/fr/app.po @@ -1,19 +1,20 @@ -# +# # Translators: # Adrien spitfireap, 2025 # Antoine Nguyen , 2025 -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "PO-Revision-Date: 2024-08-01 12:26+0000\n" "Last-Translator: Antoine Nguyen , 2025\n" "Language-Team: French (https://app.transifex.com/tonio/teams/13749/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\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/account/APISetupForm.vue:4 msgid "Your API token has not been generated yet." @@ -59,8 +60,8 @@ msgstr "Jeton API créé" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "Avertissement" @@ -109,7 +110,7 @@ msgstr "Activé" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "Sujet" @@ -120,19 +121,19 @@ msgstr "Contenu" #: src/components/account/AutoReplyForm.vue:24 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" +"be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, %" +"(untildate)s" msgstr "" "Le contenu de votre réponse. Vous pouvez utiliser les variables suivantes, " -"qui seront automatiquement remplacées par les valeurs appropriées : " -"%(name)s, %(fromdate)s, %(untildate)s" +"qui seront automatiquement remplacées par les valeurs appropriées : %" +"(name)s, %(fromdate)s, %(untildate)s" #: src/components/account/AutoReplyForm.vue:36 #: src/components/admin/logs/MessageList.vue:50 #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "De" @@ -237,7 +238,7 @@ msgstr "nom" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -267,10 +268,10 @@ msgstr "Nombre d'utilisations" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Actions" @@ -289,7 +290,7 @@ msgstr "Voulez vous vraiment supprimer ce périphérique Webauthn ?" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Non" @@ -300,7 +301,7 @@ msgstr "Non" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Oui" @@ -448,6 +449,7 @@ msgstr "Paramètres généraux " #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "Prénom" @@ -455,6 +457,7 @@ msgstr "Prénom" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Nom de famille" @@ -548,9 +551,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Fermer" @@ -564,11 +569,12 @@ msgstr "Cliquer ici pour copier la clé" #: 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/components/account/TotpAuthForm.vue:39 @@ -617,7 +623,7 @@ msgstr "Enregistrer l'authentificateur" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Chercher" @@ -665,13 +671,14 @@ msgstr "Message" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "Supprimer" @@ -767,8 +774,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/components/admin/dmarc/DmarcAligmentChart.vue:127 #: src/components/admin/dmarc/DmarcAligmentChart.vue:143 @@ -801,8 +808,7 @@ msgstr "Synthèse DNSBL pour" #: src/components/admin/domains/DNSBLSummary.vue:10 msgid "" -"IP address %{ address } is currently listed by the following DNSBL " -"providers:" +"IP address %{ address } is currently listed by the following DNSBL providers:" msgstr "" "L'adresse IP %{ address } est actuellement listée par les fournisseurs de " "DNSBL suivants :" @@ -892,7 +898,7 @@ msgstr "Non générée" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -922,12 +928,11 @@ 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/DNSDetail.vue:259 -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/DNSStatusChip.vue:18 @@ -988,7 +993,7 @@ msgstr "Choisissez un domaine" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Ajouter" @@ -1270,10 +1275,10 @@ msgstr "Supprimer le domaine" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "Modifier" @@ -1459,7 +1464,7 @@ msgid "Create standard aliases for the domain." msgstr "Créer des aliases standard pour le domaine" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Nouveau compte" @@ -1496,7 +1501,7 @@ msgstr "Compte créé" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1658,11 +1663,11 @@ msgstr "Commencer à saisir un nom ici..." #: 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/identities/form_steps/AccountAliasForm.vue:50 msgid "Alias already added" @@ -1687,9 +1692,9 @@ msgstr "Ex: 10MB. Laisser vide pour aucune limite" #: 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 " @@ -1744,8 +1749,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:91 @@ -1771,8 +1776,8 @@ msgid "" "administrator, plus the possibility to create domains and to assign " "resources." msgstr "" -"Un utilisateur intermédiaire qui a les mêmes privilèges qu'un administrateur" -" de domaine, et la possibilité de créer des domaines et d'affecter des " +"Un utilisateur intermédiaire qui a les mêmes privilèges qu'un administrateur " +"de domaine, et la possibilité de créer des domaines et d'affecter des " "ressources." #: src/components/admin/identities/form_steps/AccountRoleForm.vue:109 @@ -1784,8 +1789,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/AliasGeneralForm.vue:10 @@ -1887,29 +1892,28 @@ msgstr "Port IMAP" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "Sécurisé" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:30 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/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:36 msgid "Check connection:" msgstr "Vérifier la connexion :" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "Fournisseur" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "Ancien compte" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "Migration supprimée" @@ -1926,14 +1930,14 @@ msgid "Associated domain" msgstr "Domaine associé" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "Port" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "Domaines associés" @@ -1953,7 +1957,7 @@ msgstr "Nombre de domaines associés :" msgid "No associated domains" msgstr "Aucun domaine associé" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "Fournisseur mis à jour" @@ -1991,8 +1995,8 @@ msgstr "ID de file" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "A" @@ -2045,7 +2049,7 @@ msgid "Edit calendar" msgstr "Modifier le calendrier" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "Nouveau calendrier" @@ -2066,7 +2070,7 @@ msgid "Title" msgstr "Titre" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "Calendrier" @@ -2079,19 +2083,20 @@ msgid "Edit event" msgstr "Modifier l'évènement" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "Nouvel évènement" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "Evènement ajouté" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "Evènement mis à jour" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "Evènement supprimé" @@ -2109,7 +2114,7 @@ msgid "Select an ICS file" msgstr "Sélectionner un fichier ICS" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "Envoyer" @@ -2126,8 +2131,8 @@ msgstr "Information du carnet d'adresse" #: 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 :" @@ -2145,13 +2150,12 @@ msgid "Category deleted" msgstr "Catégorie supprimée" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Catégories" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "Nom affiché" @@ -2203,23 +2207,36 @@ msgstr "Modifier le contact" msgid "New contact" msgstr "Nouveau contact" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "Afficher les informations du carnet d'adresse" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "Synchroniser les contacts avec le carnet d'adresse" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" -msgstr "Courriel" +#: src/components/contacts/ContactList.vue:48 +#, fuzzy +msgid "Synchronize" +msgstr "Synchronisation démarée" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Téléphone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "Afficher les informations du carnet d'adresse" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Adresse email" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Numéro de téléphone" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Administrateur supprimé" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "Synchronisation démarée" @@ -2307,7 +2324,7 @@ msgstr "La sélection est en cours de traitement..." msgid "Notifications" msgstr "Notifications" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Déconnexion" @@ -2362,8 +2379,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/tools/ImportForm.vue:20 msgid "You can use a different character as separator." @@ -2386,7 +2403,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "Ne pas traiter les objets dupliqués comme des erreurs" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Importer" @@ -2423,14 +2440,20 @@ msgid "Relative time ranges" msgstr "Intervalles des temps relatifs" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Jour" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Semaine" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Mois" @@ -2447,7 +2470,7 @@ msgid "no" msgstr "non" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "Pièce jointes" @@ -2455,26 +2478,39 @@ msgstr "Pièce jointes" msgid "Attach" msgstr "Joindre" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 msgid "Provide one or more addresses" msgstr "Fournir une ou plusieurs adresses" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "Cc" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "Cci" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "Message envoyé" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "Message envoyé" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "Ajouter aux contacts" @@ -2487,57 +2523,98 @@ msgstr "Mettre à jour le contact" msgid "Contact added to address book" msgstr "Contact ajouté au carnet d'adresse" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "Marqué comme lu" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "Marquer comme non lu" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "Marquer comme suivi" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "Marqué comme non suivi" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "Vider la boite aux lettres" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "le" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "Aucun message dans cette boite aux lettres" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +#, fuzzy +msgid "Sending failure" +msgstr "Envoi interdit" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Compte mis à jour" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "Message(s) supprimé(s)" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "Message(s) marqués comme pourriel" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "Message(s) marqué(s) comme légitime(s)" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "Message(s) marqué(s)" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "%{count} message" msgstr[1] "%{count} messages" msgstr[2] "%{count} messages" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Sélectionner un fichier" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "Boite aux lettres parent" @@ -2558,7 +2635,7 @@ msgstr "Boite aux lettres renommée" msgid "Mailbox created" msgstr "Boite aux lettres créée" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "Déplacement de la sélection..." @@ -2574,12 +2651,12 @@ msgstr "Base du domaine" msgid "User's database" msgstr "Base de l'utilisateur" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Paramètres" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "Filtres" @@ -2624,7 +2701,7 @@ msgid "Migrations" msgstr "Migrations" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Information" @@ -2632,31 +2709,31 @@ msgstr "Information" msgid "Compose" msgstr "Ecrire" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "Créer une nouvelle boîte aux lettres" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "Modifier cette boite aux lettres" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "Supprimer cette boite aux lettres" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "Compresser cette boîte aux lettres" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "Boite aux lettres compressées" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "Supprimer cette boite aux lettres ?" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "Boite aux lettres supprimée" @@ -2672,23 +2749,28 @@ msgstr "Le fichier CSV semble être mal formaté" msgid "Not a valid email" msgstr "Ce n'est pas un email correct" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +#, fuzzy +msgid "Not a valid time" +msgstr "Ce n'est pas un email correct" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "Ce champ est requis" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "La taille minimale est %{ length }" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "Valeur numérique requise, ou pas de valeur" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Les mots de passe diffèrent" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "Numéro de port incorrect" @@ -2797,7 +2879,7 @@ msgstr "Paramètres du compte" msgid "Two-factor auth" msgstr "Authentification à deux facteurs" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Transfert" @@ -2867,8 +2949,8 @@ msgstr "Chiffrer les mots de passe" #: src/views/admin/identities/IdentitiesView.vue:95 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/views/admin/imap_migration/ProviderEditView.vue:3 msgid "Edit provider" @@ -2884,9 +2966,9 @@ msgstr "Messages importants" #: 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 " @@ -2905,8 +2987,8 @@ msgstr "" 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/views/admin/InformationView.vue:51 msgid "Save your changes" @@ -2941,9 +3023,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 les mots de passe de vos utilisateurs aient été convertis en " +"utilisant la nouvelle méthode." #: src/views/admin/InformationView.vue:92 msgid "Installed components" @@ -2969,27 +3051,31 @@ msgstr "Dernière version" msgid "Message history" msgstr "Historique des messages" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "Mes calendriers" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "Règles d'accès" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "Voulez-vous vraiment supprimer ce calendrier ?" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "Calendrier supprimé" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Contacts" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "Ajouter une catégorie" @@ -3025,8 +3111,7 @@ msgstr "Voir l'intégralité des entêtes" msgid "Hide full headers" msgstr "Cacher l'intégralité des entêtes" -#: src/views/quarantine/MessageView.vue:201 -#: src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "Marquer comme supprimé" @@ -3038,38 +3123,49 @@ msgstr "Quarantaine" msgid "release requests" msgstr "requêtes de libération" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "Répondre" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "Répondre à tous" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "Activer les liens" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "Desactiver les liens" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "Afficher la source" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Marquer comme supprimé" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "Source du message" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "Message marqué comme pourriel" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "Message marqué comme légitime" #: src/views/webmail/MailboxView.vue:4 msgid "Webmail" msgstr "Webmail" + +#~ msgid "E-mail" +#~ msgstr "Courriel" + +#~ msgid "Phone" +#~ msgstr "Téléphone" diff --git a/frontend/src/locale/it/app.po b/frontend/src/locale/it/app.po index f73fe6d54..2d70a811f 100644 --- a/frontend/src/locale/it/app.po +++ b/frontend/src/locale/it/app.po @@ -63,8 +63,8 @@ msgstr "Account creato" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -114,7 +114,7 @@ msgstr "Abilitato" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -134,7 +134,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -234,7 +234,7 @@ msgstr "Nome utente" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -265,10 +265,10 @@ msgstr "Nuovo account" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Azioni" @@ -287,7 +287,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -298,7 +298,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -459,6 +459,7 @@ msgstr "Generale" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 #, fuzzy msgid "First name" msgstr "Nome" @@ -467,6 +468,7 @@ msgstr "Nome" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Cognome" @@ -558,9 +560,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Chiudi" @@ -621,7 +625,7 @@ msgstr "Autenticazione" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Cerca" @@ -669,13 +673,14 @@ msgstr "Utilizzo" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -902,7 +907,7 @@ msgstr "Non generata" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -994,7 +999,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Aggiungi" @@ -1278,10 +1283,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1475,7 +1480,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Nuovo account" @@ -1515,7 +1520,7 @@ msgstr "Account creato" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1914,7 +1919,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1926,17 +1931,17 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 #, fuzzy msgid "Provider" msgstr "Dominio creato" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 #, fuzzy msgid "Old account" msgstr "Nuovo account" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 #, fuzzy msgid "Migration deleted" msgstr "Data di creazione" @@ -1956,14 +1961,14 @@ msgid "Associated domain" msgstr "Domini amministrati" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 #, fuzzy msgid "Associated domains" msgstr "Domini amministrati" @@ -1988,7 +1993,7 @@ msgstr "Domini amministrati" msgid "No associated domains" msgstr "Domini amministrati" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 #, fuzzy msgid "Provider updated" msgstr "Profilo aggiornato" @@ -2028,8 +2033,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -2080,7 +2085,7 @@ msgid "Edit calendar" msgstr "Nuovo alias" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 #, fuzzy msgid "New calendar" msgstr "Nuovo alias" @@ -2104,7 +2109,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2118,21 +2123,22 @@ msgid "Edit event" msgstr "Nuovo account" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 #, fuzzy msgid "New event" msgstr "Nuovo account" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 #, fuzzy msgid "Event updated" msgstr "Account aggiornato" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Account aggiornato" @@ -2151,7 +2157,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 #, fuzzy msgid "Send" msgstr "Nuovo account" @@ -2190,13 +2196,12 @@ msgid "Category deleted" msgstr "Data di creazione" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Categorie" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 #, fuzzy msgid "Display name" msgstr "Nome visualizzato" @@ -2253,23 +2258,35 @@ msgstr "Modifica contatto" msgid "New contact" msgstr "Nuovo contatto" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Telefono" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Indirizzo email" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Numero di telefono" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Contatti" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2364,7 +2381,7 @@ msgstr "" msgid "Notifications" msgstr "Data dell'ultima modifica" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Esci" @@ -2438,7 +2455,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Importa" @@ -2478,14 +2495,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Giorno" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Settimana" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Mese" @@ -2502,7 +2525,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2510,28 +2533,41 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 #, fuzzy msgid "Provide one or more addresses" msgstr "Indirizzi mittenti" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "Email" + +#: src/components/webmail/ComposeEmailForm.vue:301 #, fuzzy msgid "Email sent" msgstr "Email" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 #, fuzzy msgid "Add to contacts" @@ -2546,60 +2582,100 @@ msgstr "Modifica contatto" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 #, fuzzy msgid "Empty mailbox" msgstr "Con una casella di posta" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Account creato" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 #, fuzzy msgid "Message(s) deleted" msgstr "Utilizzo" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 #, fuzzy msgid "Message(s) flagged" msgstr "Utilizzo" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "Importa domini" msgstr[1] "Importa domini" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Data di creazione" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 #, fuzzy msgid "Parent mailbox" @@ -2625,7 +2701,7 @@ msgstr "Caselle di posta" msgid "Mailbox created" msgstr "Dominio creato" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2642,12 +2718,12 @@ msgstr "Usa il valore predefinito" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Impostazioni" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2694,7 +2770,7 @@ msgid "Migrations" msgstr "Conferma" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Informazioni" @@ -2702,35 +2778,35 @@ msgstr "Informazioni" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 #, fuzzy msgid "Create a new mailbox" msgstr "Con una casella di posta" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 #, fuzzy msgid "Edit this mailbox" msgstr "Con una casella di posta" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 #, fuzzy msgid "Delete this mailbox" msgstr "Con una casella di posta" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 #, fuzzy msgid "Mailbox compressed" msgstr "Caselle di posta" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 #, fuzzy msgid "Mailbox deleted" msgstr "Data di creazione" @@ -2747,24 +2823,28 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 #, fuzzy msgid "Field is required" msgstr "Questo campo è obbligatorio" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Le password non corrispondono" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2884,7 +2964,7 @@ msgstr "Impostazioni" msgid "Two-factor auth" msgstr "Autenticazione" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Inoltra" @@ -3047,28 +3127,32 @@ msgstr "Versione installata" msgid "Message history" msgstr "Utilizzo" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 #, fuzzy msgid "Calendar deleted" msgstr "Data di creazione" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Contatti" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 #, fuzzy msgid "Add a category" msgstr "Azioni" @@ -3108,7 +3192,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 #, fuzzy msgid "Message deleted" msgstr "Utilizzo" @@ -3121,39 +3205,44 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 #, fuzzy msgid "Enable links" msgstr "Abilitato" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 #, fuzzy msgid "Disable links" msgstr "Disabilitato" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 #, fuzzy msgid "Display source" msgstr "Nome visualizzato" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Utilizzo" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Utilizzo" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" @@ -3162,6 +3251,9 @@ msgstr "" msgid "Webmail" msgstr "Email" +#~ msgid "Phone" +#~ msgstr "Telefono" + #, fuzzy #~ msgid "inactive" #~ msgstr "Azioni" diff --git a/frontend/src/locale/ja/app.po b/frontend/src/locale/ja/app.po index 501218245..27dd7fc7a 100644 --- a/frontend/src/locale/ja/app.po +++ b/frontend/src/locale/ja/app.po @@ -61,8 +61,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -111,7 +111,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -131,7 +131,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -229,7 +229,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -259,10 +259,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -281,7 +281,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -292,7 +292,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -438,6 +438,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -445,6 +446,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -533,9 +535,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -593,7 +597,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -641,13 +645,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -863,7 +868,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -954,7 +959,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1234,10 +1239,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1416,7 +1421,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1453,7 +1458,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1823,7 +1828,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1835,15 +1840,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1860,14 +1865,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1887,7 +1892,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1923,8 +1928,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1972,7 +1977,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1993,7 +1998,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2006,19 +2011,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2035,7 +2041,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2067,13 +2073,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2125,23 +2130,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2229,7 +2243,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2303,7 +2317,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2340,14 +2354,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2364,7 +2384,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2372,26 +2392,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2404,55 +2436,93 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2473,7 +2543,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2489,12 +2559,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2539,7 +2609,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2547,31 +2617,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2587,23 +2657,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2712,7 +2786,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2866,27 +2940,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2922,7 +3000,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2934,35 +3012,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/messages.pot b/frontend/src/locale/messages.pot index c4bd6af9b..f4f7464f7 100644 --- a/frontend/src/locale/messages.pot +++ b/frontend/src/locale/messages.pot @@ -46,8 +46,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -96,7 +96,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -113,7 +113,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -207,7 +207,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -237,10 +237,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -259,7 +259,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -270,7 +270,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -416,6 +416,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -423,6 +424,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -507,9 +509,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -559,7 +563,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -607,13 +611,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -826,7 +831,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -914,7 +919,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1192,10 +1197,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1369,7 +1374,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1406,7 +1411,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1761,7 +1766,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1773,15 +1778,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1798,14 +1803,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1825,7 +1830,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1862,8 +1867,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1907,7 +1912,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1928,7 +1933,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -1941,19 +1946,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -1970,7 +1976,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2001,13 +2007,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2059,23 +2064,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2163,7 +2177,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2233,7 +2247,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2270,14 +2284,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2296,7 +2316,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2304,26 +2324,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2336,56 +2368,92 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "Scheduled messages will be sent at the specified date and time. (visible on the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2406,7 +2474,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2422,12 +2490,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2473,7 +2541,7 @@ msgstr "" #: src/layouts/admin/AdminLayout.vue:136 #: src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2481,31 +2549,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2521,23 +2589,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2647,7 +2719,7 @@ msgid "Two-factor auth" msgstr "" #: src/views/account/SettingsView.vue:15 -#: src/views/webmail/EmailView.vue:23 +#: src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2790,28 +2862,32 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 -#: src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 +#: src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2849,7 +2925,7 @@ msgid "Hide full headers" msgstr "" #: src/views/quarantine/MessageView.vue:201 -#: src/views/webmail/EmailView.vue:254 +#: src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2861,35 +2937,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/nl/app.po b/frontend/src/locale/nl/app.po index 2f02cb09e..a07f703fb 100644 --- a/frontend/src/locale/nl/app.po +++ b/frontend/src/locale/nl/app.po @@ -61,8 +61,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -111,7 +111,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -131,7 +131,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -229,7 +229,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -259,10 +259,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -281,7 +281,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -292,7 +292,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -438,6 +438,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -445,6 +446,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -533,9 +535,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -593,7 +597,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -641,13 +645,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -863,7 +868,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -954,7 +959,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1234,10 +1239,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1416,7 +1421,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1453,7 +1458,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1823,7 +1828,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1835,15 +1840,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1860,14 +1865,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1887,7 +1892,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1924,8 +1929,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1973,7 +1978,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1994,7 +1999,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2007,19 +2012,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2036,7 +2042,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2069,13 +2075,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2127,23 +2132,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2231,7 +2245,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2305,7 +2319,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2342,14 +2356,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2366,7 +2386,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2374,26 +2394,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2406,56 +2438,94 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2476,7 +2546,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2492,12 +2562,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2542,7 +2612,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2550,31 +2620,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2590,23 +2660,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2715,7 +2789,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2869,27 +2943,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2925,7 +3003,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2937,35 +3015,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/pl/app.po b/frontend/src/locale/pl/app.po index 3093e0269..18014740c 100644 --- a/frontend/src/locale/pl/app.po +++ b/frontend/src/locale/pl/app.po @@ -62,8 +62,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -112,7 +112,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -132,7 +132,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -230,7 +230,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -260,10 +260,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -282,7 +282,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -293,7 +293,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -439,6 +439,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -446,6 +447,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -534,9 +536,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -594,7 +598,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -642,13 +646,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -864,7 +869,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -955,7 +960,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1235,10 +1240,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1417,7 +1422,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1454,7 +1459,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1824,7 +1829,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1836,15 +1841,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1861,14 +1866,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1888,7 +1893,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1926,8 +1931,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1975,7 +1980,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1996,7 +2001,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2009,19 +2014,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2038,7 +2044,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2072,13 +2078,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2130,23 +2135,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2234,7 +2248,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2308,7 +2322,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2345,14 +2359,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2369,7 +2389,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2377,26 +2397,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2409,57 +2441,95 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" msgstr[2] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2480,7 +2550,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2496,12 +2566,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2546,7 +2616,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2554,31 +2624,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2594,23 +2664,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2719,7 +2793,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2873,27 +2947,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2929,7 +3007,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2941,35 +3019,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/pt_BR/app.po b/frontend/src/locale/pt_BR/app.po index 9137ae36d..0d40f81bd 100644 --- a/frontend/src/locale/pt_BR/app.po +++ b/frontend/src/locale/pt_BR/app.po @@ -61,8 +61,8 @@ msgstr "Token de API criado" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "Atenção" @@ -111,7 +111,7 @@ msgstr "Habilitado" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "Assunto" @@ -134,7 +134,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "De" @@ -237,7 +237,7 @@ msgstr "nome" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -267,10 +267,10 @@ msgstr "Usar contagem" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Ações" @@ -290,7 +290,7 @@ msgstr "Você tem certeza que deseja remover este dispositivo WebAuthn?" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Não" @@ -301,7 +301,7 @@ msgstr "Não" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Sim" @@ -447,6 +447,7 @@ msgstr "Configurações gerais" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "Nome" @@ -454,6 +455,7 @@ msgstr "Nome" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Sobrenome" @@ -546,9 +548,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Fechar" @@ -615,7 +619,7 @@ msgstr "Autenticador de registro" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Busca" @@ -663,13 +667,14 @@ msgstr "Mensagem" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "Remover" @@ -893,7 +898,7 @@ msgstr "Não gerado" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -987,7 +992,7 @@ msgstr "Escolha um domínio" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Adicionar" @@ -1269,10 +1274,10 @@ msgstr "Domínio removido" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "Editar" @@ -1469,7 +1474,7 @@ msgid "Create standard aliases for the domain." msgstr "Criar apelidos padrão para este domínio." #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Nova conta" @@ -1507,7 +1512,7 @@ msgstr "Conta criada" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1908,7 +1913,7 @@ msgstr "Porta IMAP" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "Seguro" @@ -1920,15 +1925,15 @@ msgstr "A conexão IMAP é protegida usando SSL/TLS ou StartTLS" msgid "Check connection:" msgstr "Verificar conexão:" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "Provedor" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "Conta antiga" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "Migração removida" @@ -1945,14 +1950,14 @@ msgid "Associated domain" msgstr "Domínio associado" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "Porta" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "Domínios associados" @@ -1972,7 +1977,7 @@ msgstr "Número de domínios associados:" msgid "No associated domains" msgstr "Nenhum domínios associados" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "Provedor atualizado" @@ -2012,8 +2017,8 @@ msgstr "ID da fila" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "Para" @@ -2065,7 +2070,7 @@ msgid "Edit calendar" msgstr "Editar calendário" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "Novo calendário" @@ -2086,7 +2091,7 @@ msgid "Title" msgstr "Título" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "Calendário" @@ -2099,19 +2104,20 @@ msgid "Edit event" msgstr "Editar evento" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "Novo evento" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "Evento adicionado" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "Evento atualizado" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Evento atualizado" @@ -2129,7 +2135,7 @@ msgid "Select an ICS file" msgstr "Selecione um arquivo ICS" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "Enviar" @@ -2165,13 +2171,12 @@ msgid "Category deleted" msgstr "Categoria excluída" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Categorias" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "Nome de exibição" @@ -2223,23 +2228,36 @@ msgstr "Editar contato" msgid "New contact" msgstr "Novo contato" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "Exibir informações do catálogo de endereços" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "Sincronize seus contatos com o catálogo de endereços" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" -msgstr "E-mail" +#: src/components/contacts/ContactList.vue:48 +#, fuzzy +msgid "Synchronize" +msgstr "Sincronização iniciada" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Telefone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "Exibir informações do catálogo de endereços" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Endereço de e-mail" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Número de telefone" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Administrador removido" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "Sincronização iniciada" @@ -2337,7 +2355,7 @@ msgstr "" msgid "Notifications" msgstr "Identificação" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Sair" @@ -2416,7 +2434,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "Não tratar objetos duplicados como erro" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Importar" @@ -2455,14 +2473,20 @@ msgid "Relative time ranges" msgstr "Intervalos de tempo relativos" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Dia" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Semana" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Mês" @@ -2479,7 +2503,7 @@ msgid "no" msgstr "não" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2487,28 +2511,41 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 #, fuzzy msgid "Provide one or more addresses" msgstr "Endereços do remetente" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "E-mail" + +#: src/components/webmail/ComposeEmailForm.vue:301 #, fuzzy msgid "Email sent" msgstr "E-mail" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 #, fuzzy msgid "Add to contacts" @@ -2524,54 +2561,78 @@ msgstr "Editar contato" msgid "Contact added to address book" msgstr "Sincronize seus contatos com o catálogo de endereços" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 #, fuzzy msgid "Empty mailbox" msgstr "Com caixa de correio" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +#, fuzzy +msgid "Sending failure" +msgstr "Limite de envio" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Conta criada" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 #, fuzzy msgid "Message(s) deleted" msgstr "Filtros de mensagem" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 #, fuzzy msgid "Message(s) flagged" msgstr "Filtros de mensagem" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" @@ -2579,6 +2640,23 @@ msgstr[0] "Mensagens importantes" msgstr[1] "Mensagens importantes" msgstr[2] "Mensagens importantes" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Selecionar arquivo" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 #, fuzzy msgid "Parent mailbox" @@ -2604,7 +2682,7 @@ msgstr "Caixas de e-mail" msgid "Mailbox created" msgstr "Domínio criado" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2621,12 +2699,12 @@ msgstr "Domínio atualizado" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Configurações" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "Filtros" @@ -2671,7 +2749,7 @@ msgid "Migrations" msgstr "MIgrações" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Informação" @@ -2679,37 +2757,37 @@ msgstr "Informação" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 #, fuzzy msgid "Create a new mailbox" msgstr "Criar um novo conjunto de filtros" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 #, fuzzy msgid "Edit this mailbox" msgstr "Com caixa de correio" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 #, fuzzy msgid "Delete this mailbox" msgstr "Com caixa de correio" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 #, fuzzy msgid "Compress this mailbox" msgstr "Com caixa de correio" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 #, fuzzy msgid "Mailbox compressed" msgstr "Caixas de e-mail" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 #, fuzzy msgid "Delete this mailbox?" msgstr "Com caixa de correio" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 #, fuzzy msgid "Mailbox deleted" msgstr "Migração removida" @@ -2726,23 +2804,28 @@ msgstr "CSV parece estar mal formatado" msgid "Not a valid email" msgstr "Não é um e-mail válido" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +#, fuzzy +msgid "Not a valid time" +msgstr "Não é um e-mail válido" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "Campo obrigatório" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "O comprimento mínimo é %{ length }" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "Deve ser um valor numérico ou vazio" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Senhas não conferem" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "Número de porta inválido" @@ -2854,7 +2937,7 @@ msgstr "Configurações de conta" msgid "Two-factor auth" msgstr "Autenticação de dois fatores" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Encaminhar" @@ -3024,27 +3107,31 @@ msgstr "Última versão" msgid "Message history" msgstr "Histórico de mensagens" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "Meus calendários" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "Regras de acesso" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "Tem certeza que deseja excluir esse calendário?" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "Calendário excluído" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Contatos" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "Adicionar uma categoria" @@ -3083,7 +3170,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 #, fuzzy msgid "Message deleted" msgstr "Filtros de mensagem" @@ -3096,39 +3183,44 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 #, fuzzy msgid "Enable links" msgstr "Habilitar" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 #, fuzzy msgid "Disable links" msgstr "Desabilitar" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 #, fuzzy msgid "Display source" msgstr "Nome de exibição" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Filtros de mensagem" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Histórico de mensagens" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" @@ -3137,6 +3229,12 @@ msgstr "" msgid "Webmail" msgstr "E-mail" +#~ msgid "E-mail" +#~ msgstr "E-mail" + +#~ msgid "Phone" +#~ msgstr "Telefone" + #~ msgid "active" #~ msgstr "ativo" diff --git a/frontend/src/locale/ru/app.po b/frontend/src/locale/ru/app.po index 6d4fc9a91..6a91a5bd8 100644 --- a/frontend/src/locale/ru/app.po +++ b/frontend/src/locale/ru/app.po @@ -65,8 +65,8 @@ msgstr "Токен API создан" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "Внимание" @@ -115,7 +115,7 @@ msgstr "Включено" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "Тема" @@ -138,7 +138,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "От" @@ -239,7 +239,7 @@ msgstr "название" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -269,10 +269,10 @@ msgstr "Количество использований" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Действия" @@ -291,7 +291,7 @@ msgstr "Вы действительно хотите удалить это ус #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Нет" @@ -302,7 +302,7 @@ msgstr "Нет" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Да" @@ -448,6 +448,7 @@ msgstr "Основные настройки" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "Имя" @@ -455,6 +456,7 @@ msgstr "Имя" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Фамилия" @@ -546,9 +548,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Закрыть" @@ -614,7 +618,7 @@ msgstr "Зарегистрировать устройство-аутентифи #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Поиск" @@ -662,13 +666,14 @@ msgstr "Письмо" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "Удалить" @@ -886,7 +891,7 @@ msgstr "Не создан" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -981,7 +986,7 @@ msgstr "Выберите домен" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Добавить" @@ -1261,10 +1266,10 @@ msgstr "Домен удалён" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "Редактировать" @@ -1447,7 +1452,7 @@ msgid "Create standard aliases for the domain." msgstr "Создать стандартные псевдонимы для домена" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Новая учётная запись" @@ -1484,7 +1489,7 @@ msgstr "Учётная запись создана" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1872,7 +1877,7 @@ msgstr "IMAP Порт" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "Защищено" @@ -1884,15 +1889,15 @@ msgstr "IMAP-соединение защищено через SSL/TLS или STA msgid "Check connection:" msgstr "Проверка соединения:" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "Провайдер" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "Старая учётная запись" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "Миграция удалена" @@ -1909,14 +1914,14 @@ msgid "Associated domain" msgstr "Связанный домен" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "Порт" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "Связанные домены" @@ -1936,7 +1941,7 @@ msgstr "Количество связанных доменов:" msgid "No associated domains" msgstr "Нет связанных доменов" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "Провайдер обновлён" @@ -1977,8 +1982,8 @@ msgstr "ID очереди" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "Кому" @@ -2030,7 +2035,7 @@ msgid "Edit calendar" msgstr "Изменить календарь" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "Новый календарь" @@ -2051,7 +2056,7 @@ msgid "Title" msgstr "Название" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "Календарь" @@ -2064,19 +2069,20 @@ msgid "Edit event" msgstr "Изменить событие" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "Новое событие" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "Событие добавлено" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "Событие обновлено" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "Событие удалено" @@ -2093,7 +2099,7 @@ msgid "Select an ICS file" msgstr "Выберите файл .ics" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "Отправить" @@ -2130,13 +2136,12 @@ msgid "Category deleted" msgstr "Категория удалена" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Категории" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "Отображаемое имя" @@ -2188,23 +2193,36 @@ msgstr "Изменить контакт" msgid "New contact" msgstr "Новый контакт" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "Показать информацию об адресной книге" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "Синхронизировать контакты с адресной книгой" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" -msgstr "Электронная почта" +#: src/components/contacts/ContactList.vue:48 +#, fuzzy +msgid "Synchronize" +msgstr "Синхронизация запущена" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Телефон" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "Показать информацию об адресной книге" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "Адрес электронной почты" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Номер телефона" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Администратор удален" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "Синхронизация запущена" @@ -2292,7 +2310,7 @@ msgstr "Идёт обработка выбранного…" msgid "Notifications" msgstr "Уведомления" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Выйти" @@ -2368,7 +2386,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "Не считать дубликаты ошибками" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Импорт" @@ -2405,14 +2423,20 @@ msgid "Relative time ranges" msgstr "Относительный период" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "День" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Неделя" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Месяц" @@ -2429,7 +2453,7 @@ msgid "no" msgstr "нет" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "Вложения" @@ -2437,26 +2461,39 @@ msgstr "Вложения" msgid "Attach" msgstr "Прикрепить" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 msgid "Provide one or more addresses" msgstr "Укажите один или несколько адресов" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "Копия" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "Скрытая копия" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "Письмо отправлено" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "Письмо отправлено" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "Добавить в контакты" @@ -2469,51 +2506,75 @@ msgstr "Сохранить контакт" msgid "Contact added to address book" msgstr "Контакт добавлен в адресную книгу" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "Пометить как прочитанное" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "Пометить как непрочитанное" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "Пометить как важное" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "Снять пометку «Важное»" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "Очистить ящик" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "включено" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "В этом ящике пока нет писем" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +#, fuzzy +msgid "Sending failure" +msgstr "Отправка запрещена" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Учётная запись обновлена" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "Письмо(а) удалены" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "Письмо(а) помечено как спам" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "Письмо(а) помечено как НЕ спам" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "Письмо(а) помечено как важные" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" @@ -2522,6 +2583,23 @@ msgstr[1] "Важные письма" msgstr[2] "Важные письма" msgstr[3] "Важные письма" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Выбрать файл" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "Родительский ящик" @@ -2542,7 +2620,7 @@ msgstr "Почтовый ящик переименован" msgid "Mailbox created" msgstr "Почтовый ящик создан" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2558,12 +2636,12 @@ msgstr "База данных домена" msgid "User's database" msgstr "База данных пользователя" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Настройки" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "Фильтры" @@ -2608,7 +2686,7 @@ msgid "Migrations" msgstr "Миграции" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Информация" @@ -2616,31 +2694,31 @@ msgstr "Информация" msgid "Compose" msgstr "Написать" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "Создать новый почтовый ящик" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "Изменить этот ящик" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "Удалить этот ящик" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "Сжать этот ящик" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "Почтовый ящик сжат" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "Удалить этот почтовый ящик?" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "Почтовый ящик удалён" @@ -2656,23 +2734,28 @@ msgstr "CSV-файл имеет неверный формат" msgid "Not a valid email" msgstr "Неверный адрес электронной почты" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +#, fuzzy +msgid "Not a valid time" +msgstr "Неверный адрес электронной почты" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "Поле обязательно для заполнения" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "Минимальная длина %{ length }" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "Должно быть числом или пустым" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Пароли не совпадают" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "Неверный номер порта" @@ -2785,7 +2868,7 @@ msgstr "Настройки учётной записи" msgid "Two-factor auth" msgstr "Двухфакторная аутентификация" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Переслать" @@ -2949,27 +3032,31 @@ msgstr "Последняя версия" msgid "Message history" msgstr "История письма" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "Мои календари" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "Правила доступа" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "Вы действительно хотите удалить этот календарь?" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "Календарь удален" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Контакты" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "Добавить категорию" @@ -3005,7 +3092,7 @@ msgstr "Показать все заголовки" msgid "Hide full headers" msgstr "Скрыть все заголовки" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "Письмо удалено" @@ -3017,36 +3104,41 @@ msgstr "Карантин" msgid "release requests" msgstr "запросы на выпуск" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "Ответить" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "Ответить всем" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "Включить ссылки" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "Отключить ссылки" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "Показать источник" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Письмо удалено" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "История письма" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "Письмо помечено как спам" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "Письмо помечено как НЕ спам" @@ -3054,6 +3146,12 @@ msgstr "Письмо помечено как НЕ спам" msgid "Webmail" msgstr "Веб-почта" +#~ msgid "E-mail" +#~ msgstr "Электронная почта" + +#~ msgid "Phone" +#~ msgstr "Телефон" + #~ msgid "active" #~ msgstr "активно" diff --git a/frontend/src/locale/sv/app.po b/frontend/src/locale/sv/app.po index 7c159e2f1..ed44b3118 100644 --- a/frontend/src/locale/sv/app.po +++ b/frontend/src/locale/sv/app.po @@ -59,8 +59,8 @@ msgstr "API token skapat" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "Varning" @@ -109,7 +109,7 @@ msgstr "Aktiverad" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "Ämne" @@ -131,7 +131,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "Från" @@ -232,7 +232,7 @@ msgstr "namn" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -262,10 +262,10 @@ msgstr "Använd antal" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "Åtgärder" @@ -285,7 +285,7 @@ msgstr "Vill du verkligen ta bort den här WebAuthn-enheten?" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Nej" @@ -296,7 +296,7 @@ msgstr "Nej" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Ja" @@ -442,6 +442,7 @@ msgstr "Allmänna inställningar" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "Förnamn" @@ -449,6 +450,7 @@ msgstr "Förnamn" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "Efternamn" @@ -541,9 +543,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Stäng" @@ -609,7 +613,7 @@ msgstr "Registrera autentiseringsverktyg" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "Sök" @@ -657,13 +661,14 @@ msgstr "Meddelande" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "Radera" @@ -886,7 +891,7 @@ msgstr "Ej genererad" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -981,7 +986,7 @@ msgstr "Välj en domän" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "Lägg till" @@ -1263,10 +1268,10 @@ msgstr "Domän raderad" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "Redigera" @@ -1463,7 +1468,7 @@ msgid "Create standard aliases for the domain." msgstr "Skapa standardalias för domänen." #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "Nytt konto" @@ -1501,7 +1506,7 @@ msgstr "Konto skapat" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1899,7 +1904,7 @@ msgstr "IMAP port" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "Säkrad" @@ -1911,15 +1916,15 @@ msgstr "Är IMAP-anslutningen säker med SSL/TLS eller StartTLS" msgid "Check connection:" msgstr "Kontrollera anslutning:" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "Leverantör" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "Gammalt konto" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "Migrering raderad" @@ -1936,14 +1941,14 @@ msgid "Associated domain" msgstr "Associerad domän" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "Port" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "Associerade domäner" @@ -1963,7 +1968,7 @@ msgstr "Antal associerade domäner:" msgid "No associated domains" msgstr "Inga associerade domäner" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "Leverantör uppdaterad" @@ -2002,8 +2007,8 @@ msgstr "Kö ID" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "Till" @@ -2057,7 +2062,7 @@ msgid "Edit calendar" msgstr "Redigera kalender" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "Ny kalender" @@ -2078,7 +2083,7 @@ msgid "Title" msgstr "Titel" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "Kalender" @@ -2091,19 +2096,20 @@ msgid "Edit event" msgstr "Redigera händelse" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "Ny händelse" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "Event added" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "Händelse uppdaterad" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Händelse uppdaterad" @@ -2121,7 +2127,7 @@ msgid "Select an ICS file" msgstr "Välj en ICS-fil" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "Skicka" @@ -2156,13 +2162,12 @@ msgid "Category deleted" msgstr "Kategori raderad" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "Kategorier" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "Display name" @@ -2214,23 +2219,36 @@ msgstr "Redigera kontakt" msgid "New contact" msgstr "Ny kontakt" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "Visa adressboksinformation" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "Synkronisera kontakter med adressboken" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" -msgstr "E-post" +#: src/components/contacts/ContactList.vue:48 +#, fuzzy +msgid "Synchronize" +msgstr "Synkronisering startade" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" -msgstr "Telefon" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" +msgstr "Visa adressboksinformation" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +#, fuzzy +msgid "Email addresses" +msgstr "E-postadress" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Telefonnummer" + +#: src/components/contacts/ContactList.vue:280 +#, fuzzy +msgid "Contact removed" +msgstr "Administratör raderad" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "Synkronisering startade" @@ -2331,7 +2349,7 @@ msgstr "" msgid "Notifications" msgstr "Identifikation" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Logga ut" @@ -2409,7 +2427,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "Behandla inte duplicerade objekt som fel" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "Importera" @@ -2448,14 +2466,20 @@ msgid "Relative time ranges" msgstr "Relativa tidsintervall" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "Dag" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "Vecka" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "Månad" @@ -2472,7 +2496,7 @@ msgid "no" msgstr "nej" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "Bilagor" @@ -2480,26 +2504,39 @@ msgstr "Bilagor" msgid "Attach" msgstr "Bifoga" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:73 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 msgid "Provide one or more addresses" msgstr "Ange en eller flera adresser" -#: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "Cc" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "Bcc" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +#, fuzzy +msgid "Email scheduled" +msgstr "E-post skickat" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "E-post skickat" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "Lägg till i kontakter" @@ -2512,57 +2549,98 @@ msgstr "Uppdatera kontakt" msgid "Contact added to address book" msgstr "Kontakt har lagts till i adressboken" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "Markera som läst" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "Markera som oläst" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "Markera enligt följande" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "Markera som ej följt" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "Tom brevlåda" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "på" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "Inget meddelande ännu i denna brevlåda" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +#, fuzzy +msgid "Sending failure" +msgstr "Sändningsgräns" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Konto skapat" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "Meddelande(n) raderade" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "Meddelande(n) markerade som skräp" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "Meddelande(n) markerade som inte skräp" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "Meddelande(n) flaggade" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "Viktiga meddelanden" msgstr[1] "Viktiga meddelanden" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Välj fil" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "Förälders brevlåda" @@ -2583,7 +2661,7 @@ msgstr "Brevlåda omdöpt" msgid "Mailbox created" msgstr "Brevlåda skapad" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2600,12 +2678,12 @@ msgstr "Domän uppdaterad" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Inställningar" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "Filter" @@ -2650,7 +2728,7 @@ msgid "Migrations" msgstr "Migreringar" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Information" @@ -2658,31 +2736,31 @@ msgstr "Information" msgid "Compose" msgstr "Författa" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "Skapa en ny brevlåda" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "Redigera den här brevlådan" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "Ta bort den här brevlådan" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "Komprimera denna brevlåda" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "Brevlåda komprimerad" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "Ta bort den här brevlådan?" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "Brevlåda raderad" @@ -2698,23 +2776,28 @@ msgstr "CSV verkar vara dåligt formaterad" msgid "Not a valid email" msgstr "Inte ett giltigt mejl" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +#, fuzzy +msgid "Not a valid time" +msgstr "Inte ett giltigt mejl" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "Fält är obligatoriskt" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "Minsta längd är %{ length }" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "Måste vara ett numeriskt värde eller tomt" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Lösenord matchar ej" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "Ogiltigt portnummer" @@ -2826,7 +2909,7 @@ msgstr "Kontoinställningar" msgid "Two-factor auth" msgstr "Tvåfaktorsautentisering" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "Vidarebefordra" @@ -2995,27 +3078,31 @@ msgstr "Senaste version" msgid "Message history" msgstr "Meddelande historik" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "Mina kalendrar" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "Åtkomstregler" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "Vill du verkligen ta bort den här kalendern?" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "Kalender raderad" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "Kontakter" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "Lägg till en kategori" @@ -3055,7 +3142,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "Meddelandet raderat" @@ -3067,36 +3154,41 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "Svara" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "Svara alla" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "Aktivera länkar" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "Inaktivera länkar" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "Visa källa" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "Meddelandet raderat" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "Meddelande historik" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "Meddelande markerat som skräp" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "Meddelandet markerat som inte skräp" @@ -3104,6 +3196,12 @@ msgstr "Meddelandet markerat som inte skräp" msgid "Webmail" msgstr "Webmail" +#~ msgid "E-mail" +#~ msgstr "E-post" + +#~ msgid "Phone" +#~ msgstr "Telefon" + #~ msgid "active" #~ msgstr "aktiv" diff --git a/frontend/src/locale/tr/app.po b/frontend/src/locale/tr/app.po index b56f8b509..11ac4247e 100644 --- a/frontend/src/locale/tr/app.po +++ b/frontend/src/locale/tr/app.po @@ -63,8 +63,8 @@ msgstr "Profil güncellendi" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -113,7 +113,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -133,7 +133,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "Kimden" @@ -236,7 +236,7 @@ msgstr "Kullanıcı adı" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -266,10 +266,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -288,7 +288,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "Hayır" @@ -299,7 +299,7 @@ msgstr "Hayır" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "Evet" @@ -455,6 +455,7 @@ msgstr "Genel" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -462,6 +463,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -553,9 +555,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "Kapat" @@ -624,7 +628,7 @@ msgstr "Kimlik Doğrulama" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -673,13 +677,14 @@ msgstr "İleti" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -900,7 +905,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -992,7 +997,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1273,10 +1278,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1463,7 +1468,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1501,7 +1506,7 @@ msgstr "Profil güncellendi" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1887,7 +1892,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 #, fuzzy msgid "Secured" msgstr "Güvenlik" @@ -1900,16 +1905,16 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 #, fuzzy msgid "Provider" msgstr "Yeni kurtarma kodları" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 #, fuzzy msgid "Migration deleted" msgstr "Onayla" @@ -1928,14 +1933,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1957,7 +1962,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 #, fuzzy msgid "Provider updated" msgstr "Profil güncellendi" @@ -1995,8 +2000,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "Kime" @@ -2046,7 +2051,7 @@ msgid "Edit calendar" msgstr "Yeni kurtarma kodları" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 #, fuzzy msgid "New calendar" msgstr "Yeni kurtarma kodları" @@ -2070,7 +2075,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2084,20 +2089,21 @@ msgid "Edit event" msgstr "Yeni kurtarma kodları" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 #, fuzzy msgid "Event updated" msgstr "Profil güncellendi" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 #, fuzzy msgid "Event deleted" msgstr "Profil güncellendi" @@ -2116,7 +2122,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2151,13 +2157,12 @@ msgid "Category deleted" msgstr "Onayla" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2211,23 +2216,33 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +#, fuzzy +msgid "Phone numbers" +msgstr "Telefon numarası" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2319,7 +2334,7 @@ msgstr "" msgid "Notifications" msgstr "Onayla" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "Çıkış Yapın" @@ -2393,7 +2408,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2432,14 +2447,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2456,7 +2477,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2464,26 +2485,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2497,59 +2530,99 @@ msgstr "Ayarlar" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +#, fuzzy +msgid "Scheduling updated" +msgstr "Profil güncellendi" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 #, fuzzy msgid "Message(s) deleted" msgstr "İleti" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 #, fuzzy msgid "Message(s) flagged" msgstr "İleti" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 #, fuzzy msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "İleti" msgstr[1] "İleti" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +#, fuzzy +msgid "Select time" +msgstr "Onayla" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2572,7 +2645,7 @@ msgstr "" msgid "Mailbox created" msgstr "Profil güncellendi" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2588,12 +2661,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "Ayarlar" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2639,7 +2712,7 @@ msgid "Migrations" msgstr "Onayla" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "Bilgi" @@ -2647,31 +2720,31 @@ msgstr "Bilgi" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 #, fuzzy msgid "Mailbox deleted" msgstr "Onayla" @@ -2688,24 +2761,28 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 #, fuzzy msgid "Field is required" msgstr "Bu alan gerekli" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "Parolalar uyuşmuyor" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2825,7 +2902,7 @@ msgstr "Ayarlar" msgid "Two-factor auth" msgstr "Kimlik Doğrulama" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2986,28 +3063,32 @@ msgstr "Kurulu sürüm" msgid "Message history" msgstr "İleti" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 #, fuzzy msgid "Calendar deleted" msgstr "Profil güncellendi" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -3046,7 +3127,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 #, fuzzy msgid "Message deleted" msgstr "İleti" @@ -3059,38 +3140,43 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 #, fuzzy msgid "Enable links" msgstr "2FA'yı etkinleştir" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 #, fuzzy msgid "Disable links" msgstr "2FA'yı devre dışı bırak" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +#, fuzzy +msgid "Message scheduled at:" +msgstr "İleti" + +#: src/views/webmail/EmailView.vue:151 #, fuzzy msgid "Message source" msgstr "İleti" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/frontend/src/locale/zh/app.po b/frontend/src/locale/zh/app.po index afc9e6bc5..09bbf020f 100644 --- a/frontend/src/locale/zh/app.po +++ b/frontend/src/locale/zh/app.po @@ -60,8 +60,8 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:482 #: src/components/admin/identities/IdentityList.vue:522 #: src/components/tools/CreationForm.vue:135 -#: src/layouts/webmail/WebmailLayout.vue:190 -#: src/views/calendars/CalendarView.vue:247 +#: src/layouts/webmail/WebmailLayout.vue:201 +#: src/views/calendars/CalendarView.vue:535 msgid "Warning" msgstr "" @@ -110,7 +110,7 @@ msgstr "" #: src/components/account/AutoReplyForm.vue:12 #: src/components/quarantine/QuarantineList.vue:49 #: src/components/quarantine/QuarantineList.vue:235 -#: src/components/webmail/ComposeEmailForm.vue:145 +#: src/components/webmail/ComposeEmailForm.vue:158 msgid "Subject" msgstr "" @@ -130,7 +130,7 @@ msgstr "" #: src/components/calendars/EventForm.vue:24 #: src/components/quarantine/QuarantineList.vue:234 #: src/components/tools/TimeSerieChart.vue:19 -#: src/components/webmail/ComposeEmailForm.vue:35 +#: src/components/webmail/ComposeEmailForm.vue:48 msgid "From" msgstr "" @@ -228,7 +228,7 @@ msgstr "" #: src/components/admin/domains/form_steps/DomainOptionsForm.vue:11 #: src/components/admin/identities/IdentityList.vue:265 #: src/components/admin/imap_migration/ProviderCreationForm.vue:53 -#: src/components/admin/imap_migration/ProvidersList.vue:110 +#: src/components/admin/imap_migration/ProvidersList.vue:114 #: src/components/calendars/CalendarForm.vue:15 #: src/components/contacts/CategoryForm.vue:10 #: src/components/webmail/MailboxForm.vue:7 @@ -258,10 +258,10 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:47 #: src/components/admin/identities/IdentityList.vue:345 #: src/components/admin/imap_migration/MigrationsList.vue:34 -#: src/components/admin/imap_migration/MigrationsList.vue:85 +#: src/components/admin/imap_migration/MigrationsList.vue:90 #: src/components/admin/imap_migration/ProvidersList.vue:36 -#: src/components/admin/imap_migration/ProvidersList.vue:116 -#: src/components/contacts/ContactList.vue:128 +#: src/components/admin/imap_migration/ProvidersList.vue:120 +#: src/components/contacts/ContactList.vue:222 msgid "Actions" msgstr "" @@ -280,7 +280,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:487 #: src/components/admin/identities/IdentityList.vue:527 #: src/components/tools/CreationForm.vue:142 -#: src/layouts/webmail/WebmailLayout.vue:195 +#: src/layouts/webmail/WebmailLayout.vue:206 msgid "No" msgstr "" @@ -291,7 +291,7 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:486 #: src/components/admin/identities/IdentityList.vue:526 #: src/components/tools/CreationForm.vue:141 -#: src/layouts/webmail/WebmailLayout.vue:194 +#: src/layouts/webmail/WebmailLayout.vue:205 msgid "Yes" msgstr "" @@ -437,6 +437,7 @@ msgstr "" #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:18 #: src/components/admin/identities/IdentityList.vue:267 #: src/components/contacts/ContactForm.vue:12 +#: src/components/contacts/ContactList.vue:219 msgid "First name" msgstr "" @@ -444,6 +445,7 @@ msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:104 #: src/components/admin/identities/form_steps/AccountGeneralForm.vue:25 #: src/components/contacts/ContactForm.vue:22 +#: src/components/contacts/ContactList.vue:220 msgid "Last name" msgstr "" @@ -532,9 +534,11 @@ msgstr "" #: src/components/contacts/ContactForm.vue:148 #: src/components/tools/ImportForm.vue:51 #: src/components/webmail/AttachmentsDialog.vue:41 +#: src/components/webmail/EmailList.vue:226 +#: src/components/webmail/EmailSchedulingForm.vue:28 #: src/components/webmail/MailboxForm.vue:29 #: src/layouts/connected/ConnectedLayout.vue:19 -#: src/views/webmail/EmailView.vue:153 +#: src/views/webmail/EmailView.vue:158 msgid "Close" msgstr "" @@ -592,7 +596,7 @@ msgstr "" #: src/components/admin/imap_migration/ProvidersList.vue:20 #: src/components/admin/logs/AuditTrailList.vue:17 #: src/components/admin/logs/MessageList.vue:17 -#: src/components/contacts/ContactList.vue:9 +#: src/components/contacts/ContactList.vue:22 msgid "Search" msgstr "" @@ -640,13 +644,14 @@ msgstr "" #: src/components/admin/identities/IdentityList.vue:442 #: src/components/admin/identities/IdentityList.vue:454 #: src/components/admin/identities/IdentityList.vue:467 -#: src/components/admin/imap_migration/MigrationsList.vue:125 -#: src/components/admin/imap_migration/ProvidersList.vue:142 +#: src/components/admin/imap_migration/MigrationsList.vue:130 +#: src/components/admin/imap_migration/ProvidersList.vue:146 #: src/components/calendars/EventForm.vue:90 #: src/components/contacts/CategoryForm.vue:18 -#: src/components/contacts/ContactList.vue:143 +#: src/components/contacts/ContactList.vue:237 +#: src/components/webmail/EmailList.vue:286 #: src/views/account/FiltersView.vue:351 -#: src/views/calendars/CalendarView.vue:109 +#: src/views/calendars/CalendarView.vue:209 msgid "Delete" msgstr "" @@ -862,7 +867,7 @@ msgstr "" #: src/components/admin/identities/AliasEditForm.vue:16 #: src/components/admin/identities/IdentityList.vue:234 #: src/components/admin/imap_migration/ProviderCreationForm.vue:54 -#: src/components/admin/imap_migration/ProvidersList.vue:111 +#: src/components/admin/imap_migration/ProvidersList.vue:115 #: src/components/contacts/ContactForm.vue:85 #: src/components/contacts/EmailField.vue:5 msgid "Address" @@ -953,7 +958,7 @@ msgstr "" #: src/components/admin/domains/DomainAliasForm.vue:75 #: src/components/contacts/CategoryForm.vue:60 #: src/components/contacts/ContactForm.vue:185 -#: src/components/contacts/ContactList.vue:18 +#: src/components/contacts/ContactList.vue:31 msgid "Add" msgstr "" @@ -1233,10 +1238,10 @@ msgstr "" #: src/components/admin/domains/DomainList.vue:357 #: src/components/admin/identities/IdentityList.vue:437 #: src/components/admin/identities/IdentityList.vue:449 -#: src/components/admin/imap_migration/ProvidersList.vue:148 -#: src/components/contacts/ContactList.vue:138 +#: src/components/admin/imap_migration/ProvidersList.vue:152 +#: src/components/contacts/ContactList.vue:232 #: src/views/account/FiltersView.vue:346 -#: src/views/calendars/CalendarView.vue:99 +#: src/views/calendars/CalendarView.vue:199 msgid "Edit" msgstr "" @@ -1415,7 +1420,7 @@ msgid "Create standard aliases for the domain." msgstr "" #: src/components/admin/identities/AccountCreationForm.vue:4 -#: src/components/admin/imap_migration/MigrationsList.vue:83 +#: src/components/admin/imap_migration/MigrationsList.vue:88 msgid "New account" msgstr "" @@ -1452,7 +1457,7 @@ msgstr "" #: src/components/admin/identities/AccountEditForm.vue:31 #: src/components/calendars/CalendarAccessRulesForm.vue:42 -#: src/components/shared/TopMenu.vue:132 +#: src/components/shared/TopMenu.vue:130 #: src/views/admin/identities/AccountView.vue:4 #: src/views/admin/identities/IdentitiesView.vue:23 msgid "Account" @@ -1822,7 +1827,7 @@ msgstr "" #: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27 #: src/components/admin/imap_migration/ProviderCreationForm.vue:57 -#: src/components/admin/imap_migration/ProvidersList.vue:113 +#: src/components/admin/imap_migration/ProvidersList.vue:117 msgid "Secured" msgstr "" @@ -1834,15 +1839,15 @@ msgstr "" msgid "Check connection:" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:81 +#: src/components/admin/imap_migration/MigrationsList.vue:86 msgid "Provider" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:82 +#: src/components/admin/imap_migration/MigrationsList.vue:87 msgid "Old account" msgstr "" -#: src/components/admin/imap_migration/MigrationsList.vue:100 +#: src/components/admin/imap_migration/MigrationsList.vue:105 msgid "Migration deleted" msgstr "" @@ -1859,14 +1864,14 @@ msgid "Associated domain" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:55 -#: src/components/admin/imap_migration/ProvidersList.vue:112 +#: src/components/admin/imap_migration/ProvidersList.vue:116 msgid "Port" msgstr "" #: src/components/admin/imap_migration/ProviderCreationForm.vue:64 #: src/components/admin/imap_migration/ProviderCreationForm.vue:72 #: src/components/admin/imap_migration/ProviderForm.vue:30 -#: src/components/admin/imap_migration/ProvidersList.vue:114 +#: src/components/admin/imap_migration/ProvidersList.vue:118 msgid "Associated domains" msgstr "" @@ -1886,7 +1891,7 @@ msgstr "" msgid "No associated domains" msgstr "" -#: src/components/admin/imap_migration/ProviderForm.vue:140 +#: src/components/admin/imap_migration/ProviderForm.vue:143 msgid "Provider updated" msgstr "" @@ -1923,8 +1928,8 @@ msgstr "" #: src/components/quarantine/QuarantineList.vue:52 #: src/components/quarantine/QuarantineList.vue:233 #: src/components/tools/TimeSerieChart.vue:20 -#: src/components/webmail/ComposeEmailForm.vue:52 -#: src/views/webmail/EmailView.vue:109 +#: src/components/webmail/ComposeEmailForm.vue:65 +#: src/views/webmail/EmailView.vue:103 msgid "To" msgstr "" @@ -1972,7 +1977,7 @@ msgid "Edit calendar" msgstr "" #: src/components/calendars/CalendarForm.vue:8 -#: src/views/calendars/CalendarView.vue:81 +#: src/views/calendars/CalendarView.vue:181 msgid "New calendar" msgstr "" @@ -1993,7 +1998,7 @@ msgid "Title" msgstr "" #: src/components/calendars/EventForm.vue:49 -#: src/views/calendars/CalendarView.vue:3 +#: src/views/calendars/CalendarView.vue:4 msgid "Calendar" msgstr "" @@ -2006,19 +2011,20 @@ msgid "Edit event" msgstr "" #: src/components/calendars/EventForm.vue:133 +#: src/views/calendars/CalendarView.vue:399 msgid "New event" msgstr "" -#: src/components/calendars/EventForm.vue:186 +#: src/components/calendars/EventForm.vue:208 msgid "Event added" msgstr "" -#: src/components/calendars/EventForm.vue:189 -#: src/views/calendars/CalendarView.vue:225 +#: src/components/calendars/EventForm.vue:211 +#: src/views/calendars/CalendarView.vue:340 msgid "Event updated" msgstr "" -#: src/components/calendars/EventForm.vue:202 +#: src/components/calendars/EventForm.vue:224 msgid "Event deleted" msgstr "" @@ -2035,7 +2041,7 @@ msgid "Select an ICS file" msgstr "" #: src/components/calendars/ImportEventsForm.vue:30 -#: src/components/webmail/ComposeEmailForm.vue:19 +#: src/components/webmail/ComposeEmailForm.vue:18 msgid "Send" msgstr "" @@ -2068,13 +2074,12 @@ msgid "Category deleted" msgstr "" #: src/components/contacts/ContactCategoriesForm.vue:5 -#: src/components/contacts/ContactList.vue:133 -#: src/views/contacts/AddressBook.vue:41 +#: src/components/contacts/ContactList.vue:227 +#: src/views/contacts/AddressBook.vue:45 msgid "Categories" msgstr "" #: src/components/contacts/ContactForm.vue:31 -#: src/components/contacts/ContactList.vue:125 msgid "Display name" msgstr "" @@ -2126,23 +2131,32 @@ msgstr "" msgid "New contact" msgstr "" -#: src/components/contacts/ContactList.vue:23 -msgid "Display address book information" -msgstr "" - -#: src/components/contacts/ContactList.vue:31 +#: src/components/contacts/ContactList.vue:42 msgid "Synchronize contacts with address book" msgstr "" -#: src/components/contacts/ContactList.vue:126 -msgid "E-mail" +#: src/components/contacts/ContactList.vue:48 +msgid "Synchronize" msgstr "" -#: src/components/contacts/ContactList.vue:127 -msgid "Phone" +#: src/components/contacts/ContactList.vue:58 +msgid "Display address book information" msgstr "" -#: src/components/contacts/ContactList.vue:202 +#: src/components/contacts/ContactList.vue:120 +msgid "Email addresses" +msgstr "" + +#: src/components/contacts/ContactList.vue:138 +msgid "Phone numbers" +msgstr "" + +#: src/components/contacts/ContactList.vue:280 +msgid "Contact removed" +msgstr "" + +#: src/components/contacts/ContactList.vue:325 +#: src/components/contacts/ContactList.vue:346 msgid "Synchronization started" msgstr "" @@ -2230,7 +2244,7 @@ msgstr "" msgid "Notifications" msgstr "" -#: src/components/shared/TopMenu.vue:139 +#: src/components/shared/TopMenu.vue:137 msgid "Logout" msgstr "" @@ -2304,7 +2318,7 @@ msgid "Don't treat duplicated objects as errors" msgstr "" #: src/components/tools/ImportForm.vue:54 -#: src/views/calendars/CalendarView.vue:114 +#: src/views/calendars/CalendarView.vue:214 msgid "Import" msgstr "" @@ -2341,14 +2355,20 @@ msgid "Relative time ranges" msgstr "" #: src/components/tools/TimeSerieChart.vue:110 +#: src/views/calendars/CalendarView.vue:46 +#: src/views/calendars/CalendarView.vue:172 msgid "Day" msgstr "" #: src/components/tools/TimeSerieChart.vue:111 +#: src/views/calendars/CalendarView.vue:49 +#: src/views/calendars/CalendarView.vue:173 msgid "Week" msgstr "" #: src/components/tools/TimeSerieChart.vue:112 +#: src/views/calendars/CalendarView.vue:52 +#: src/views/calendars/CalendarView.vue:174 msgid "Month" msgstr "" @@ -2365,7 +2385,7 @@ msgid "no" msgstr "" #: src/components/webmail/AttachmentsDialog.vue:3 -#: src/components/webmail/ComposeEmailForm.vue:27 +#: src/components/webmail/ComposeEmailForm.vue:40 msgid "Attachments" msgstr "" @@ -2373,26 +2393,38 @@ msgstr "" msgid "Attach" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:60 -#: src/components/webmail/ComposeEmailForm.vue:105 -#: src/components/webmail/ComposeEmailForm.vue:132 -msgid "Provide one or more addresses" +#: src/components/webmail/ComposeEmailForm.vue:28 +msgid "Schedule sending" msgstr "" #: src/components/webmail/ComposeEmailForm.vue:73 -#: src/components/webmail/ComposeEmailForm.vue:91 +#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:145 +msgid "Provide one or more addresses" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:86 +#: src/components/webmail/ComposeEmailForm.vue:104 msgid "Cc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:81 -#: src/components/webmail/ComposeEmailForm.vue:118 +#: src/components/webmail/ComposeEmailForm.vue:94 +#: src/components/webmail/ComposeEmailForm.vue:131 msgid "Bcc" msgstr "" -#: src/components/webmail/ComposeEmailForm.vue:278 +#: src/components/webmail/ComposeEmailForm.vue:300 +msgid "Email scheduled" +msgstr "" + +#: src/components/webmail/ComposeEmailForm.vue:301 msgid "Email sent" msgstr "" +#: src/components/webmail/ComposeEmailForm.vue:354 +msgid "You must provide one recipient at least" +msgstr "" + #: src/components/webmail/ContactCard.vue:15 msgid "Add to contacts" msgstr "" @@ -2405,56 +2437,94 @@ msgstr "" msgid "Contact added to address book" msgstr "" -#: src/components/webmail/EmailList.vue:63 +#: src/components/webmail/EmailList.vue:66 msgid "Mark as read" msgstr "" -#: src/components/webmail/EmailList.vue:68 +#: src/components/webmail/EmailList.vue:71 msgid "Mark as unread" msgstr "" -#: src/components/webmail/EmailList.vue:73 +#: src/components/webmail/EmailList.vue:76 msgid "Mark as followed" msgstr "" -#: src/components/webmail/EmailList.vue:78 +#: src/components/webmail/EmailList.vue:81 msgid "Mark as unfollowed" msgstr "" -#: src/components/webmail/EmailList.vue:84 +#: src/components/webmail/EmailList.vue:87 msgid "Empty mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:94 +#: src/components/webmail/EmailList.vue:97 msgid "on" msgstr "" -#: src/components/webmail/EmailList.vue:169 +#: src/components/webmail/EmailList.vue:127 +msgid "" +"Scheduled messages will be sent at the specified date and time. (visible on " +"the right)" +msgstr "" + +#: src/components/webmail/EmailList.vue:206 msgid "No message yet in this mailbox" msgstr "" -#: src/components/webmail/EmailList.vue:253 +#: src/components/webmail/EmailList.vue:221 +msgid "Sending failure" +msgstr "" + +#: src/components/webmail/EmailList.vue:281 +msgid "Reschedule" +msgstr "" + +#: src/components/webmail/EmailList.vue:328 +msgid "Scheduling updated" +msgstr "" + +#: src/components/webmail/EmailList.vue:339 +msgid "Scheduled canceled and message move to trash folder" +msgstr "" + +#: src/components/webmail/EmailList.vue:393 msgid "Message(s) deleted" msgstr "" -#: src/components/webmail/EmailList.vue:268 +#: src/components/webmail/EmailList.vue:408 msgid "Message(s) marked as junk" msgstr "" -#: src/components/webmail/EmailList.vue:282 +#: src/components/webmail/EmailList.vue:422 msgid "Message(s) marked as not junk" msgstr "" -#: src/components/webmail/EmailList.vue:297 +#: src/components/webmail/EmailList.vue:437 msgid "Message(s) flagged" msgstr "" -#: src/components/webmail/EmailList.vue:324 +#: src/components/webmail/EmailList.vue:464 msgid "%{count} message" msgid_plural "%{count} messages" msgstr[0] "" msgstr[1] "" +#: src/components/webmail/EmailSchedulingForm.vue:2 +msgid "Schedule your sending" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:15 +msgid "Select time" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:30 +msgid "Schedule" +msgstr "" + +#: src/components/webmail/EmailSchedulingForm.vue:68 +msgid "Provided time must be one minute from now at least" +msgstr "" + #: src/components/webmail/MailboxForm.vue:13 msgid "Parent mailbox" msgstr "" @@ -2475,7 +2545,7 @@ msgstr "" msgid "Mailbox created" msgstr "" -#: src/components/webmail/MailboxList.vue:165 +#: src/components/webmail/MailboxList.vue:172 msgid "Moving selection..." msgstr "" @@ -2491,12 +2561,12 @@ msgstr "" msgid "User's database" msgstr "" -#: src/layouts/account/AccountLayout.vue:27 +#: src/layouts/account/AccountLayout.vue:28 #: src/layouts/admin/AdminLayout.vue:123 msgid "Settings" msgstr "" -#: src/layouts/account/AccountLayout.vue:33 +#: src/layouts/account/AccountLayout.vue:34 msgid "Filters" msgstr "" @@ -2541,7 +2611,7 @@ msgid "Migrations" msgstr "" #: src/layouts/admin/AdminLayout.vue:136 src/views/admin/InformationView.vue:4 -#: src/views/calendars/CalendarView.vue:94 +#: src/views/calendars/CalendarView.vue:194 msgid "Information" msgstr "" @@ -2549,31 +2619,31 @@ msgstr "" msgid "Compose" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:45 +#: src/layouts/webmail/WebmailLayout.vue:54 msgid "Create a new mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:50 +#: src/layouts/webmail/WebmailLayout.vue:59 msgid "Edit this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:56 +#: src/layouts/webmail/WebmailLayout.vue:65 msgid "Delete this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:62 +#: src/layouts/webmail/WebmailLayout.vue:71 msgid "Compress this mailbox" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:185 +#: src/layouts/webmail/WebmailLayout.vue:196 msgid "Mailbox compressed" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:191 +#: src/layouts/webmail/WebmailLayout.vue:202 msgid "Delete this mailbox?" msgstr "" -#: src/layouts/webmail/WebmailLayout.vue:202 +#: src/layouts/webmail/WebmailLayout.vue:213 msgid "Mailbox deleted" msgstr "" @@ -2589,23 +2659,27 @@ msgstr "" msgid "Not a valid email" msgstr "" -#: src/plugins/rules.js:31 +#: src/plugins/rules.js:27 +msgid "Not a valid time" +msgstr "" + +#: src/plugins/rules.js:38 msgid "Field is required" msgstr "" -#: src/plugins/rules.js:36 +#: src/plugins/rules.js:43 msgid "Minimum length is %{ length }" msgstr "" -#: src/plugins/rules.js:41 +#: src/plugins/rules.js:48 msgid "Must be a numeric value or empty" msgstr "" -#: src/plugins/rules.js:43 +#: src/plugins/rules.js:50 msgid "Passwords mismatch" msgstr "" -#: src/plugins/rules.js:45 +#: src/plugins/rules.js:52 msgid "Invalid port number" msgstr "" @@ -2714,7 +2788,7 @@ msgstr "" msgid "Two-factor auth" msgstr "" -#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:23 +#: src/views/account/SettingsView.vue:15 src/views/webmail/EmailView.vue:18 msgid "Forward" msgstr "" @@ -2868,27 +2942,31 @@ msgstr "" msgid "Message history" msgstr "" -#: src/views/calendars/CalendarView.vue:85 +#: src/views/calendars/CalendarView.vue:14 +msgid "Today" +msgstr "" + +#: src/views/calendars/CalendarView.vue:185 msgid "My calendars" msgstr "" -#: src/views/calendars/CalendarView.vue:104 +#: src/views/calendars/CalendarView.vue:204 msgid "Access rules" msgstr "" -#: src/views/calendars/CalendarView.vue:248 +#: src/views/calendars/CalendarView.vue:536 msgid "Do you really want to delete this calendar?" msgstr "" -#: src/views/calendars/CalendarView.vue:259 +#: src/views/calendars/CalendarView.vue:546 msgid "Calendar deleted" msgstr "" -#: src/views/contacts/AddressBook.vue:3 src/views/contacts/AddressBook.vue:37 +#: src/views/contacts/AddressBook.vue:4 src/views/contacts/AddressBook.vue:41 msgid "Contacts" msgstr "" -#: src/views/contacts/AddressBook.vue:54 +#: src/views/contacts/AddressBook.vue:58 msgid "Add a category" msgstr "" @@ -2924,7 +3002,7 @@ msgstr "" msgid "Hide full headers" msgstr "" -#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:254 +#: src/views/quarantine/MessageView.vue:201 src/views/webmail/EmailView.vue:267 msgid "Message deleted" msgstr "" @@ -2936,35 +3014,39 @@ msgstr "" msgid "release requests" msgstr "" -#: src/views/webmail/EmailView.vue:12 +#: src/views/webmail/EmailView.vue:8 msgid "Reply" msgstr "" -#: src/views/webmail/EmailView.vue:19 +#: src/views/webmail/EmailView.vue:15 msgid "Reply all" msgstr "" -#: src/views/webmail/EmailView.vue:69 +#: src/views/webmail/EmailView.vue:63 msgid "Enable links" msgstr "" -#: src/views/webmail/EmailView.vue:74 +#: src/views/webmail/EmailView.vue:68 msgid "Disable links" msgstr "" -#: src/views/webmail/EmailView.vue:78 +#: src/views/webmail/EmailView.vue:72 msgid "Display source" msgstr "" -#: src/views/webmail/EmailView.vue:146 +#: src/views/webmail/EmailView.vue:145 +msgid "Message scheduled at:" +msgstr "" + +#: src/views/webmail/EmailView.vue:151 msgid "Message source" msgstr "" -#: src/views/webmail/EmailView.vue:268 +#: src/views/webmail/EmailView.vue:281 msgid "Message marked as junk" msgstr "" -#: src/views/webmail/EmailView.vue:282 +#: src/views/webmail/EmailView.vue:295 msgid "Message marked as not junk" msgstr "" diff --git a/modoboa/locale/br/LC_MESSAGES/django.po b/modoboa/locale/br/LC_MESSAGES/django.po index 5ac825f75..bb420a67a 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-06 11:16+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Breton (http://www.transifex.com/tonio/modoboa/language/br/)\n" @@ -51,14 +51,14 @@ msgid "Cannot be greater than domain quota" msgstr "N'hall ket bezañ brasoc'h evit kota an domani" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Aotreadur nac'het" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Rekis eo leuniañ ar vaezienn" @@ -67,7 +67,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "Listenn domanioù meret (eilgwerzherien ha merourien zomani hepken)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Neket aotreet evit ar rol-mañ." @@ -75,13 +75,12 @@ msgstr "Neket aotreet evit ar rol-mañ." 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:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Ar vaezienn-mañ a zo rekiset." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "N'eus ket eus an domani lec'hel {}" @@ -124,41 +123,41 @@ msgstr "N'hallit ket termeniñ ur c'hota divevenn" msgid "User '%s' already exists" msgstr "An implijer \"%s\" a zo anezhañ endeo" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Rankout a ra bezañ un anterin pozitivel" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Neket bet kavet an domani." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Termeniñ da vihanañ ur rouedad / chomlec'h aotreet" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, 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:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -275,19 +274,29 @@ msgstr "Enaouiñ ar gwiriañ DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Gwiriañ a ra kement domani ouzh ar bourvezerien DNSBL pennañ" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Servijer DNS personnel" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Kavlec'h stokiñ an alc'hwezioù DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -297,19 +306,19 @@ msgstr "" "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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Ment dre-ziouer un alc'hwez DKIM" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Kota domani dre-ziouer" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -317,28 +326,28 @@ msgstr "" "Kota dre-ziouer (e Mo) arloet d'an domanioù krouet hep talvoudegezh spisaet. " "Un dalvoudegezh 0 a dalvez n'eus kota ebet." -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Kota domani dre-ziouer" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Boest-posteloù" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Merañ ar voest-posteloù war restr-sistem" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -346,11 +355,11 @@ msgstr "" "Adenvel pe zilemel boest-posteloù war ar restr-sistem pa vezont adanvet pe " "dilamet diwar Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Kota boest-posteloù dre-ziouer" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created domains with no " @@ -362,75 +371,75 @@ 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:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Kota boest-posteloù dre-ziouer" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Em-dilamadur kont" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Em-grouidigezh domani/boest-postel" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Krouiñ un alias pa vez adanvet ur voest-posteloù" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Krouiñ un alias en ur implijout ar chomlec'h pa vez adanvet ar voest-" "posteloù." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Melestradurezh" @@ -452,6 +461,39 @@ msgstr "" msgid "Closed" msgstr "Serriñ" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain {} has no MX record" +msgid "Domain has no MX record" +msgstr "An domani {} n'eus enrolladenn MX ebet gantañ" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "An domani {} n'eus enrolladenn MX ebet gantañ" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "MX records of {}" +msgid "Invalid MX record: {}" +msgstr "Enrolladennoù MX eus {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] kudenn(où) MX evit an domani {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] Kudenn(où) DNSBL gant an domani {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "alias an domani" @@ -474,8 +516,8 @@ msgstr "N'hoc'h ket aotreet da emporzhiañ domanioù" msgid "You are not allowed to import domain aliases." msgstr "N'hoc'h ket aotreet da emporzhiañ aliasoù domani." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" @@ -487,11 +529,11 @@ msgstr "Enrolladenn DNS ebet kavet evit %s" msgid "No %(type)s record for %(name)s" msgstr "Enrolladenn MX ebet evit %s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "N'eus bet kavet anv servijer ebet hag az afe en-dro" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -548,39 +590,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa " -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Domain {} has no MX record" -msgid "Domain has no MX record" -msgstr "An domani {} n'eus enrolladenn MX ebet gantañ" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "An domani {} n'eus enrolladenn MX ebet gantañ" - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "MX records of {}" -msgid "Invalid MX record: {}" -msgstr "Enrolladennoù MX eus {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] kudenn(où) MX evit an domani {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] Kudenn(où) DNSBL gant an domani {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Neket bet kavet an domani." @@ -783,17 +792,17 @@ msgstr "" "Modoboa a zo bet diguzhet gantañ ne oa tamm enrolladenn MX reizh gant an " "domani %(domain)s:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Enrolladenn MX ebet evit %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Stumm chomlec'h IP direizh evit %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -998,13 +1007,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display details" msgid "Display" msgstr "Diskouez ar munudoù" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1288,7 +1297,7 @@ msgstr "Merour an domani" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "A-bep seurt" @@ -1306,11 +1315,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "Neket termenet lec'hiadur ho servijer, reizhit an dra-se mar plij." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1397,7 +1406,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1411,24 +1420,20 @@ msgstr "" msgid "Local" msgstr "Lec'hel" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Profil implijer" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Sintaks direizh" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Niveroù ront direizh" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1459,37 +1464,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Postel" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "O vezañ anavezet" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Doare anavezadur" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Drekleur implijet evit bezañ anavezet" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Ger-tremen dre ziouer ar brastres" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Brastres implijet evit enrinegañ gerioù-tremen ar postelerezh" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Troiadoù" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1497,149 +1502,149 @@ 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Ger-tremen dre-ziouer" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Ger-tremen dre-ziouer evit ar gontoù em-grouet." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Hirder dre-zegouezh ger-tremen" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Hirder ar gerioù-tremen em-c'hanet." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Hirder ar gerioù-tremen em-c'hanet." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Chomlec'h ar servijer" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Porzh ar servijer" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Niverenn borzh TCP implijet gant ar servijer LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Ober gant ur gevreadenn suraet" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Kavlec'h oberiant" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Strolladoù merañ" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1647,47 +1652,47 @@ 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:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Doare ar strollad" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Diazez klask ar strolladoù" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Perzhioù ar ger-tremen" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Ar perzhioù implijet evit stokiñ ar gerioù-tremen implijer" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Doare dilesañ" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Dibabit an doare anavezadur da vezañ implijet" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Liammañ DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1695,29 +1700,29 @@ 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:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Liammañ ur ger-tremen" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Diazez enklask an implijerien" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Sil klask" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1725,11 +1730,11 @@ msgstr "" "Ur chadenn sil diret (d.sk. '(objedKlas = person)'). Evit bezañ reizh, e " "rank bezañ enklozet etre krommelloù." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Patrom implijer DN" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1738,236 +1743,236 @@ 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Taolenn-stur" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom welcome message" msgstr "Froud RSS personel" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Froud RSS personel" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Kuzhat an arc'hweladurioù objed" -#: core/app_settings.py:519 +#: core/app_settings.py:507 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:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Eil chomlec'h postel" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Kemennadennoù" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Chomlec'h ar c'haser" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Chomlec'h postel implijet da gas kemmennoù." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "API foran" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Enaouiñ ar c'hehentiñ" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Em-wiriañ ma vez ur stumm nevez hegerz" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Klask stummoù nevez" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Kas statistikoù" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Treuzoù ar c'hontoù dioberiant" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Treuzoù ar c'hontoù dioberiant" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1975,46 +1980,38 @@ 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:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Padelezh etre ar c'hemennoù gwiriañ pennañ" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Padelezh etre div gwiriadenn gemennoù pennañ (en eilennoù)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Oad enrollañ maksimom ar marilhoù" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Oad brasañ e devezhioù un enrollodenn renabl" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Elfennoù dre bajenn" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Niver a elfennoù diskouezet dre bajenn" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Adhenchañ pennañ dre-ziouer" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2368,7 +2365,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Hini ebet" @@ -3337,7 +3334,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Sujed" @@ -3598,24 +3595,24 @@ msgstr "" msgid "SMTP settings" msgstr "Arventennoù LDAP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Ober gant ur gevreadenn suraet" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3630,113 +3627,119 @@ msgstr "Doare dilesañ" msgid "Server needs authentication" msgstr "Doare dilesañ" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "DNS settings" +msgid "Scheduling settings" +msgstr "Arventennoù DNS" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 #, fuzzy #| msgid "Create aliases" msgid "Folders" msgstr "Krouiñ aliasoù" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 #, fuzzy #| msgid "Create aliases" msgid "Trash folder" msgstr "Krouiñ aliasoù" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 #, fuzzy #| msgid "Create aliases" msgid "Sent folder" msgstr "Krouiñ aliasoù" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 #, fuzzy #| msgid "Create aliases" msgid "Drafts folder" msgstr "Krouiñ aliasoù" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Create aliases" msgid "Junk folder" msgstr "Krouiñ aliasoù" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "Message" msgid "Composing messages" msgstr "Kemennadenn" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Adhenchañ pennañ dre-ziouer" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3751,47 +3754,72 @@ msgstr "Chomlec'h ar servijer" msgid "Failed to remove attachment: " msgstr "N'heller ket adsevel lec'hiadur ar voest-posteloù (%s)" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Deiziad" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "Message" msgid "Original message" msgstr "Kemennadenn" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Create aliases" msgid "Drafts" msgstr "Krouiñ aliasoù" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Profil implijer" + +#~ msgid "Default top redirection" +#~ msgstr "Adhenchañ pennañ dre-ziouer" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet" diff --git a/modoboa/locale/cs/LC_MESSAGES/django.po b/modoboa/locale/cs/LC_MESSAGES/django.po index e58475127..727067fea 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: Tydýt _, 2023\n" "Language-Team: Czech (https://www.transifex.com/tonio/teams/13749/cs/)\n" @@ -45,14 +45,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -61,7 +61,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -69,13 +69,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -116,39 +115,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -240,141 +239,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -394,6 +403,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -416,8 +454,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -427,11 +465,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -483,35 +521,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -688,17 +697,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -867,11 +876,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1116,7 +1125,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1134,11 +1143,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1217,7 +1226,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1229,24 +1238,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1271,525 +1276,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2122,7 +2119,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3002,7 +2999,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3228,19 +3225,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3252,95 +3249,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3354,43 +3355,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "Nepodařilo se vytvořit LDAT účet: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 0833fb493..34fbd807f 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-06 11:16+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/" @@ -49,14 +49,14 @@ msgid "Cannot be greater than domain quota" msgstr "Nemůže být vyšší než kvóta domény" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Přístup zamítnut." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Toto pole je vyžadováno" @@ -65,7 +65,7 @@ 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:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Není povoleno pro tuto roli." @@ -73,13 +73,12 @@ msgstr "Není povoleno pro tuto roli." msgid "Must be equal to mailbox full_address" msgstr "Musí být rovno hodnote schránky celá_adresa" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Toto pole je vyžadováno." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Lokální doména {} neexistuje" @@ -122,41 +121,41 @@ msgstr "Neomezená kvóta nelze definovat." msgid "User '%s' already exists" msgstr "Uživatel '%s' již existuje" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Musí se jednat o kladné číslo" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Složka nenalezena." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Definujte alespoň jednu autorizovanou síť / adresu" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, 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:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -272,19 +271,29 @@ msgstr "Povolit DNSBL kontroly" 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:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Vlastní DNS server" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Složka pro uložení DKIM klíčů" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -294,19 +303,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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Výchozí délka DKIM klíče" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Výchozí kvóta domény" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -314,28 +323,28 @@ 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:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Výchozí kvóta domény" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Schránky" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Spravovat schránky v souborovém systému" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -343,11 +352,11 @@ 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:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Výchozí kvóta schránky" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created domains with no " @@ -360,75 +369,75 @@ msgstr "" "které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou " "kvótu." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Výchozí kvóta schránky" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Automatické odstranění účtu" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Automatické vytvoření domény/schránky" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 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:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Vytvořit alias použitím původní adresy, pokud je mailová schránka " "přejmenována." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Správa" @@ -450,6 +459,39 @@ msgstr "" msgid "Closed" msgstr "Zavřít" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain {} has no MX record" +msgid "Domain has no MX record" +msgstr "Doména {} nemá MX záznam" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Doména {} nemá MX záznam" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "MX records of {}" +msgid "Invalid MX record: {}" +msgstr "MX záznamy pro {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "MX záznam pro doménu {0} je neplatný: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX problém(y) pro doménu {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL problém(y) pro doménu {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "doménový alias" @@ -472,8 +514,8 @@ msgstr "Nemáte oprávnění pro import domén" msgid "You are not allowed to import domain aliases." msgstr "Nemáte oprávnění pri import doménových aliasů" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" @@ -485,11 +527,11 @@ msgstr "Nenalezeny žádné DNS záznamy pro %s" msgid "No %(type)s record for %(name)s" msgstr "Žádný MX záznam pro %s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Nenalezeny žádné funkční DNS servery" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "Vypršel časový limit DNS požadavku, nelze získat %s v tuto chvíli" @@ -543,39 +585,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Povolit komunikaci s veřejným Modoboa API rozhraním" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Domain {} has no MX record" -msgid "Domain has no MX record" -msgstr "Doména {} nemá MX záznam" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Doména {} nemá MX záznam" - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "MX records of {}" -msgid "Invalid MX record: {}" -msgstr "MX záznamy pro {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "MX záznam pro doménu {0} je neplatný: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX problém(y) pro doménu {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL problém(y) pro doménu {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Doména nebyla nalezena." @@ -772,17 +781,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa zjistilo, že doména %(domain)s nemá platný MX záznam:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Žádný MX záznam pro %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Neplatný formát IP adresy pro %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -986,13 +995,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display details" msgid "Display" msgstr "Zobrazení" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1286,7 +1295,7 @@ msgstr "Správce domény" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Různé" @@ -1304,11 +1313,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1393,7 +1402,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1407,24 +1416,20 @@ msgstr "" msgid "Local" msgstr "Lokální" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Uživatelský profil" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Neplatná syntaxe" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Neplatný počet cyklů" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1455,37 +1460,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Ověření" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Typ ověření" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Rozhraní pro ověřování přístupu" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Výchozí schéma hesel" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Použité schéma pro šifrování hesel schránek" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Počet cyklů" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1493,147 +1498,147 @@ 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Výchozí heslo" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Výchozí heslo pro automaticky vytvořené účty." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Délka náhodného hesla" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Počet znaků náhodně vygenerovaných hesel." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Počet znaků náhodně vygenerovaných hesel." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Adresa serveru" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "IP adresa DNS jména LDAP serveru" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Port serveru" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Port TCP, který používá LDAP server" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Použít zabezpečené připojení" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Správcovské skupiny" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1641,47 +1646,47 @@ 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:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Typ skupiny" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Typ LDAP skupiny " -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Základna struktury skupin" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atribut hesla" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Atribut používaný pro ukládání hesel uživatelů" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Metoda ověření" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Zvolte si metodu ověření, která se použije" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Spojení pomocí DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1689,29 +1694,29 @@ 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:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Heslo spojení" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Základna struktury uživatelů" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Vyhledávací filtr" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1719,11 +1724,11 @@ msgstr "" "Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je " "nezbytné jen uzavřít do závorek." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Šablona uživatelského DN" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1732,234 +1737,234 @@ 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Plocha" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Vlastní zpráva" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "A custom message that will appear at the end of documents" msgid "A welcome message that will be displayed instead the default one" msgstr "Vlastní zpráva, která se zobrazí na konci dokumentu." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Vlastní RSS zdroj" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "Zobrazit vlastní RSS zdroj distributorům a správcům domény" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "Zobrazit vlastní RSS zdroj distributorům a správcům domény" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Skrýt widget funkcí" -#: core/app_settings.py:519 +#: core/app_settings.py:507 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:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Sekundární email" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Oznámení" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Adresy odesílatele" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Emailová adresa používaná k zasílání upozornění" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Veřejné API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Povolit komunikaci" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Automaticky kontrolovat dostupnost nové verze" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Zkontrolovat verzi" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Příjemce" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Odoslat statistiky" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Počet dnů pro neaktivní účet" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Počet dnů pro neaktivní účet" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1967,48 +1972,38 @@ 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:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Interval aktualizací upozornění" -#: core/app_settings.py:710 +#: core/app_settings.py:698 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:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maximální stáří záznamu" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Maximální stáří záznamu ve dnech" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Položek na stránce" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Počet zobrazených položek na stránce" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Výchozí přesměrování aplikace" - -#: core/app_settings.py:748 -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/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2351,7 +2346,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Nic" @@ -3344,7 +3339,7 @@ msgstr "je" msgid "is not" msgstr "není" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Předmět" @@ -3605,25 +3600,25 @@ msgstr "" msgid "SMTP settings" msgstr "Nastavení SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of your SMTP server" msgstr "Adresa vašeho SMTP serveru" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Režim zabezpečeného připojení" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3640,109 +3635,115 @@ msgstr "Ověření vyžadováno" msgid "Server needs authentication" msgstr "Server vyžaduje ověření" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Connection settings" +msgid "Scheduling settings" +msgstr "Nastavení ManageSieve" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Výchozí režim zobrazení zprávy" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Povolit zobrazení HTML odkazů" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Povolit/Zakázat zobrazení HTML odkazů" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Automatické obnovení stránky" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Šířka kontejneru složky" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "Šířka kontejneru seznamu složek" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Složky" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Složka koše" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "Složka pro smazané zprávy" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Složka odeslané pošty" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Složka pro kopie odeslaných zpráv" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Složka konceptů" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Složka pro koncepty zpráv" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Sent folder" msgid "Junk folder" msgstr "Složka pro spam" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, 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 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Vytváření zpráv" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Výchozí editor" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Text podpisu" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Emailový podpis uživatele" @@ -3758,47 +3759,74 @@ msgstr "Adresa serveru" msgid "Failed to remove attachment: " msgstr "Nebylo možné odstranit přílohu:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Datum" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Všechny zprávy" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Nebylo možné zjistit hierarchický oddělovač" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Doručená pošta" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Drafts folder" msgid "Drafts" msgstr "Koncepty" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "Nevyžádaná pošta" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Odeslaná pošta" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Koš" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Příloha je příliš velká (omezení: %s)" + +#~ msgid "User profile" +#~ msgstr "Uživatelský profil" + +#~ msgid "Default top redirection" +#~ msgstr "Výchozí přesměrování aplikace" + +#~ 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" diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po index b137e0542..14e9618ea 100644 --- a/modoboa/locale/de/LC_MESSAGES/django.po +++ b/modoboa/locale/de/LC_MESSAGES/django.po @@ -52,7 +52,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: Gerhard Adler , 2025\n" "Language-Team: German (http://app.transifex.com/tonio/modoboa/language/de/)\n" @@ -90,14 +90,14 @@ msgid "Cannot be greater than domain quota" msgstr "Kann nicht größer als Domain Kontingent sein" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Zugriff verweigert." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" @@ -107,7 +107,7 @@ msgid "" msgstr "" "Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Nicht erlaubt für diese Rolle." @@ -115,13 +115,12 @@ msgstr "Nicht erlaubt für diese Rolle." msgid "Must be equal to mailbox full_address" msgstr "Muss mit mailbox full_address übereinstimmen" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Dieses Feld ist erforderlich" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Lokale Domain {} existiert nicht." @@ -162,41 +161,41 @@ msgstr "Ein unlimitiertes Kontingent ist nicht möglich." msgid "User '%s' already exists" msgstr "Benutzer %s existiert bereits" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Muss eine positive Ganzzahl sein" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Verzeichnis nicht gefunden." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 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:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "Bitte IMAP Migration deaktivieren bevor Sie diese Option deaktivieren." -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" "Der linke Teil einer E-Mail-Adresse darf nicht mehr als 64 Zeichen lang " "sein. " -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "Zum Erstellen von Aliassen ist ein Postfach erforderlich." -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "Unbekannter Status" @@ -292,19 +291,29 @@ msgstr "Aktiviere DNSBL-Prüfungen" msgid "Check every domain against major DNSBL providers" msgstr "Prüfe jede Domain gegen die wichtigsten DNSBL-Anbieter" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Benutzerdefinierter DNS Server" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" msgstr "eigener DNS-Server umgeht die lokale Namensauflösung" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Verzeichnis für DKIM-Keys" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -313,19 +322,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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "voreingestellte DKIM Schlüssellänge" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Standard-Domainquota" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -333,11 +342,11 @@ msgstr "" "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " "Der Wert 0 bedeutet „Keine Quota“" -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Standard Domänen-Sendelimit" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -345,16 +354,16 @@ msgstr "" "Anzahl der Nachrichten, die neu erstellte Domänen pro Tag senden dürfen. " "Leer lassen für kein Limit." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "E-Mail-Postfächer" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Postfächer im Dateisystem verwalten" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -362,11 +371,11 @@ msgstr "" "Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa " "umbenannt oder entfernt werden" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Standard Postfach Kontingent" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." @@ -375,11 +384,11 @@ msgstr "" "Angabe eines Wertes angewendet wird. Ein Wert von 0 bedeutet keine " "Begrenzung." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Standard-Postfach-Versandlimit" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -387,64 +396,64 @@ msgstr "" "Anzahl der Nachrichten, die neu erstellte Postfächer pro Tag senden dürfen. " "Leer lassen für keine Begrenzung." -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Automatische Konto-Entfernung" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Automatische Domain- /Postfach-Erstellung" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Erzeuge Alias, wenn Mailbox umbenannt wird." -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "Alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Verwaltung" @@ -464,6 +473,35 @@ msgstr "Geöffnete" msgid "Closed" msgstr "Geschlossen" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} gelistet durch DNSBL-Anbieter {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Die Domain hat kein MX-Eintrag" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Domain {} hat keinen MX-Eintrag" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Falscher MX-Eintrag: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX Problem(e) für Domain {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL Problem(e) für Domain {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "Domain-Alias" @@ -487,8 +525,8 @@ msgid "You are not allowed to import domain aliases." msgstr "" "Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Kein DNS Eintrag für %s gefunden" @@ -498,11 +536,11 @@ msgstr "Kein DNS Eintrag für %s gefunden" msgid "No %(type)s record for %(name)s" msgstr "Kein %(type)s Eintrag für %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Keine funktionierenden Namensserver gefunden" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "DNS Error bei der Auflösung, konnte %s nicht auflösen" @@ -556,35 +594,6 @@ msgstr "Der private DKIM-Schlüssel konnte nicht erzeugt werden" msgid "Failed to generate DKIM public key" msgstr "Der öffentliche DKIM-Schlüssel konnte nicht erzeugt werden" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} gelistet durch DNSBL-Anbieter {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Die Domain hat kein MX-Eintrag" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Domain {} hat keinen MX-Eintrag" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Falscher MX-Eintrag: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX Problem(e) für Domain {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL Problem(e) für Domain {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domain nicht gefunden." @@ -776,17 +785,17 @@ msgstr "" "Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag " "vorliegt:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Kein MX Eintrag für %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Ferhlerhaftes IP-Adressformat für %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "Kein AAAA-Eintrag für %s" @@ -998,11 +1007,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "Darstellung" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "Anzahl dargestellter Nachrichten pro Seite" @@ -1281,7 +1290,7 @@ msgstr "" "Domänenadministratoren erlauben, Benutzerkalender zu verwalten (Lesen und " "Schreiben)" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Verschiedenes" @@ -1301,12 +1310,12 @@ msgstr "" msgid "Calendars" msgstr "Kalender" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" "Der Serverstandort ist nicht festgelegt. Bitte beheben Sie das Problem." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "Hochgeladene Datei ist zu groß (max: {} Bytes)" @@ -1389,7 +1398,7 @@ msgstr "" "Fehlgeschlagener Versuch die TFA-Einstellungen von '%(addr)s' als Benutzer " "'%(user)s' zu bearbeiten" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "Ungültiges Passwort" @@ -1401,24 +1410,20 @@ msgstr "2-Faktor-Authentifizierung ist nicht aktiviert" msgid "Local" msgstr "Lokal" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Benutzername" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Ungültiger Syntax" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Ungültige Zahl für Runden" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Dieser Code ist Falsch" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" "Bitte benutze den folgenden Code um das Modoboa Passwort wiederherzustellen: " @@ -1447,35 +1452,35 @@ msgid "Calendar" msgstr "Kalender" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Authentifizierung" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Authentifizierungstyp" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Backend für die Authentifizierung" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Standard-Passwortschema" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Verschlüsselungsschema der Postfach-Passwörter" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Runden" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1483,45 +1488,45 @@ msgstr "" "Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl " "muss zwischen 1000 und 999999999 liegen." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Aktualisiere das Passwortschema beim Anmelden" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Standardpasswort" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Standardpasswort für automatisch erstellte Accounts." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Zufällige Passwortlänge" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Länge von zufällig generierten Passwörtern" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "Sonderzeichen für zufällige Passwörter zulassen" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "Sonderzeichen in zufällig generierten Passwörtern aktivieren." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Aktualisiere Passwort-Service-URL" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1531,107 +1536,107 @@ msgstr "" "Diese Einstellung trifft nur auf nicht lokale Benutzer zu, z.B: Benutzer die " "nach erfolgreicher externer Authentifizierung angelegt wurden (LDAP, SMTP)." -#: core/app_settings.py:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Ankündigung zur Passwort-Wiederherstellung" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Aktiviere die Passwortwiederherstellung per SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS Anbieter" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Wähle einen Anbieter für das verschicken der Wiederherstellungs-SMS" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "LDAP" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Server-Adresse" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "IP-Adresse oder Hostname des LDAP-Servers" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Server-Port" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Der TCP Port des LDAP-Servers" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Aktiviere Ausfallsserver (Fallback)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Ausfallsserver-Adresse" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Ausfallsserver-Port" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "Der TCP Port des sekundären LDAP-Servers" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Benutze eine sichere Verbindung" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Administrator-Gruppen" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1639,75 +1644,75 @@ msgstr "" "Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren " "angelegt werden. Nutzen Sie ';', um Gruppen zu separieren." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Gruppentyp" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Gruppen Search Base" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Passwort-Attribut" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Das Attribut für Benutzerpasswörter" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP Authentifizierungseinstellungen" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Authentifizierungsmethode" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Wählen Sie die Authentifizierungsmethode" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 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:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Bind Passwort" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Benutzer Search Base" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Suchfilter" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1715,11 +1720,11 @@ msgstr "" "Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss " "entsprechend der LDAP-Konvention in Klammern gesetzt werden." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Vorlage für User DN" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1728,26 +1733,26 @@ msgstr "" "Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s " "enthalten." -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP Synchronisations Einstellungen" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Export zu LDAP aktivieren" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" "Automatische Synchronisation zwischen lokaler Datenbank und LDAP Verzeichnis " "aktivieren" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1755,11 +1760,11 @@ msgstr "" "Remote LDAP Benutzer löschen wenn lokaler Benutzer gelöscht wird, ansonsten " "wird der Benutzer deaktiviert." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Vorlage für User DN" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1768,92 +1773,92 @@ 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Import von LDAP aktivieren" -#: core/app_settings.py:414 +#: core/app_settings.py:402 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:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Benutzernamenattribut" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Dovecot LDAP-Synchronisation aktivieren" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" "LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration " "angewendet." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP-Konfigurationsdatei" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "Speicherort der Dovecot-Konfigurationsdatei für LDAP-Einstellungen." -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Dashboard" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "Individuelle Willkommensnachricht" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" "Eine Willkommensnachricht, die anstelle der Standardnachricht angezeigt wird" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Benutzerdefinierter RSS Feed" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "Superadmin individuellen RSS Feed anzeigen" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "Individuellen RSS Feed auch für Superadmins anzeigen" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Verberge Funktionen Werkzeug" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" "Verberge Funktionen Werkzeug für Wiederverkäufer und Domain-Administratoren." -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "Theme" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "Primäre Themefarbe" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" @@ -1861,23 +1866,23 @@ msgstr "" "Primärfarbe des Themes (Hexadezimalcode), wird z.B. als Hintergrundfarbe des " "linken Menüs verwendet" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "Primäre Themefarbe (helle Version)" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "Primärfarbe des Themes (Hexadezimalcode)" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "Primäre Themefarbe (dunklere Version)" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "Sekundäre Themefarbe" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" @@ -1885,75 +1890,75 @@ msgstr "" "Sekundärfarbe des Themes (Hexadezimalcode), wird z.B. als Hintergrundfarbe " "einiger Buttons verwendet" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "Etikettentheme Farbe" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "Themefarbe für Etiketten (Hexadezimalcode)" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Benachrichtigungen" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Absenderadresse" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "E-Mail Adresse für das Senden von Benachrichtigungen." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Öffentliche API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Verbindung aktivieren" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Prüft automatisch ob eine neuere Version verfügbar ist." -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Prüfe auf neue Versionen" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Sende eine Email wenn eine neue Version gefunden wurde" -#: core/app_settings.py:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Empfänger" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Empfänger für die Benachrichtigungsemail für eine neue Version" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Sende Statistiken" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "Verfolgung inaktiver Konten aktivieren" -#: core/app_settings.py:686 +#: core/app_settings.py:674 msgid "" "Allow the administrator to set a threshold (in days) beyond which an account " "is considered inactive if the user hasn't logged in" @@ -1962,11 +1967,11 @@ msgstr "" "festzulegen, ab dem ein Konto als inaktiv gilt, wenn sich der Benutzer nicht " "angemeldet hat." -#: core/app_settings.py:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Schwellwert für inaktive Konten" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1974,46 +1979,38 @@ 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:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Benachrichtigungs-Prüfintervall" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maximales Alter für Log-Einträge" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "Aufbewahrungsdauer im Nachrichtenverlauf" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "Aufbewahrungszeit (in Tagen) einer Nachricht im Nachrichtenverlauf" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Einträge pro Seite" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Anzahl dargestellter Einträge pro Seite" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Standardumleitung" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2354,7 +2351,7 @@ msgid "Not resolved" msgstr "Nicht aufgelöst" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Nichts" @@ -3302,7 +3299,7 @@ msgstr "ist" msgid "is not" msgstr "ist nicht" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Betreff" @@ -3546,19 +3543,19 @@ msgstr "Maximale Größe für Anhänge in Bytes (oder KB, MB, GB wenn angegeben) msgid "SMTP settings" msgstr "SMTP-Einstellungen" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "Adresse Ihres SMTP-Servers" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "Gesicherter Verbindungsaufbau" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "Gesicherte Verbindung für Zugriff auf SMTP-Server verwenden" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "Port auf dem der SMTP-Server lauscht" @@ -3570,97 +3567,103 @@ msgstr "Anmeldung erforderlich" msgid "Server needs authentication" msgstr "Server erfordert Authentifizierung" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Server settings" +msgid "Scheduling settings" +msgstr "Server Einstellungen" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Standard-Betrachtungsmodus für Nachrichten" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "Der Standard-Modus zum Betrachten einer Nachricht" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Aktiviere Darstellung von HTML-Links" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Aktiviere/Deaktiviere Darstellung von HTML-Links" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Aktualisierungsintervall für Liste" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "AutoAktualisier Rate der Auflistung (in Sekunden)" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Breite des Postfachcontainers" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "Die Breite der Postfach-Liste" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Verzeichnisse" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Papierkorb" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Ordner, in dem gelöschte Nachrichten abgelegt werden" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Gesendete Nachrichten" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Ordner, in den Kopien gesendeter Nachrichten gehen" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Entwürfe" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Ordner für Entwürfe" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "Junk Ordner" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "Ordner, in den Junk-Nachrichten gehen sollten" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "Nachrichten erstellen" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "Standard-Editor" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "Der Standard-Editor zum Erstellen einer Nachricht" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Signatur" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Benutzerdefinierte E-Mail-Signatur" @@ -3672,43 +3675,68 @@ msgstr "Server-Antwort" msgid "Failed to remove attachment: " msgstr "Konnte Anhang nicht entfernen:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "schrieb:" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Datum" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "Ursprüngliche Nachricht" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Hierarchietrennzeichen konnte nicht abgerufen werden" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Posteingang" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "Entwürfe" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "SPAM" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Gesendet" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Papierkorb" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Anhang ist zu groß (Limit: %s)" + +#~ msgid "User profile" +#~ msgstr "Benutzername" + +#~ msgid "Default top redirection" +#~ msgstr "Standardumleitung" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" diff --git a/modoboa/locale/de_DE/LC_MESSAGES/django.po b/modoboa/locale/de_DE/LC_MESSAGES/django.po index 0339ba336..cea177b40 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: bdaniel93, 2023\n" "Language-Team: German (Germany) (http://www.transifex.com/tonio/modoboa/" @@ -46,16 +46,16 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 #, fuzzy #| msgid "Permission denied" msgid "Permission denied." msgstr "Zugriff verweigert" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" @@ -66,7 +66,7 @@ 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:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -74,15 +74,14 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 #, fuzzy #| msgid "This field is required" msgid "This field is required." msgstr "Dieses Feld ist erforderlich" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -125,39 +124,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown tag {}" msgid "Unknown status" @@ -267,145 +266,155 @@ msgstr "API-Zugriff aktivieren" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom DNS server" msgstr "Benutzerdefinierter RSS-Feed" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" msgstr "" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 #, fuzzy #| msgid "Inactive account threshold" msgid "Automatic account removal" msgstr "Schwellwert für inaktive Konten" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 #, fuzzy #| msgid "Administrator groups" msgid "Administration" @@ -431,6 +440,39 @@ msgstr "" msgid "Closed" msgstr "Schließen" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Not an SPF record" +msgid "Domain has no MX record" +msgstr "Kein SPF-Eintrag" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "Invalid code" +msgid "Invalid MX record: {}" +msgstr "Ungültiger Code" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -453,8 +495,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -464,11 +506,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -523,39 +565,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Aktivieren Sie die Kommunikation mit der öffentlichen API von Modoboa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Not an SPF record" -msgid "Domain has no MX record" -msgstr "Kein SPF-Eintrag" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "Invalid code" -msgid "Invalid MX record: {}" -msgstr "Ungültiger Code" - -#: admin/management/commands/subcommands/_mx.py: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:43 msgid "Domain not found." msgstr "" @@ -751,17 +760,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No mechanism found" msgid "No AAAA record for %s" @@ -965,11 +974,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1246,7 +1255,7 @@ msgstr "Domain-Administrator" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Verschiedenes" @@ -1264,11 +1273,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1353,7 +1362,7 @@ msgstr "2FA ist bereits aktiviert" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1367,24 +1376,20 @@ msgstr "2FA ist nicht aktiviert" msgid "Local" msgstr "Lokal" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Benutzerprofil" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Ungültige Syntax" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Ungültige Anzahl Runden" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Dieser Code ist ungültig" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" "Bitte verwenden Sie den folgenden Code, um Ihr Modoboa-Passwort " @@ -1415,35 +1420,35 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Authentifizierung" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Authentifizierungstyp" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Das Backend für Authentifizierung" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Voreingestelltes Passwort-Schema" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Schema zur Verschlüsselung von Postfach-Passwörtern" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Runden" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1451,47 +1456,47 @@ msgstr "" "Anzahl an Runden (nur von sha256crypt und sha512crypt genutzt). Muss " "zwischen 1000 und 999999999 liegen, inklusive." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Passwort-Schema beim Login updaten" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Standardpasswort" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Standardpasswort für automatisch kreierte Konten" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Zufällige Passwortlänge" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Länge der zufällig generierten Passwörter." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Länge der zufällig generierten Passwörter." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "URL des Kennwortdienstes aktualisieren" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1501,109 +1506,109 @@ msgstr "" "können. Betrifft nur nicht lokale Benutzer, die nach einer erfolgreichen " "externen Authentifizierung (LDAP, SMTP) automatisch erstellt wurden." -#: core/app_settings.py:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Ankündigung zur Passwortwiederherstellung" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Passwortwiederherstellung per SMS aktivieren" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS-Anbieter" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" "Wählen Sie einen Anbieter für den Versand von SMS zur " "Kennwortwiederherstellung" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Serveradresse" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "IP-Adresse oder Hostname des LDAP-Servers" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Server Port" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Der TCP Port des LDAP-Servers" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Aktiviere Ausfallserver (Fallback)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Ausfallserver-Adresse" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Ausfallserver-Port" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "Der TCP Port des zweiten LDAP-Servers" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Verwende eine gesicherte Verbindung" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Administratorgruppen" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1611,49 +1616,49 @@ msgstr "" "Mitglieder dieser LDAP-POSIX-Gruppen werden als Domänenadministratoren " "erstellt. Nutze ';' um Gruppen zu trennen." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Gruppentyp" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Suchbasis für Gruppen" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Kennwortattribut" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Das Attribut, das zum Speichern von Benutzerpasswörtern verwendet wird" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP-Authentifizierungseinstellungen" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Authentifizierungsmethode" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Wählen Sie die Authentifizierungsmethode" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1661,31 +1666,31 @@ 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:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Bind Passwort" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Suchbasis für Benutzer" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Suchfilter" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1693,11 +1698,11 @@ msgstr "" "Ein optionaler Filter (z.B. '(objectClass=person)'). Der Filter muss " "entsprechend der LDAP-Konvention in Klammern gesetzt werden." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Benutzer-DN-Vorlage" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1706,26 +1711,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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP-Synchronisationseinstellungen" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Export zu LDAP aktivieren" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" "Automatische Synchronisierung zwischen lokaler Datenbank und LDAP-" "Verzeichnis aktivieren" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1733,11 +1738,11 @@ msgstr "" "Remote-LDAP-Konto löschen, wenn lokales Konto gelöscht wird, ansonsten wird " "es deaktiviert." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Konto-DN-Vorlage" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1746,54 +1751,54 @@ 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Import von LDAP aktivieren" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" "Kontosynchronisierung vom LDAP-Verzeichnis zur lokalen Datenbank aktivieren" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Benutzername-Attribut" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Dovecot LDAP-Synchronisation aktivieren" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" "LDAP-Authentifizierungseinstellungen werden auf die Dovecot-Konfiguration " "angewendet." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP-Konfigurationsdatei" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Dashboard" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "spam messages" msgid "Custom welcome message" msgstr "Spam E-Mails" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." @@ -1802,155 +1807,155 @@ msgstr "" "Eine temporäre Nachricht, die auf der Passwort-Wiederherstellungsseite " "angezeigt wird." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Benutzerdefinierter RSS-Feed" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Anzeige benutzerdefinierter RSS-Feeds für Reseller und Domain-Administratoren" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Funktionen-Widget ausblenden" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "Funktionen-Widget für Reseller und Domain-Administratoren ausblenden" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Sekundäre E-Mail-Adresse" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Benachrichtigungen" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Absenderadresse" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "E-Mail-Adresse, die zum Senden von Benachrichtigungen verwendet wird." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Öffentliche API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Verbindung aktivieren" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Prüft automatisch, ob eine neuere Version verfügbar ist" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Prüfe auf neue Versionen" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Sende eine E-Mail, wenn eine neue Version gefunden wurde" -#: core/app_settings.py:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Empfänger" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Empfänger von Benachrichtigungs-E-Mails über neue Version." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Sende Statistiken" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Schwellwert für inaktive Konten" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Schwellwert für inaktive Konten" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1958,48 +1963,38 @@ msgstr "" "Ein Konto mit einem letzten Login-Datum über diesem Schwellenwert (in Tagen) " "wird als inaktiv betrachtet" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Prüfintervall für Benachrichtigungen" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maximales Alter eines Log-Eintrags" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Das maximale Alter eines Protokollsatzes in Tagen" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Einträge pro Seite" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Anzahl der angezeigten Einträge pro Seite" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Standardumleitung" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " -"wurde" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2343,7 +2338,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3296,7 +3291,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Betreff" @@ -3559,25 +3554,25 @@ msgstr "" msgid "SMTP settings" msgstr "LDAP-Einstellungen" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, 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 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Verwende eine gesicherte Verbindung" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "IP address of your Modoboa server" msgid "Listening port of your SMTP server" @@ -3595,11 +3590,17 @@ msgstr "Authentifizierungsmethode" msgid "Server needs authentication" msgstr "LDAP-Authentifizierungseinstellungen" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "LDAP-Einstellungen" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default mode used when displaying a message" @@ -3607,87 +3608,87 @@ msgstr "" "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " "wurde" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "Abgewiesene Nachrichten" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "Abgewiesene Nachrichten" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Gesendete Nachrichten" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Standardumleitung" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default editor to use when composing a message" @@ -3695,11 +3696,11 @@ msgstr "" "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " "wurde" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3715,45 +3716,72 @@ msgstr "Serveradresse" msgid "Failed to remove attachment: " msgstr "LDAP-Konto konnte nicht erstellt werden: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Datum" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Gesendete Nachrichten" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Benutzerprofil" + +#~ msgid "Default top redirection" +#~ msgstr "Standardumleitung" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "Die Standardumleitung, die verwendet wird, wenn keine Anwendung angegeben " +#~ "wurde" diff --git a/modoboa/locale/el_GR/LC_MESSAGES/django.po b/modoboa/locale/el_GR/LC_MESSAGES/django.po index 51a63daec..f16dace03 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2017-10-12 19:37+0000\n" "Last-Translator: Kostas Moumouris \n" "Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/" @@ -51,14 +51,14 @@ msgid "Cannot be greater than domain quota" msgstr "Δεν μπορεί να είναι μεγαλύτερο από το domain quota." #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Η άδεια απορρίφθηκε." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Αυτό το πεδίο είναι υποχρεωτικό" @@ -69,7 +69,7 @@ msgstr "" "Λίστα διαχειριζόμενων domains (αφορά μόνο μεταπωλητές και διαχειριστές " "domain)" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Δεν επιτρέπεται για αυτόν τον ρόλο." @@ -77,13 +77,12 @@ msgstr "Δεν επιτρέπεται για αυτόν τον ρόλο." msgid "Must be equal to mailbox full_address" msgstr "Πρέπει να είναι ίσο με την full_address του γραμματοκιβωτίου" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Αυτό το πεδίο απαιτείτε." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Το τοπικός domain {} δεν υπάρχει" @@ -130,43 +129,43 @@ msgstr "Δεν μπορείτε να ορίσετε ένα απεριόριστ msgid "User '%s' already exists" msgstr "Ο χρήστης '%s' υπάρχει ήδη" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Πρέπει να είναι θετικός ακέραιος" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 #, fuzzy #| msgid "Domain not found." msgid "Directory not found." msgstr "To domain δεν βρέθηκε." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Ορίστε τουλάχιστον μια εξουσιοδοτημένη διεύθυνση / δίκτυο" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Απαιτείται γραμματοκιβώτιο" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -282,38 +281,48 @@ msgstr "Ενεργοποίηση ελέγχου DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Έλεγχος κάθε domain κατά κύριους DNSBL πάροχους" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Προκαθορισμένο domain quota" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -321,28 +330,28 @@ msgstr "" "Προκαθορισμένο quota (σε MB) που εφαρμόζεται στα νέα domains χωρίς " "προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. " -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Προκαθορισμένο domain quota" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Γραμματοκιβώτια" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Χειριστείτε γραμματοκιβώτια στο σύστημα αρχείων" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -350,11 +359,11 @@ msgstr "" "Μετονομασία και διαγραφή γραμματοκιβωτίων στο σύστημα αρχείων, όταν " "μετονομάζονται ή διαγράφονται από το Medaboa " -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Προκαθορισμένο quota γραμματοκιβωτίου " -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created domains with no " @@ -366,78 +375,78 @@ msgstr "" "Προκαθορισμένο quota γραμματοκιβωτίου (σε MB) που εφαρμόζεται στα νέα " "domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. " -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Προκαθορισμένο quota γραμματοκιβωτίου " -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Αυτόματη αφαίρεση λογαριασμών" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" "Όταν αφαιρείται ένα γραμματοκιβώτιο, να αφαιρείται και ο σχετικός λογαριασμός" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Αυτόματη δημιουργία domain/γραμματοκιβωτίων" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" "Δημιουργία domain και γραμματοκιβωτίου κατά την αυτόματη δημιουργία " "λογαριασμού" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Δημιουργία ενός ψευδώνυμου κατά τη μετονομασία ενός γραμματοκιβωτίου" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Δημιουργήστε ένα ψευδώνυμο χρησιμοποιώντας την παλιά διεύθυνση όταν " "μετονομάζεται ένα γραμματοκιβώτιο." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "Ψευδώνυμο" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Διαχείριση" @@ -457,6 +466,39 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain {} has no MX record" +msgid "Domain has no MX record" +msgstr "Το Domain {} δεν έχει εγγραφή MX " + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Το Domain {} δεν έχει εγγραφή MX " + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "MX records of {}" +msgid "Invalid MX record: {}" +msgstr "Έγραφες MX από{}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "Η εγγραφή MX για το domain {0} δεν είναι έγκυρη: {1} " + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX ζήτημα(τα) για το domain {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL ζήτημα(τα) για το domain {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "Ψευδώνυμα (alias) domain " @@ -479,8 +521,8 @@ msgstr "Δεν έχετε δικαίωμα εισαγωγής domain" msgid "You are not allowed to import domain aliases." msgstr "Δεν επιτρέπεται να εισαγάγετε ψευδώνυμα στο domain." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, fuzzy, python-format #| msgid "No MX record found for this domain." msgid "No DNS record found for %s" @@ -492,11 +534,11 @@ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. " msgid "No %(type)s record for %(name)s" msgstr "Έγραφες MX από{}" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -551,39 +593,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Domain {} has no MX record" -msgid "Domain has no MX record" -msgstr "Το Domain {} δεν έχει εγγραφή MX " - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Το Domain {} δεν έχει εγγραφή MX " - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "MX records of {}" -msgid "Invalid MX record: {}" -msgstr "Έγραφες MX από{}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "Η εγγραφή MX για το domain {0} δεν είναι έγκυρη: {1} " - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX ζήτημα(τα) για το domain {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL ζήτημα(τα) για το domain {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "To domain δεν βρέθηκε." @@ -784,18 +793,18 @@ msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" "To Modoboa ανίχνευσε ότι το domain %(domain)s δεν έχει έγκυρη εγγραφή MX:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No MX record for %s" msgstr "Έγραφες MX από{}" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No AAAA record for %s" @@ -1009,13 +1018,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display details" msgid "Display" msgstr "Εμφάνιση" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1314,7 +1323,7 @@ msgstr "" "Να επιτρέπεται σε αυτόν τον διαχειριστή η πρόσβαση στα γραμματοκιβώτια " "χρηστών" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Διάφορα" @@ -1332,11 +1341,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1425,7 +1434,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1439,24 +1448,20 @@ msgstr "" msgid "Local" msgstr "Τοπικός" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Προφίλ Χρήστη" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Μη έγκυρη σύνταξη" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Λάθος αριθμός επαναλήψεων " -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1487,39 +1492,39 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Πιστοποίηση" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Τύπος Πιστοποίησης" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Το backend που χρησιμοποιείται για πιστοποίηση" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" "Σχήμα που θα χρησιμοποιηθεί για την κρυπτογράφηση των κωδικών των " "λογαριασμών αλληλογραφίας" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Επαναλήψεων" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1527,160 +1532,160 @@ msgstr "" "Αριθμός επαναλήψεων (μόνο για sha256crypt και sha512crypt). Μπορεί να είναι " "από 1000 έως και 999999999" -#: core/app_settings.py:73 +#: core/app_settings.py:61 #, fuzzy #| msgid "Default password scheme" msgid "Update password scheme at login" msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Προκαθορισμένος κωδικός" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Προκαθορισμένος κωδικός για αυτόματη δημιουργία λογαριασμών" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Μήκος τυχαίου κωδικού" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Μήκος των τυχαίων δημιουργημένων κωδικών" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Μήκος των τυχαίων δημιουργημένων κωδικών" -#: core/app_settings.py:114 +#: core/app_settings.py:102 #, fuzzy #| msgid "Default password scheme" msgid "Update password service URL" msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Διεύθυνση εξυπηρετητή" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή LDAP" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Πόρτα εξυπηρετητή" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Η TCP πόρτα λειτουργίας του εξυπηρετητή LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Διεύθυνση εξυπηρετητή" -#: core/app_settings.py:202 +#: core/app_settings.py:190 #, 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:209 +#: core/app_settings.py:197 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Πόρτα εξυπηρετητή" -#: core/app_settings.py:212 +#: core/app_settings.py:200 #, 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Χρήση ασφαλής σύνδεσης" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" "Χρησιμοποιήστε μια σύνδεση SSL / STARTTLS για να συνδεθήκατε στον διακομιστή " "LDAP" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Ο εξυπηρετητής LDAP είναι Active Directory" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Groups Διαχειριστών" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1688,49 +1693,49 @@ msgstr "" "Τα μέλη αυτών των LDAP Posix ομάδων χρηστών θα δημιουργηθούν ως διαχειριστές " "domain. Χρησιμοποιείστε τον χαραχτήρα ';' για να ξεχωρίσετε τις ομάδες." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Τύπος ομάδας" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Τύπος ομάδας LDAP που χρησιμοποιείται με τον κατάλογο σας." -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Base αναζήτησης ομάδων χρηστών" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "Το Base DN αναζήτησης ομάδων χρηστών" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Το πεδίο του κωδικού" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Το πεδίο αποθήκευσης των κωδικών χρηστών" -#: core/app_settings.py:276 +#: core/app_settings.py:264 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Μέθοδος Πιστοποίησης" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Μέθοδος Πιστοποίησης" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Επιλογή μεθόδου πιστοποίησης" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1738,28 +1743,28 @@ msgstr "" "To distinguished name για το bind στον εξυπηρετητή LDAP. Αφήστε το κενό για " "anonymous" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Bind κωδικός " -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" "Ο κωδικός για το bind στον εξυπηρετητή LDAP (αντιστοιχεί στο 'Bind DN')" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Base αναζήτησης χρηστών" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "Το Base DN αναζήτησης χρηστών" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Φίλτρο αναζήτησης" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1767,11 +1772,11 @@ msgstr "" "Προαιρετικό φίλτρο (π.χ. '(objectClass=person)'). Για να είναι έγκυρο πρέπει " "να περικλείεται σε παρενθέσεις." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Πρότυπο για DN χρηστών" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1780,38 +1785,38 @@ msgstr "" "Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν " "placeholder (π.χ. %(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "Ρυθμίσεις LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "Πρότυπο για DN χρηστών" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, fuzzy, python-format #| msgid "" #| "The template used to construct a user's DN. It should contain one " @@ -1823,256 +1828,246 @@ msgstr "" "Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν " "placeholder (π.χ. %(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Το πεδίο του κωδικού" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 #, fuzzy #| msgid "Enable communication" msgid "Enable Dovecot LDAP sync" msgstr "Ενεργοποίηση επικοινωνίας" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Ταμπλό Συντομεύσεων" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Προσαρμοσμένο μήνυμα" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "A custom message that will appear at the end of documents" msgid "A welcome message that will be displayed instead the default one" msgstr "Ένα προσαρμοσμένο μήνυμα που θα εμφανιστεί στο τέλος των εγγράφων" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Κατά παραγγελία RSS feed" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" "Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα" -#: core/app_settings.py:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Κρύβω τις λειτουργίες από τα widget" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" "Κρύβω τις λειτουργίες από τα widget για τους μεταπωλητές και τους " "διαχειριστές του τομέα" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Δευτερεύον email" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Υπενθύμιση " -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Διεύθυνση αποστολέα" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Email διεύθυνση που χρησιμοποιείται για την αποστολή υπενθυμίσεων " -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Δημόσιο API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Ενεργοποίηση επικοινωνίας" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Αυτόματος έλεγχος διαθέσιμων ενημερώσεων" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Έλεγχος ενημερώσεων" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Παραλήπτης" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Αποστολή στατιστικών" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" "Αποστολή στατιστικών στο public API του Motaboa (counters και used " "extensions)" -#: core/app_settings.py:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Όριο απενεργοποιημένων λογαριασμών " -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Όριο απενεργοποιημένων λογαριασμών " -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "Όριο (σε ημέρες) για να απενεργοποιηθεί ένας Λογαριασμός." -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Μέγιστο διάστημα ελέγχου ειδοποιήσεων" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Διάστημα μεταξύ των δύο πρώτων ελέγχων ειδοποιήσεων (σε δευτερόλεπτα)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Μέγιστος χρόνος καταγραφής των log" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Μέγιστη διάρκεια σε ημέρες καταγραφής των log" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Εμφανίσεις ανά σελίδα" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Αριθμός εμφανίσεων ανά σελίδα" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Κύριες προκαθορισμένες αναδρομολογήσεις" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"Προκαθορισμένες αναδρομολογήσεις που χρησιμοποιούνται όταν δεν υπάρχουν " -"προκαθορισμένες εφαρμογές" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2424,7 +2419,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Κανένα" @@ -3412,7 +3407,7 @@ msgstr "είναι" msgid "is not" msgstr "δεν είναι" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Τίτλος" @@ -3676,25 +3671,25 @@ msgstr "Μέγιστο μέγεθος συνημμένου σε bytes (ή KB, MB msgid "SMTP settings" msgstr "Ρυθμίσεις SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of your SMTP server" msgstr "Η διεύθυνση του εξυπηρετητή SMTP" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Τύπος ασφαλής σύνδεσης" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3711,11 +3706,17 @@ msgstr "Απαιτείται πιστοποίηση" msgid "Server needs authentication" msgstr "Ο εξυπηρετητής απαιτεί πιστοποίηση" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "DNS settings" +msgid "Scheduling settings" +msgstr "Ρυθμίσεις ManageSieve" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Προεπιλεγμένη λειτουργία εμφάνισης μηνυμάτων" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default mode used when displaying a message" @@ -3723,99 +3724,99 @@ msgstr "" "Η προεπιλεγμένη λειτουργία που χρησιμοποιείται κατά την εμφάνιση ενός " "μηνύματος" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Ενεργοποιήσει εμφάνισης συνδέσεων HTML" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Ενεργοποίηση/απενεργοποίηση προβολής HTML συνδέσεων" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "Ορισμός μέγιστου αριθμού μηνυμάτων ανά σελίδα" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Ρυθμός ανανέωσης εμφάνισης" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Βάθος Φακέλου" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "The width of the folder list container" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Φάκελοι" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Φάκελος Διαγραμμένων" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "Ο φάκελος που αποθηκεύονται τα διεγραμμένα μηνύματα" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Φάκελος Απεσταλμένων" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Ο φάκελος που αποθηκεύονται τα απεσταλμένα μηνύματα" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Φάκελος Πρόχειρων" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Ο φάκελος που αποθηκεύονται τα πρόχειρα" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Sent folder" msgid "Junk folder" msgstr "Φάκελος ανεπιθύμητων" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "Φάκελος που θα πηγαίνουν τα ανεπιθύμητα " -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Δημιουργία μηνυμάτων" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Προεπιλεγμένος κειμενογράφος" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Κείμενο υπογραφής" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Προεπιλεγμένη υπογραφή χρήστη" @@ -3831,47 +3832,74 @@ msgstr "Διεύθυνση εξυπηρετητή" msgid "Failed to remove attachment: " msgstr "Σφάλμα κατά την αφαίρεση του συνημμένου:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Ημερομηνία" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Όλα τα μηνύματα" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr " Αποτυχία κατά την ανάκτηση της οροθετημένης ιεραρχίας " -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Εισερχόμενα" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Drafts folder" msgid "Drafts" msgstr "Πρόχειρα" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "Ανεπιθύμητα" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Απεσταλμένα" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Σκουπιδοτενεκές" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Το συνημμένο είναι πολύ μεγάλο (όριο: %s)" + +#~ msgid "User profile" +#~ msgstr "Προφίλ Χρήστη" + +#~ msgid "Default top redirection" +#~ msgstr "Κύριες προκαθορισμένες αναδρομολογήσεις" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "Προκαθορισμένες αναδρομολογήσεις που χρησιμοποιούνται όταν δεν υπάρχουν " +#~ "προκαθορισμένες εφαρμογές" diff --git a/modoboa/locale/en/LC_MESSAGES/django.po b/modoboa/locale/en/LC_MESSAGES/django.po index 7886b4e36..cdeee6848 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -40,14 +40,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -56,7 +56,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -64,13 +64,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -111,39 +110,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -235,141 +234,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -389,6 +398,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -411,8 +449,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -422,11 +460,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -478,35 +516,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -683,17 +692,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -862,11 +871,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1109,7 +1118,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1127,11 +1136,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1210,7 +1219,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1222,24 +1231,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1264,525 +1269,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2103,7 +2100,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2981,7 +2978,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3207,19 +3204,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3231,95 +3228,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3331,43 +3332,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 7548dbe94..fb7e93664 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-06 11:16+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/" @@ -58,14 +58,14 @@ msgid "Cannot be greater than domain quota" msgstr "No puede superar la cuota de dominio" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Permiso denegado." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Este campo es obligatorio" @@ -76,7 +76,7 @@ msgstr "" "Lista de dominios administrados (sólo distribuidores y administradores de " "dominio)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "No estás autorizado para esta función." @@ -84,13 +84,12 @@ msgstr "No estás autorizado para esta función." 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:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Este campo es obligatorio." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "El dominio local {} no existe" @@ -137,43 +136,43 @@ msgstr "No puede definir una cuota ilimitada." msgid "User '%s' already exists" msgstr "El usuario '%s' ya existe" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Debe ser un entero positivo" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 #, fuzzy #| msgid "Domain not found." msgid "Directory not found." msgstr "Dominio no encontrado." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, 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:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -287,38 +286,48 @@ msgstr "Habilitar comprobación DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Compruebe cada dominio con los principales proveedores de DNSBL" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Cuota del dominio por defecto" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -326,28 +335,28 @@ msgstr "" "Cuota por defecto (en MB) que se aplica a la creación de nuevos dominios que " "no tuvieran un valor especificado. Un valor de 0 significa que no hay cuota." -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Cuota del dominio por defecto" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Mailboxes" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Manejar mailboxes en el sistema de fichero" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -355,11 +364,11 @@ msgstr "" "Renombrar o eliminar mailboxes en el sistema de ficheros cuando sean " "renombrados o eliminados dentro de Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Cuota de mailbox por defecto" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created domains with no " @@ -371,73 +380,73 @@ 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:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Cuota de mailbox por defecto" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Elminar cuentas automáticamente" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Creación automática de dominio/buzón" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administración" @@ -458,6 +467,39 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain {} has no MX record" +msgid "Domain has no MX record" +msgstr "El dominio {} no tiene registro MX" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "El dominio {} no tiene registro MX" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "MX records of {}" +msgid "Invalid MX record: {}" +msgstr "Registros MX de {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "El registro MX para el dominio {0} no es válido: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX problema(s) para el dominio {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL problema(s) para el dominio {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "alias del dominio" @@ -480,8 +522,8 @@ msgstr "No está autorizado para importar dominios" msgid "You are not allowed to import domain aliases." msgstr "No está autorizado para importar alias de dominio." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, fuzzy, python-format #| msgid "No MX record found for this domain." msgid "No DNS record found for %s" @@ -493,11 +535,11 @@ msgstr "No se encontró ningún registro MX para este dominio." msgid "No %(type)s record for %(name)s" msgstr "Registros MX de {}" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -552,39 +594,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Establecer comunicación con la API publica de Modoboa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Domain {} has no MX record" -msgid "Domain has no MX record" -msgstr "El dominio {} no tiene registro MX" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "El dominio {} no tiene registro MX" - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "MX records of {}" -msgid "Invalid MX record: {}" -msgstr "Registros MX de {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "El registro MX para el dominio {0} no es válido: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX problema(s) para el dominio {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL problema(s) para el dominio {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Dominio no encontrado." @@ -783,18 +792,18 @@ msgstr "" "Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los " "siguientes proveedores DNSBL:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No MX record for %s" msgstr "Registros MX de {}" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "MX records of {}" msgid "No AAAA record for %s" @@ -998,11 +1007,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "Mostrar" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1296,7 +1305,7 @@ msgstr "Administrador del dominio" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Otros" @@ -1314,11 +1323,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "No se ha configurado la dirección del servidor, por favor corríjalo." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1405,7 +1414,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1419,24 +1428,20 @@ msgstr "" msgid "Local" msgstr "Local" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Perfil de usuario" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Sintaxis inválida" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Número de rondas inváldo" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1469,37 +1474,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Correo web" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Autenticación" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Tipo de autenticación" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "El sistema usado para autenticación" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Esquema de contraseña por defecto" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Esquema usado para cifrar las contraseñas del mailbox" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Rondas" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1507,148 +1512,148 @@ 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Contraseña por defecto" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Contraseña por defecto para cuentas creadas automáticamente." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Longitud de contraseña aleatoria" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Longitud de las contraseñas generadas aleatoriamente." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Longitud de las contraseñas generadas aleatoriamente." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Dirección del servidor" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Puerto del servidor" -#: core/app_settings.py:180 +#: core/app_settings.py:168 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:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Usa una conexión segura" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Directorio Activo" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Administrador de grupos" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1656,47 +1661,47 @@ 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:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Tipo de grupo" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "El tipo de LDAP para usar en el directorio" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Base para la búsqueda de grupos" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atributo de la contraseña" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "El atributo usado para guardar las contraseñas del usuario" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Método de autenticación" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Elegir el método de autenticación a usar" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Unir a DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1704,29 +1709,29 @@ msgstr "" "El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació " "para una unión anónima" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Unir contraseña" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Base para la búsqueda de usuarios" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtro de búsqueda" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1734,11 +1739,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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Plantilla DN del usuario" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1747,98 +1752,98 @@ msgstr "" "La plantilla usada para contriunr un DN de usuario. Debería contener una " "cadena reemplazables (p.e. %(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Panel de Control" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "spam messages" msgid "Custom welcome message" msgstr "Mensajes Basura" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Agregación RSS personalizada" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" @@ -1846,7 +1851,7 @@ msgstr "" "Mostrar una fuente de agregación RSS personalizada a revendedores y " "administradores de dominio" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" @@ -1854,133 +1859,133 @@ msgstr "" "Mostrar una fuente de agregación RSS personalizada a revendedores y " "administradores de dominio" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Ocultar widget de características" -#: core/app_settings.py:519 +#: core/app_settings.py:507 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:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Email secundario" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notificaciones" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Dirección del remitente" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Dirección de email usada para mandar notificaciones" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "API pública" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Establecer comunicación" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Verificar automáticamente si hay una nueva versión disponible" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Comprobar nuevas versiones" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Destinatario" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Enviar estadísticas" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Límite para cuentas inactivas" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Límite para cuentas inactivas" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1988,47 +1993,38 @@ 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:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Intervalo de tiempo para notificaciones superiores" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervalo entre dos notificaciones superiores (en segundos)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Máximo tiempo de almacenamiento del log" -#: core/app_settings.py:719 +#: core/app_settings.py:707 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:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Items por página" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Número de elementos mostrado por página" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Redirección principal por defecto" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"La redirección que será usada cuando ninguna aplicación sea especificada." - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2365,7 +2361,7 @@ msgid "Not resolved" msgstr "Sin definir" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Nada" @@ -3349,7 +3345,7 @@ msgstr "es" msgid "is not" msgstr "no es" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Tema" @@ -3610,25 +3606,25 @@ msgstr "Tamaño máximo del adjunto en bytes (or KB, MB, GB si se especifica)" msgid "SMTP settings" msgstr "Configuración de SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, 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 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Modo de conexión seguro" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3645,115 +3641,121 @@ msgstr "Autenticación obligatoria" msgid "Server needs authentication" msgstr "El servidor requiere autenticación" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "Configuración de ManageSieve" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Modo por defecto para mostrar un mensaje" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Activar el mostrar enlaces de HTML" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Activar/Desactivar el mostrar enlaces HTML" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Tasa de refresco" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Propietario de los mailboxes" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 #, fuzzy #| msgid "Create aliases" msgid "Trash folder" msgstr "Carpeta de basura" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "Carpeta dónde van los mensajes eliminados" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 #, fuzzy #| msgid "Create aliases" msgid "Sent folder" msgstr "Carpeta de enviados" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Carpeta dónde van las copias de los correos enviados" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 #, fuzzy #| msgid "Create aliases" msgid "Drafts folder" msgstr "Carpeta de borradores" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Carpeta dónde van los borradores" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Create aliases" msgid "Junk folder" msgstr "Carpeta de enviados" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "Carpeta dónde van los mensajes eliminados" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Composición de mensajes" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Editor por defecto" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Texto de la firma" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Firma de correo definida por el usuario" @@ -3769,47 +3771,73 @@ msgstr "Dirección del servidor" msgid "Failed to remove attachment: " msgstr "Fallo al eliminar el adjunto:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Fecha" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Todos los mensajes" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Fallo al recuperar el delimitador jerárquico" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Create aliases" msgid "Drafts" msgstr "Carpeta de borradores" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "EL adjunto es demasiado grande (límite: %s)" + +#~ msgid "User profile" +#~ msgstr "Perfil de usuario" + +#~ msgid "Default top redirection" +#~ msgstr "Redirección principal por defecto" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "La redirección que será usada cuando ninguna aplicación sea especificada." diff --git a/modoboa/locale/es_MX/LC_MESSAGES/django.po b/modoboa/locale/es_MX/LC_MESSAGES/django.po index 871f47c94..5060b254b 100644 --- a/modoboa/locale/es_MX/LC_MESSAGES/django.po +++ b/modoboa/locale/es_MX/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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,14 +41,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -57,7 +57,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -65,13 +65,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -112,39 +111,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -236,141 +235,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -390,6 +399,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -412,8 +450,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -423,11 +461,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -479,35 +517,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -684,17 +693,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -863,11 +872,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1110,7 +1119,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1128,11 +1137,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1211,7 +1220,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1223,24 +1232,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1265,525 +1270,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2104,7 +2101,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2982,7 +2979,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3208,19 +3205,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3232,95 +3229,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3332,43 +3333,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 5709d41f0..5bc0d3e38 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2023-02-17 22:03+0200\n" "Last-Translator: Ossi Mäntylahti \n" "Language-Team: \n" @@ -47,14 +47,14 @@ msgid "Cannot be greater than domain quota" msgstr "Ei voi olla suurempi kuin verkkotunnuksen kiintiö" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Lupa evätty." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Tämä kenttä on pakollinen" @@ -65,7 +65,7 @@ msgstr "" "Luettelo hallinnoiduista verkkotunnuksista (vain jälleenmyyjät ja " "verkkotunnusten ylläpitäjät)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Ei sallittu tässä roolissa." @@ -73,13 +73,12 @@ msgstr "Ei sallittu tässä roolissa." msgid "Must be equal to mailbox full_address" msgstr "Täytyy olla yhtä suuri kuin postilaatikon koko osoite" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Tämä kenttä on pakollinen." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Paikallista verkkotunnusta {} ei ole olemassa" @@ -122,41 +121,41 @@ msgstr "Et voi määritellä rajoittamatonta kiintiötä." msgid "User '%s' already exists" msgstr "Käyttäjä '%s' on jo olemassa" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Täytyy olla positiivinen kokonaisluku" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Hakemistoa ei löydy." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Määritä vähintään yksi valtuutettu verkko/osoite" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Tarvitaan postilaatikko" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown tag {}" msgid "Unknown status" @@ -263,20 +262,30 @@ msgid "Check every domain against major DNSBL providers" msgstr "" "Tarkista jokainen verkkotunnus merkittävimmistä DNSBL-palveluntarjoajista" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Mukautettu DNS-palvelin" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" msgstr "" "Käytä mukautettua DNS-palvelinta paikallisen palvelinkonfiguraation sijasta" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "DKIM-avainten tallennushakemisto" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -286,19 +295,19 @@ msgstr "" "että tämä hakemisto kuuluu root-käyttäjälle eikä ole ulkomaailman " "luettavissa." -#: admin/app_settings.py:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "DKIM-avaimen oletuspituus" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "Uusien luotujen DKIM-avainten oletuspituus bitteinä." -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Verkkotunnuksen oletuskiintiö" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -306,11 +315,11 @@ 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Oletusarvo verkkotunnuksen lähetysrajalle" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -318,16 +327,16 @@ msgstr "" "Viestien määrä, jonka juuri luodut verkkotunnukset saavat lähettää päivässä. " "Jätä tyhjäksi, jos et halua rajoitusta." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Postilaatikot" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Käsittele postilaatikoita tiedostojärjestelmässä" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -335,11 +344,11 @@ msgstr "" "Nimeä uudelleen tai poista postilaatikot tiedostojärjestelmästä, kun ne " "nimetään uudelleen tai poistetaan Modoboassa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Oletuspostilaatikkokiintiö" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created mailboxes with " @@ -352,11 +361,11 @@ msgstr "" "postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei " "kiintiötä ole." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Oletuspostilaatikon lähetysraja" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -364,63 +373,63 @@ 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:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Tilin automaattinen poistaminen" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Automaattinen verkkotunnuksen/sähköpostilaatikon luominen" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Luo alias, kun postilaatikko nimetään uudelleen" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Luo alias, joka käyttää vanhaa osoitetta, kun postilaatikko nimetään " "uudelleen." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Hallinnointinäkymä" @@ -440,6 +449,35 @@ msgstr "Avattu" msgid "Closed" msgstr "Suljettu" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} DNSBL-palveluntarjoajan listaama {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Verkkotunnuksella ei ole MX-tietuetta" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Verkkotunnuksella {} ei ole MX-tietuetta" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Virheellinen MX-tietue: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "verkkotunnuksen alias" @@ -462,8 +500,8 @@ msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia" msgid "You are not allowed to import domain aliases." msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "DNS-tietuetta ei löytynyt %s" @@ -473,11 +511,11 @@ msgstr "DNS-tietuetta ei löytynyt %s" msgid "No %(type)s record for %(name)s" msgstr "Ei %(type)s-tietueelle %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Toimivia nimipalvelimia ei löytynyt" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "DNS-kyselyn aikakatkaisu, kysely %s ei onnistu tällä hetkellä" @@ -531,35 +569,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Ota käyttöön viestintä Modoboan julkisen API:n kanssa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} DNSBL-palveluntarjoajan listaama {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Verkkotunnuksella ei ole MX-tietuetta" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Verkkotunnuksella {} ei ole MX-tietuetta" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Virheellinen MX-tietue: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Verkkotunnusta ei löydy." @@ -759,17 +768,17 @@ msgstr "" "Modoboa havaitsi, että verkkotunnuksella %(domain)s ei ole voimassa olevaa " "MX-tietuetta:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Ei MX-tietuetta %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Virheellinen IP-osoiteformaatti %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -979,11 +988,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1266,7 +1275,7 @@ msgstr "Luo verkkotunnuksen ylläpitäjä" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Sekalaiset" @@ -1284,11 +1293,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1375,7 +1384,7 @@ msgstr "Kaksivaiheinen tunnistus (2FA) on jo käytössä" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1389,24 +1398,20 @@ msgstr "Kaksivaiheinen tunnistautuminen (2FA) ei ole käytössä" msgid "Local" msgstr "Paikallinen" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Käyttäjäprofiili" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Virheellinen syntaksi" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Virheellinen kierrosluku" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Tämä koodi on virheellinen" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "Käytä seuraavaa koodia saadaksesi takaisin Modoboa-salasanasi: {}" @@ -1439,37 +1444,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Sähköpostiosoite" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Tunnistautuminen" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Autentikointityyppi" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Tunnistautumiseen käytettävä taustajärjestelmä" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Oletussalasanojen järjestelmä" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Sähköpostilaatikon salasanojen salaamiseen käytetty järjestelmä" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Kierrokset" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1477,47 +1482,47 @@ 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Päivitä salasanajärjestelmä kirjautumisen yhteydessä" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Oletussalasana" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Automaattisesti luotujen tilien oletussalasana." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Satunnaisen salasanan pituus" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Satunnaisesti luotujen salasanojen pituus." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Satunnaisesti luotujen salasanojen pituus." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Päivitä salasanapalvelun URL-osoite" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1527,106 +1532,106 @@ 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Ilmoitus salasanan palautuksesta" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Ota salasanan palautus käyttöön tekstiviestillä" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS-palveluntarjoaja" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" "Valitse palveluntarjoaja, joka lähettää salasanan palautustekstiviestin" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Palvelimen osoite" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "LDAP-palvelimen IP-osoite tai DNS-nimi" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Palvelimen portti" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "LDAP-palvelimen käyttämän TCP-portin numero" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Toisen palvelimen käyttöönotto (varapalvelin)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Toisen palvelimen osoite" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Toisen palvelimen portti" -#: core/app_settings.py:212 +#: core/app_settings.py:200 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Käytä suojattua yhteyttä" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Kerro, onko LDAP-palvelin Active Directory -palvelin" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Järjestelmänvalvojien ryhmät" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1634,47 +1639,47 @@ msgstr "" "Näiden LDAP Posix -ryhmien jäsenet luodaan verkkotunnuksen " "järjestelmänvalvojiksi. Käytä ';'-merkkejä ryhmien erottamiseen." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Ryhmän tyyppi" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Ryhmien hakupohja" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Salasana-attribuutti" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Määrite, jota käytetään käyttäjien salasanojen tallentamiseen" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP-todennusasetukset" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Tunnistusmenetelmä" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Valitse käytettävä todennusmenetelmä" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Sido DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1682,29 +1687,29 @@ msgstr "" "Erotusnimi, jota käytetään LDAP-palvelimeen sitoutumisessa. Jätä tyhjäksi " "anonyymiä sidontaa varten" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Sido salasana" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Käyttäjien hakupohja" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Etsi suodatin" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1712,11 +1717,11 @@ msgstr "" "Valinnainen suodatinmerkkijono (esim. '(objectClass=person)'). Tämän on " "oltava suluissa." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Käyttäjän DN-malli" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1725,26 +1730,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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP-synkronointiasetukset" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Ota käyttöön vienti LDAP:iin" -#: core/app_settings.py:380 +#: core/app_settings.py:368 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:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "Etäisen LDAP-tilin poistaminen, kun paikallinen tili poistetaan" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1752,11 +1757,11 @@ msgstr "" "Poista etä-LDAP-tili, kun paikallinen tili poistetaan. Muuten se poistetaan " "käytöstä." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Tilin DN-malli" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1765,207 +1770,207 @@ msgstr "" "Malli, jota käytetään tilin DN:n muodostamiseen. Sen tulisi sisältää yksi " "paikanvaraaja (eli %(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Ota käyttöön tuonti LDAP:stä" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" "Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen tietokantaan" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Käyttäjätunnus-määrite" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Ota Dovecot LDAP-synkronointi käyttöön" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "LDAP-todennusasetuksia sovelletaan Dovecot-konfiguraatioon." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP -asetustiedosto" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Työpöytä" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "spam messages" msgid "Custom welcome message" msgstr "roskapostiviestit" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." msgid "A welcome message that will be displayed instead the default one" msgstr "Väliaikainen viesti, joka näytetään salasanan nollaussivulla." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Mukautettu RSS-syöte" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Piilota ominaisuudet-widget" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" "Piilota ominaisuudet-widget jälleenmyyjiltä ja verkkotunnuksen ylläpitäjiltä" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Toissijainen sähköpostiosoite" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Ilmoitukset" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Lähettäjän osoite" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Ilmoitusten lähettämiseen käytettävä sähköpostiosoite." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Julkinen API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Ota viestintä käyttöön" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Tarkistaa automaattisesti, onko uudempi versio saatavana" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Tarkista uudet versiot" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Lähetä sähköpostia, kun uusia versioita löytyy" -#: core/app_settings.py:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Vastaanottaja" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Uusia versioita koskevien ilmoitussähköpostiviestien vastaanottaja." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Lähetä tilastot" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Inaktiivisen tilin kynnysarvo" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Inaktiivisen tilin kynnysarvo" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1973,48 +1978,38 @@ msgstr "" "Tiliä, jonka viimeisin kirjautumispäivä on suurempi kuin tämä kynnysarvo " "(päivinä), pidetään inaktiivisena" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Ylimpien ilmoitusten tarkistusväli" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Kahden ylimmän ilmoituksen tarkistuksen välinen aika (sekunteina)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Lokitiedoston enimmäisikä" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Lokitietueen enimmäisikä päivinä" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Kohteita per sivu" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Näytettävien kohteiden määrä sivua kohti" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Oletusarvoinen ylhäältä uudelleenohjaus" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole " -"määritetty" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2356,7 +2351,7 @@ msgid "Not resolved" msgstr "Ei määritelty" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3326,7 +3321,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Aihe" @@ -3588,25 +3583,25 @@ msgstr "" msgid "SMTP settings" msgstr "LDAP-asetukset" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, fuzzy #| msgid "IP address of your Modoboa server" msgid "Address of your SMTP server" msgstr "Modoboa-palvelimen IP-osoite" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Käytä suojattua yhteyttä" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "IP address of your Modoboa server" msgid "Listening port of your SMTP server" @@ -3623,11 +3618,17 @@ msgstr "Tunnistusmenetelmä" msgid "Server needs authentication" msgstr "LDAP-todennusasetukset" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "LDAP-asetukset" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default mode used when displaying a message" @@ -3635,97 +3636,97 @@ msgstr "" "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole " "määritetty" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 #, fuzzy #| msgid "Create aliases" msgid "Folders" msgstr "Luo aliaksia" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 #, fuzzy #| msgid "Create aliases" msgid "Trash folder" msgstr "Luo aliaksia" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "hylätyt viestit" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 #, fuzzy #| msgid "Create aliases" msgid "Sent folder" msgstr "Luo aliaksia" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 #, fuzzy #| msgid "Create aliases" msgid "Drafts folder" msgstr "Luo aliaksia" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Create aliases" msgid "Junk folder" msgstr "Luo aliaksia" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "hylätyt viestit" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "lähetetyt viestit" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Oletusarvoinen ylhäältä uudelleenohjaus" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default editor to use when composing a message" @@ -3733,11 +3734,11 @@ msgstr "" "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole " "määritetty" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3753,47 +3754,74 @@ msgstr "Palvelimen osoite" msgid "Failed to remove attachment: " msgstr "LDAP-tilin luominen epäonnistui: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Päivämäärä" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "lähetetyt viestit" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Create aliases" msgid "Drafts" msgstr "Luo aliaksia" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Käyttäjäprofiili" + +#~ msgid "Default top redirection" +#~ msgstr "Oletusarvoinen ylhäältä uudelleenohjaus" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole " +#~ "määritetty" diff --git a/modoboa/locale/fr/LC_MESSAGES/django.po b/modoboa/locale/fr/LC_MESSAGES/django.po index 2ce778c95..3646d7693 100644 --- a/modoboa/locale/fr/LC_MESSAGES/django.po +++ b/modoboa/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Antoine Nguyen , 2016-2017,2020,2023-2025 # Christophe CHAUVET , 2018 @@ -15,25 +15,30 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: Antoine Nguyen , 2016-2017,2020,2023-2025\n" "Language-Team: French (http://app.transifex.com/tonio/modoboa/language/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" #: admin/api/v1/serializers.py:39 msgid "" "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " "A value of 0 means no quota." -msgstr "Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo (défaut) ou Go. Une valeur à 0 signifie pas de quota." +msgstr "" +"Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo " +"(défaut) ou Go. Une valeur à 0 signifie pas de quota." #: admin/api/v1/serializers.py:46 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgstr "Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 signifie pas de quota." +msgstr "" +"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 " +"signifie pas de quota." #: admin/api/v1/serializers.py:94 msgid "domain alias with this name already exists" @@ -48,23 +53,25 @@ msgid "Cannot be greater than domain quota" msgstr "Ne peut pas être supérieur au quota du domaine" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Permission refusée." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Ce champ est requis" #: admin/api/v1/serializers.py:243 msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "Liste des domaines administrés (revendeurs et administrateurs de domaine seulement)." +msgstr "" +"Liste des domaines administrés (revendeurs et administrateurs de domaine " +"seulement)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Non autorisé pour ce rôle." @@ -72,13 +79,12 @@ msgstr "Non autorisé pour ce rôle." msgid "Must be equal to mailbox full_address" msgstr "Doit être égale au champ full_address dans mailbox" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Ce champ est requis." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Le domaine local {} n'existe pas" @@ -119,39 +125,41 @@ msgstr "Vous ne pouvez pas définir de quota illimité" msgid "User '%s' already exists" msgstr "L'utilisateur '%s' existe déjà" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Doit être un entier positif" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." -msgstr "impossible de trouver openssl, veuillez vous assurer vous qu'il est installé." +msgstr "" +"impossible de trouver openssl, veuillez vous assurer vous qu'il est installé." -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Répertoire introuvable." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 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:297 +#: admin/api/v2/serializers.py:298 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:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Définissez au moins un réseau / une adresse autorisé" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 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." +msgstr "" +"La partie gauche d'un courriel ne peut pas faire plus de 64 caractères." -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 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:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "Statut inconnu" @@ -181,9 +189,12 @@ msgstr "MX(s) valide(s)" #: admin/app_settings.py:37 msgid "" -"A list of IP or network address every MX record should match. A warning will" -" be sent if a record does not respect it." -msgstr "Une liste d'adresses IP ou réseau que chaque enregistrement MX doit respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la respecte pas." +"A list of IP or network address every MX record should match. A warning will " +"be sent if a record does not respect it." +msgstr "" +"Une liste d'adresses IP ou réseau que chaque enregistrement MX doit " +"respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la " +"respecte pas." #: admin/app_settings.py:47 msgid "New domains must use authorized MX(s)" @@ -193,7 +204,9 @@ msgstr "Les nouveaux domaines doivent utiliser un ou plusieurs MX autorisés" msgid "" "Prevent the creation of a new domain if its MX record does not use one of " "the defined addresses." -msgstr "Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une adresse autorisée." +msgstr "" +"Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une " +"adresse autorisée." #: admin/app_settings.py:59 msgid "Enable IPV6 checks" @@ -217,7 +230,9 @@ msgstr "Activer les tests DKIM" #: admin/app_settings.py:80 msgid "Check if every domain with DKIM signin enabled has a valid DNS record" -msgstr "Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un enregistrement DNS valide" +msgstr "" +"Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un " +"enregistrement DNS valide" #: admin/app_settings.py:88 msgid "Enable DMARC checks" @@ -233,7 +248,9 @@ msgstr "Activer les tests d'autoconfiguration" #: admin/app_settings.py:99 msgid "Check if every domain has a valid records for autoconfiguration" -msgstr "Vérifie que chaque domaine a les enregistrements nécessaires à l'autoconfiguration" +msgstr "" +"Vérifie que chaque domaine a les enregistrements nécessaires à " +"l'autoconfiguration" #: admin/app_settings.py:107 msgid "Enable DNSBL checks" @@ -243,142 +260,177 @@ msgstr "Activer les vérifications DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Vérifie chaque domaine auprès des fournisseurs de DNSBL" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Serveur DNS personnalisé" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" -msgstr "Utiliser un serveur DNS personnalisé à la place de la configuration par défaut du serveur" +msgstr "" +"Utiliser un serveur DNS personnalisé à la place de la configuration par " +"défaut du serveur" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Répertoire de stockage des clés DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 msgid "" "Absolute path of the directory where DKIM private keys will be stored. Make " "sure this directory belongs to root user and is not readable by the outside " "world." -msgstr "Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il n'est pas lisible par le monde extérieur." +msgstr "" +"Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. " +"Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il " +"n'est pas lisible par le monde extérieur." -#: admin/app_settings.py:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Taille par défaut d'une clé DKIM" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Quota de domaine par défaut" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." -msgstr "Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué." +msgstr "" +"Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne " +"spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué." -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Limite d'envoi par défaut du domaine" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." -msgstr "Nombre maximal de messages que les nouveaux domaines seront autorisés à envoyer par jour. Laisser vide pour n'indiquer aucune limite." +msgstr "" +"Nombre maximal de messages que les nouveaux domaines seront autorisés à " +"envoyer par jour. Laisser vide pour n'indiquer aucune limite." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Boites" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Gérer les boites sur le système de fichiers" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" -msgstr "Renommer ou supprimer les boites sur le système de fichiers quand elles sont renommées ou supprimées dans Modoboa" +msgstr "" +"Renommer ou supprimer les boites sur le système de fichiers quand elles sont " +"renommées ou supprimées dans Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Quota par défaut pour une boîte aux lettres" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." -msgstr "Quota par défaut (en Mo) appliqué aux nouveaux domaines quand aucune valeur n'est spécifiée. Une valeur de 0 signifie pas de quota." +msgstr "" +"Quota par défaut (en Mo) appliqué aux nouveaux domaines quand aucune valeur " +"n'est spécifiée. Une valeur de 0 signifie pas de quota." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Limite d'envoi par défaut d'une boîte aux lettres" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." -msgstr "Nombre maximal de messages que les nouveaux comptes seront autorisés à envoyer par jour. Laisser vide pour n'indiquer aucune limite." +msgstr "" +"Nombre maximal de messages que les nouveaux comptes seront autorisés à " +"envoyer par jour. Laisser vide pour n'indiquer aucune limite." -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Suppression automatique de compte" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" -msgstr "Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en même temps" +msgstr "" +"Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en " +"même temps" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Création automatique de domaine/boite aux lettres" -#: admin/app_settings.py:221 -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:233 +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:230 +#: admin/app_settings.py:242 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:233 -msgid "Create an alias using the old address when a mailbox is renamed." -msgstr "Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres est renommée." - #: admin/app_settings.py:245 +msgid "Create an alias using the old address when a mailbox is renamed." +msgstr "" +"Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres " +"est renommée." + +#: admin/app_settings.py:257 msgid "Aliases" msgstr "Alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "Les alias peuvent cibler n'importe quel domaine" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." -msgstr "Autoriser les alias à cibler n'importe quel domaine, pas uniquement les domaines locaux." +msgstr "" +"Autoriser les alias à cibler n'importe quel domaine, pas uniquement les " +"domaines locaux." -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "Cibles interdites pour les alias" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." -msgstr "Une liste de domaines que les alias ne peuvent pas cibler (séparés par une virgule)." +msgstr "" +"Une liste de domaines que les alias ne peuvent pas cibler (séparés par une " +"virgule)." -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "Cibles autorisées pour les alias" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." -msgstr "Une liste de domaines que les alias peuvent cibler (séparés par une virgule)." +msgstr "" +"Une liste de domaines que les alias peuvent cibler (séparés par une virgule)." -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administration" @@ -398,6 +450,35 @@ msgstr "Ouverte" msgid "Closed" msgstr "Fermée" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "Le MX {} est listé par le fournisseur de DNSBL {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Le domaine n'a pas d'enregistrement MX" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Le domaine {} n'a pas d'enregistrement MX" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Enregistrement MX incorrect : {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "Enregistrement MX invalide pour le domaine {0} : {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] problème(s) de MX pour le domaine {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] Problème(s) DNSBL pour le domaine {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "alias de domaine" @@ -420,8 +501,8 @@ msgstr "Vous n'êtes pas autorisé à importer des domaines" msgid "You are not allowed to import domain aliases." msgstr "Vous n'êtes pas autorisé à importer des alias de domaine." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Aucun enregistrement DNS trouvé pour %s." @@ -431,11 +512,11 @@ msgstr "Aucun enregistrement DNS trouvé pour %s." msgid "No %(type)s record for %(name)s" msgstr "Aucun enregistrement %(type)s trouvé pour %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Aucun serveur de noms fonctionnel trouvé" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "Timeout de résolution DNS, impossible de requêter %s pour l'instant" @@ -461,7 +542,9 @@ msgstr "%d objets importés avec succès" #: 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" +msgstr "" +"Le fichier CSV n'est pas encodé en UTF-8, tentative de détermination de " +"l'encodage" #: admin/management/commands/subcommands/_import.py:112 #, python-format @@ -471,13 +554,16 @@ msgstr "Lire le fichier CSV en utilisant l'encodage %(encoding)s" #: admin/management/commands/subcommands/_import.py:123 #, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" -msgstr "Impossible de décoder le fichier CSV en utilisant l'encodage %(encoding)s" +msgstr "" +"Impossible de décoder le fichier CSV en utilisant l'encodage %(encoding)s" #: admin/management/commands/subcommands/_manage_dkim_keys.py:29 msgid "" "DKIM path non-writable (either a permission issue or the directory does not " "exist)" -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)" +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:52 msgid "Failed to generate DKIM private key" @@ -487,35 +573,6 @@ msgstr "Echec lors de la génération de la clé privée DKIM" msgid "Failed to generate DKIM public key" msgstr "Echec lors de la génération de la clé publique DKIM" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "Le MX {} est listé par le fournisseur de DNSBL {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Le domaine n'a pas d'enregistrement MX" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Le domaine {} n'a pas d'enregistrement MX" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Enregistrement MX incorrect : {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "Enregistrement MX invalide pour le domaine {0} : {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] problème(s) de MX pour le domaine {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] Problème(s) DNSBL pour le domaine {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domaine introuvable." @@ -600,7 +657,9 @@ msgstr "Activer la signature DKIM" #: admin/models/domain.py:63 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce domain." +msgstr "" +"Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce " +"domain." #: admin/models/domain.py:70 msgid "Key length" @@ -621,11 +680,15 @@ msgstr "{} : valeur incorrecte de quota pour ce domaine" #: admin/models/domain.py:343 msgid "{}: invalid default mailbox quota value for domain" -msgstr "{} : la valeur du quota par défaut des boîtes aux lettres est incorrecte pour ce domaine" +msgstr "" +"{} : la valeur du quota par défaut des boîtes aux lettres est incorrecte " +"pour ce domaine" #: admin/models/domain.py:350 msgid "{}: default mailbox quota cannot be greater than domain quota" -msgstr "{} : le quota par défaut de la boîte aux lettres ne peut pas être supérieur au quota du domaine" +msgstr "" +"{} : le quota par défaut de la boîte aux lettres ne peut pas être supérieur " +"au quota du domaine" #: admin/models/domain_alias.py:36 msgid "The alias name" @@ -678,31 +741,38 @@ msgstr "La boite {} existe déjà" msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" -msgstr "Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs de DNSBL suivants :" +msgstr "" +"Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs " +"de DNSBL suivants :" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 msgid "" "The domain's reputation will be affected and there is a chance that emails " "coming from it are considered as spam. You should contact those providers " "and ask them to unlist detected IP address(es)." -msgstr "La réputation de ce domaine sera affectée et il est probable que les emails venant de lui soient considérés comme du spam. Vous devriez contacter ces fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)." +msgstr "" +"La réputation de ce domaine sera affectée et il est probable que les emails " +"venant de lui soient considérés comme du spam. Vous devriez contacter ces " +"fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa a détecté que le domain %(domain)s n'a aucun enregistrement MX valide :" +msgstr "" +"Modoboa a détecté que le domain %(domain)s n'a aucun enregistrement MX " +"valide :" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Aucun enregistrement MX trouvé pour %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Format d'adresse IP incorrect pour %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "Aucun enregistrement AAAA trouvé pour %s" @@ -717,7 +787,9 @@ msgstr "La phrase est sensible à la casse" #: amavis/app_settings.py:19 msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive" -msgstr "La valeur doit correspondre à la variable $localpart_is_case_sensitive dans amavisd.conf" +msgstr "" +"La valeur doit correspondre à la variable $localpart_is_case_sensitive dans " +"amavisd.conf" #: amavis/app_settings.py:27 msgid "Recipient delimiter" @@ -725,7 +797,9 @@ msgstr "Séparateur de destinataire" #: amavis/app_settings.py:29 msgid "Value should match amavisd.conf variable $recipient_delimiter" -msgstr "La valeur doit correspondre à la variable $recipient_delimiter de amavisd.conf" +msgstr "" +"La valeur doit correspondre à la variable $recipient_delimiter de " +"amavisd.conf" #: amavis/app_settings.py:41 msgid "Quarantine settings" @@ -749,7 +823,9 @@ msgstr "Supprimer les messages libérés" #: amavis/app_settings.py:68 msgid "Remove messages marked as released while cleaning up the database" -msgstr "Supprimer les messages marqués comme relâchés pendant le nettoyage de la base de données" +msgstr "" +"Supprimer les messages marqués comme relâchés pendant le nettoyage de la " +"base de données" #: amavis/app_settings.py:76 msgid "Amavis connection mode" @@ -817,7 +893,8 @@ msgstr "Activer l'apprentissage manuel" #: amavis/app_settings.py:154 msgid "Allow super administrators to manually train Spamassassin" -msgstr "Autorise les super administrateurs à entrainer manuellement Spamassassin" +msgstr "" +"Autorise les super administrateurs à entrainer manuellement Spamassassin" #: amavis/app_settings.py:161 msgid "Is Spamassassin local?" @@ -859,7 +936,9 @@ msgstr "Activer l'apprentissage manuel niveau domaine" msgid "" "Allow domain administrators to train Spamassassin (within dedicated per-" "domain databases)" -msgstr "Autorise les administrateurs de domaine à entrainer Spamassassin (au sein de bases dédiées par domaine)" +msgstr "" +"Autorise les administrateurs de domaine à entrainer Spamassassin (au sein de " +"bases dédiées par domaine)" #: amavis/app_settings.py:215 msgid "Enable per-user manual learning" @@ -869,13 +948,15 @@ msgstr "Activer l'apprentissage manuel par utilisateur" msgid "" "Allow simple users to personally train Spamassassin (within a dedicated " "database)" -msgstr "Autorise les utilisateur à entrainer personnellement Spamassassin (au sein d'une base dédiée)" +msgstr "" +"Autorise les utilisateur à entrainer personnellement Spamassassin (au sein " +"d'une base dédiée)" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "Affichage" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "Nombre de messages affichés par page" @@ -891,17 +972,23 @@ msgstr "Amavis" msgid "" "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used " "by the Amavis database." -msgstr "AMAVIS_DEFAULT_DATABASE_ENCODING ne correspond pas à l'encodage de caractère utilisé par la base de données Amavis." +msgstr "" +"AMAVIS_DEFAULT_DATABASE_ENCODING ne correspond pas à l'encodage de caractère " +"utilisé par la base de données Amavis." #: amavis/checks/settings_checks.py:12 msgid "" "Check your database character encoding and set/update " "AMAVIS_DEFAULT_DATABASE_ENCODING." -msgstr "Vérifiez l'encodage de caractère utilisé par votre base de données et renseignez / mettez à jour AMAVIS_DEFAULT_DATABASE_ENCODING." +msgstr "" +"Vérifiez l'encodage de caractère utilisé par votre base de données et " +"renseignez / mettez à jour AMAVIS_DEFAULT_DATABASE_ENCODING." #: amavis/checks/settings_checks.py:19 msgid "Modoboa Amavis has not been tested using the selected database engine." -msgstr "Modoboa Amavis n'a pas été testé avec le moteur de base de données selectionné." +msgstr "" +"Modoboa Amavis n'a pas été testé avec le moteur de base de données " +"selectionné." #: amavis/checks/settings_checks.py:20 msgid "Try using PostgreSQL, MySQL or MariaDB." @@ -950,7 +1037,9 @@ msgstr "défaut" #: amavis/models.py:111 msgid "Bypass virus checks or not. Choose 'default' to use global settings." -msgstr "Désactiver le filtrage des virus ou non. Choisir 'défaut' pour utiliser les paramètres globaux." +msgstr "" +"Désactiver le filtrage des virus ou non. Choisir 'défaut' pour utiliser les " +"paramètres globaux." #: amavis/models.py:115 msgid "Spam filter" @@ -958,7 +1047,9 @@ msgstr "Filtrage du spam" #: amavis/models.py:125 msgid "Bypass spam checks or not. Choose 'default' to use global settings." -msgstr "Désactiver le filtrage du spam ou non. Choisir 'défaut' pour utiliser les paramètres globaux." +msgstr "" +"Désactiver le filtrage du spam ou non. Choisir 'défaut' pour utiliser les " +"paramètres globaux." #: amavis/models.py:129 msgid "Banned filter" @@ -966,7 +1057,9 @@ msgstr "Filtrage des messages bannis" #: amavis/models.py:139 msgid "Bypass banned checks or not. Choose 'default' to use global settings." -msgstr "Désactiver le filtrage des messages bannis ou non. Choisir 'défaut' pour utiliser les paramètres globaux." +msgstr "" +"Désactiver le filtrage des messages bannis ou non. Choisir 'défaut' pour " +"utiliser les paramètres globaux." #: amavis/models.py:170 msgid "Spam marker" @@ -974,9 +1067,11 @@ msgstr "Marquage du spam" #: amavis/models.py:176 msgid "" -"Modify spam subject using the specified text. Choose 'default' to use global" -" settings." -msgstr "Modifier le sujet du spam en utilisant le texte spécifié. Choisir 'défaut' pour utiliser les paramètres globaux." +"Modify spam subject using the specified text. Choose 'default' to use global " +"settings." +msgstr "" +"Modifier le sujet du spam en utilisant le texte spécifié. Choisir 'défaut' " +"pour utiliser les paramètres globaux." #: amavis/templates/amavis/notifications/pending_requests.html:3 #, python-format @@ -1044,7 +1139,9 @@ msgstr "Période entre deux réponses automatiques" #: autoreply/app_settings.py:20 msgid "" "Number of days to wait before sending a new auto-reply to the same recipient" -msgstr "Attendre ce nombre de jours avant l'envoi d'une nouvelle réponse automatique au même destinataire" +msgstr "" +"Attendre ce nombre de jours avant l'envoi d'une nouvelle réponse automatique " +"au même destinataire" #: autoreply/app_settings.py:27 autoreply/app_settings.py:36 msgid "Default subject" @@ -1053,14 +1150,19 @@ msgstr "Sujet par défaut" #: autoreply/app_settings.py:29 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" +msgstr "" +"Sujet par défaut utilisé quand un message de réponse automatique est crée " +"automatiquement" #: autoreply/app_settings.py:38 #, python-format msgid "" "Default content used when an auto-reply message is created automatically. " "The '%(name)s' macro will be replaced by the user's full name." -msgstr "Contenu par défaut utilisé quand un message de réponse automatique est créé automatiquement. La macro %(name)s sera remplacée par le nom complet de l'utilisateur " +msgstr "" +"Contenu par défaut utilisé quand un message de réponse automatique est créé " +"automatiquement. La macro %(name)s sera remplacée par le nom complet de " +"l'utilisateur " #: autoreply/apps.py:15 msgid "Automatic replies" @@ -1097,7 +1199,9 @@ msgstr "URL du serveur" #: calendars/app_settings.py:19 msgid "" "The URL of your Radicale server. It will be used to construct calendar URLs." -msgstr "L'URL de votre serveur Radicale. Elle sera utilisée pour construire les URL des calendriers." +msgstr "" +"L'URL de votre serveur Radicale. Elle sera utilisée pour construire les URL " +"des calendriers." #: calendars/app_settings.py:31 msgid "Rights management" @@ -1117,9 +1221,11 @@ msgstr "Autoriser l'administration des calendriers" #: calendars/app_settings.py:48 msgid "Allow domain administrators to manage user calendars (read and write)" -msgstr "Autoriser les administrateurs de domaine à gérer les calendriers des utilisateurs (lecture et écriture)" +msgstr "" +"Autoriser les administrateurs de domaine à gérer les calendriers des " +"utilisateurs (lecture et écriture)" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Divers" @@ -1131,17 +1237,19 @@ msgstr "Taille maximale des fichiers ICS" #: calendars/app_settings.py:68 msgid "" "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)" -msgstr "Taille maximale en octets des fichiers ICS importés (ou KB, MB, GB si précisé)" +msgstr "" +"Taille maximale en octets des fichiers ICS importés (ou KB, MB, GB si " +"précisé)" #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205 msgid "Calendars" msgstr "Calendriers" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "L'emplacement du serveur n'est pas renseigné, veuillez corriger" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "Le fichier téléchargé est trop gros (max : {} octets)" @@ -1157,7 +1265,9 @@ msgstr "Synchroniser le carnet d'adresse en utilisant CardDAV" msgid "" "Choose to synchronize or not your address book using CardDAV. You will be " "able to access your contacts from the outside." -msgstr "Choisir de synchroniser ou non votre carnet d'adresse en utilisant CardDAV. Vous pourrez ainsi accéder à vos contacts depuis l'extérieur." +msgstr "" +"Choisir de synchroniser ou non votre carnet d'adresse en utilisant CardDAV. " +"Vous pourrez ainsi accéder à vos contacts depuis l'extérieur." #: contacts/app_settings.py:29 msgid "Synchronization frequency" @@ -1218,9 +1328,11 @@ msgstr "2FA est déjà activf" #: core/api/v1/serializers.py:87 #, python-format msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" -msgstr "Echec de modification des paramètres TFA depuis '%(addr)s' en tant qu'utilisateur '%(user)s'" +msgstr "" +"Echec de modification des paramètres TFA depuis '%(addr)s' en tant " +"qu'utilisateur '%(user)s'" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "Mot de passe incorrect" @@ -1232,27 +1344,24 @@ msgstr "Authentification 2 facteurs non activée" msgid "Local" msgstr "Locale" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Profil utilisateur" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Syntaxe invalide" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Nombre invalide de tours" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Ce code n'est pas valide" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 -#: core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" -msgstr "Veuillez utiliser le code suivant pour récupérer votre mot de passe Modoboa : {}" +msgstr "" +"Veuillez utiliser le code suivant pour récupérer votre mot de passe " +"Modoboa : {}" #: core/api/v2/viewsets.py:176 msgid "Administration console" @@ -1275,531 +1384,587 @@ msgid "Calendar" msgstr "Calendrier" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Authentification" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Type d'authentification" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Le backend utilisé pour l'authentification" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Méthode de chiffrement par défaut" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" -msgstr "Méthode utilisée pour chiffrer les mots de passe des boites aux lettres" +msgstr "" +"Méthode utilisée pour chiffrer les mots de passe des boites aux lettres" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Tours" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." -msgstr "Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit être compris entre 1000 et 999999999 inclue." +msgstr "" +"Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit " +"être compris entre 1000 et 999999999 inclue." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Mettre à jour la méthode de chiffrement du mot de passe à la connexion" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" -msgstr "Mise à jour du mot de passe utilisateur lors d'une connexion pour utiliser la méthode de chiffrement par défaut" +msgstr "" +"Mise à jour du mot de passe utilisateur lors d'une connexion pour utiliser " +"la méthode de chiffrement par défaut" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Mot de passe par défaut" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Mot de passe par défaut pour les comptes créés automatiquement." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Taille d'un mot de passe aléatoire" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Taille des mots de passe générés aléatoirement." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "Autoriser les caractères spéciaux pour les mots de passe aléatoires" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." -msgstr "Activer les caractères spéciaux dans les mots de passe générés aléatoirement." +msgstr "" +"Activer les caractères spéciaux dans les mots de passe générés aléatoirement." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "URL de service de mise à jour du mot de passe" -#: core/app_settings.py:116 +#: core/app_settings.py:104 msgid "" "The URL of an external page where users will be able to update their " "password. It applies only to non local users, ie. those automatically " "created after a successful external authentication (LDAP, SMTP)." -msgstr "L'URL d'une page externe où les utilisateurs pourront mettre à jour leur mot de passe. Elle s'applique uniquement aux utilisateurs non locaux, c'est à dire ceux créés après une authentification externe réussie (LDAP, SMTP)." +msgstr "" +"L'URL d'une page externe où les utilisateurs pourront mettre à jour leur mot " +"de passe. Elle s'applique uniquement aux utilisateurs non locaux, c'est à " +"dire ceux créés après une authentification externe réussie (LDAP, SMTP)." -#: core/app_settings.py:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Annonce pour la récupération de mot de passe" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." -msgstr "Un message temporaire qui sera affiché sur la page de récupération de mot de passe" +msgstr "" +"Un message temporaire qui sera affiché sur la page de récupération de mot de " +"passe" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Activer la récupération de mot de passe par SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." -msgstr "Activer la récupération de mot de passe par SMS pour les utilisateurs ayant renseigné un numéro de téléphone" +msgstr "" +"Activer la récupération de mot de passe par SMS pour les utilisateurs ayant " +"renseigné un numéro de téléphone" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "Fournisseur SMS" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" -msgstr "Choisir un fournisseur pour envoyer les SMS de récupération de mot de passe" +msgstr "" +"Choisir un fournisseur pour envoyer les SMS de récupération de mot de passe" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "LDAP" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Adresse du serveur" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Port utilisé par le serveur" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Le port TCP utilisé par le serveur LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Activer le serveur secondaire (secours)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" -msgstr "Activer un serveur LDAP secondaire qui sera utilisé si le principal est en échec" +msgstr "" +"Activer un serveur LDAP secondaire qui sera utilisé si le principal est en " +"échec" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Adresse du serveur secondaire" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Port du serveur secondaire" -#: core/app_settings.py:212 +#: core/app_settings.py:200 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Utiliser une connexion sécurisée" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Groupes administrateurs" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" -"Members of those LDAP Posix groups will be created as domain administrators." -" Use ';' characters to separate groups." -msgstr "Les membres de ces groupes LDAP (Posix) seront créés en tant qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les groupes." +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." +msgstr "" +"Les membres de ces groupes LDAP (Posix) seront créés en tant " +"qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les " +"groupes." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Type de groupe" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Le type de groupe LDAP à utiliser avec votre annuaire." -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Base de recherche des groupes" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" -msgstr "Le nom distinctif de la base de recherche utilisée pour rechercher les groupes" +msgstr "" +"Le nom distinctif de la base de recherche utilisée pour rechercher les " +"groupes" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Attribut 'mot de passe'" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "L'attribut utilisé pour stocker les mots de passe" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "Paramètres d'authentification LDAP" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Méthode d'authentification" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Choisir la méthode d'authentification à utiliser" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "ND de connexion" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" -msgstr "Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser vide pour une connexion anonyme" +msgstr "" +"Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser " +"vide pour une connexion anonyme" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Mot de passe de connexion" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" -msgstr "Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de connexion')" +msgstr "" +"Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de " +"connexion')" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Base de recherche des utilisateurs" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" -msgstr "Le nom distinctif de la base de recherche utilisée pour rechercher les utilisateurs" +msgstr "" +"Le nom distinctif de la base de recherche utilisée pour rechercher les " +"utilisateurs" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtre de recherche" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." -msgstr "Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être valide, il doit être entouré de parenthèses." +msgstr "" +"Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être " +"valide, il doit être entouré de parenthèses." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Modèle de nom distinctif utilisateur" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il doit contenir un espace réservé (ex. %(user)s)" +msgstr "" +"Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il " +"doit contenir un espace réservé (ex. %(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "Paramètres de synchronisation LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Activer l'export LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" -msgstr "Activer la synchronisation automatique entre la base de données locale et l'annuaire LDAP" +msgstr "" +"Activer la synchronisation automatique entre la base de données locale et " +"l'annuaire LDAP" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." -msgstr "Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement il sera désactivé." +msgstr "" +"Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement " +"il sera désactivé." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Modèle des DN de compte" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "Le modèle utilisé pour construite un DN de compte (nom unique). Il doit contenir un emplacement (c'est à dire 1%(user)s)" +msgstr "" +"Le modèle utilisé pour construite un DN de compte (nom unique). Il doit " +"contenir un emplacement (c'est à dire 1%(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Activer l'import LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" -msgstr "Activer la synchronisation des comptes entre un annuaire LDAP et la base de données locale" +msgstr "" +"Activer la synchronisation des comptes entre un annuaire LDAP et la base de " +"données locale" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Attribut nom d'utilisateur" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." -msgstr "Le nom de l'attribut LDAP dans lequel le nom d'utilisateur peut être trouvé." +msgstr "" +"Le nom de l'attribut LDAP dans lequel le nom d'utilisateur peut être trouvé." -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Activer la synchronisation LDAP pour Dovecot" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." -msgstr "Les paramètres d'authentification LDAP seront appliqués à la configuration de Dovecot." +msgstr "" +"Les paramètres d'authentification LDAP seront appliqués à la configuration " +"de Dovecot." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Fichier de configuration Dovecot pour LDAP" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." -msgstr "Emplacement du fichier de configuration qui contient les paramètres LDAP de Dovecot" +msgstr "" +"Emplacement du fichier de configuration qui contient les paramètres LDAP de " +"Dovecot" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Tableau de bord" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "Message d'accueil personnalisé" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "Un message d'accueil qui sera affiché à la place de celui par défaut" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Flux RSS personnalisé" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" -msgstr "Afficher un flux RSS personnalisé aux revendeurs et administrateurs de domaine" +msgstr "" +"Afficher un flux RSS personnalisé aux revendeurs et administrateurs de " +"domaine" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "Afficher le flux RSS personnalisé aux super admins" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "Afficher le flux RSS personnalisé aussi aux super administrateurs" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Masquer le widget des fonctionnalités" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" -msgstr "Masquer le widget des fonctionnalités pour les revendeurs et les administrateurs de domaine" +msgstr "" +"Masquer le widget des fonctionnalités pour les revendeurs et les " +"administrateurs de domaine" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "Thème" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "Couleur principale du thème" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" -msgstr "Couleur principale du thème (code hexadécimal), utilisée par exemple comme couleur de fond dans le menu de gauche" +msgstr "" +"Couleur principale du thème (code hexadécimal), utilisée par exemple comme " +"couleur de fond dans le menu de gauche" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "Couleur principale du thème (version plus claire)" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "Couleur principale du thème (code hexadécimal)" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "Couleur principale du thème (version plus sombre)" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "Couleur secondaire du thème" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" -msgstr "Couleur secondaire du thème (code hexadécimal), utilisée par exemple comme couleur de fond de certains boutons" +msgstr "" +"Couleur secondaire du thème (code hexadécimal), utilisée par exemple comme " +"couleur de fond de certains boutons" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "Couleur des libellés du thème" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "Couleur du thème pour les libellés (code hexadécimal)" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notifications" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Adresse d'envoi" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Adresse utilisée pour envoyer les notifications." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "API publique" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Activer la communication" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Vérifie automatiquement si une nouvelle version est disponible" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Vérifier les nouvelles versions" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Envoyer un email quand de nouvelles versions sont trouvées" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" -msgstr "Envoyer un email pour notifier les administrateurs à propos des nouvelles versions" +msgstr "" +"Envoyer un email pour notifier les administrateurs à propos des nouvelles " +"versions" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Destinataire" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Destinataire des emails de notification pour les nouvelles versions" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Envoyer des statistiques" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" -msgstr "Envoyer des statistiques à l'API publique de Modoboa (compteurs et extensions utilisées)" +msgstr "" +"Envoyer des statistiques à l'API publique de Modoboa (compteurs et " +"extensions utilisées)" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "Activer le suivi des comptes inactifs" -#: core/app_settings.py:686 +#: core/app_settings.py:674 msgid "" -"Allow the administrator to set a threshold (in days) beyond which an account" -" is considered inactive if the user hasn't logged in" -msgstr "Autoriser les administrateurs à définir in seuil (en jours) à partir duquel un compte est considéré comme inactif si l'utilisateur ne s'est pas connecté" +"Allow the administrator to set a threshold (in days) beyond which an account " +"is considered inactive if the user hasn't logged in" +msgstr "" +"Autoriser les administrateurs à définir in seuil (en jours) à partir duquel " +"un compte est considéré comme inactif si l'utilisateur ne s'est pas connecté" -#: core/app_settings.py:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Seuil des comptes inactifs" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" -"An account with a last login date greater than this threshold (in days) will" -" be considered as inactive" -msgstr "Un compte avec une date de dernière connexion antérieure à ce seuil sera considéré comme inactif" +"An account with a last login date greater than this threshold (in days) will " +"be considered as inactive" +msgstr "" +"Un compte avec une date de dernière connexion antérieure à ce seuil sera " +"considéré comme inactif" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Intervalle de vérification des notifications" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervalle entre deux vérifications de notification (en secondes)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Age maximal d'un enregistrement du journal" -#: core/app_settings.py:719 +#: core/app_settings.py:707 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:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "Durée de rétention dans l'historique des messages" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" -msgstr "Durée de rétention (en jours) d'un message dans l'historique des messages" +msgstr "" +"Durée de rétention (en jours) d'un message dans l'historique des messages" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Eléments par page" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Nombre d'éléments affichés par page" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Redirection par défaut" - -#: core/app_settings.py:748 -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/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " "between summer/winter time (ie the same local time occuring twice due to " "clock change)." -msgstr "Vous avez défini USE_TZ à False, ce qui peut entraîner des problèmes lors des transitions entre l'heure d'été et l'heure d'hiver (c.-à-d. La même heure locale se produisant deux fois en raison d'un changement d'horloge)." +msgstr "" +"Vous avez défini USE_TZ à False, ce qui peut entraîner des problèmes lors " +"des transitions entre l'heure d'été et l'heure d'hiver (c.-à-d. La même " +"heure locale se produisant deux fois en raison d'un changement d'horloge)." #: core/checks.py:19 msgid "Set `USE_TZ = True` in settings.py" @@ -1811,33 +1976,40 @@ msgstr "La méthode de chiffrement que vous utilisez est obsolète." #: core/checks.py:24 msgid "Upgrade your password scheme to a stronger one" -msgstr "Mettez à jour votre méthode de chiffrement de mot de passe vers une plus sûre" +msgstr "" +"Mettez à jour votre méthode de chiffrement de mot de passe vers une plus sûre" #: core/checks.py:30 msgid "" "Oauth2 application for dovecot has not been found. Webmail and some other " "features won't be available." -msgstr "Application Oauth2 non trouvée pour dovecot. Le webmail ainsi que d'autres fonctionnalités ne seront pas disponibles." +msgstr "" +"Application Oauth2 non trouvée pour dovecot. Le webmail ainsi que d'autres " +"fonctionnalités ne seront pas disponibles." #: core/checks.py:34 msgid "" -"Visit : " -"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-" -"oauth2" -msgstr "Visiter : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-oauth2" +"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"dovecot.html#dovecot-oauth2" +msgstr "" +"Visiter : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"dovecot.html#dovecot-oauth2" #: core/checks.py:41 msgid "" "Oauth2 application for radicale has not been found. Calendar and some other " "features won't be available." -msgstr "Application Oauth2 pour Radicale non trouvée. Le calendrier ainsi que d'autres fonctionnalités ne seront pas disponibles." +msgstr "" +"Application Oauth2 pour Radicale non trouvée. Le calendrier ainsi que " +"d'autres fonctionnalités ne seront pas disponibles." #: core/checks.py:45 msgid "" -"Visit : " -"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-" -"oauth2" -msgstr "Consulter : https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-oauth2" +"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"radicale.html#radicale-oauth2" +msgstr "" +"Consulter : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"radicale.html#radicale-oauth2" #: core/constants.py:6 msgid "Simple user" @@ -1924,7 +2096,8 @@ msgstr "Une ou plusieurs mises à jour sont disponibles!" #: core/handlers.py:140 #, python-format msgid "You are still using a deprecated password scheme (%s)" -msgstr "Vous utilisez encore une méthode de chiffrement de mot de passe obsolète (%s)" +msgstr "" +"Vous utilisez encore une méthode de chiffrement de mot de passe obsolète (%s)" #: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" @@ -1964,7 +2137,8 @@ msgstr "Une adresse e-mail alternative ou de secours." #: core/models.py:150 msgid "Failed to update password: LDAP module not installed" -msgstr "Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé" +msgstr "" +"Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé" #: core/models.py:185 policyd/core.py:117 msgid "account" @@ -1984,7 +2158,9 @@ msgstr "L'utilisateur de base '{}' doit avoir une adresse email correcte" #: core/models.py:383 msgid "username and email fields must not differ for '{}'" -msgstr "les champs nom d'utilisateur et email ne doivent pas être différents pour '{}'" +msgstr "" +"les champs nom d'utilisateur et email ne doivent pas être différents pour " +"'{}'" #: core/password_validation.py:25 msgid "Password must contain at least {} digit." @@ -2016,7 +2192,9 @@ msgstr[2] "Le mot de passe doit contenir au moins {} caractères spéciaux." #: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Votre mot de passe doit contenir une combinaison de différents types de caractère." +msgstr "" +"Votre mot de passe doit contenir une combinaison de différents types de " +"caractère." #: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102 msgid "API endpoint" @@ -2073,9 +2251,15 @@ msgid "" msgid_plural "" "\n" " The following updates are available:\n" -msgstr[0] "\nLa mise à jour suivante est disponible :\n" -msgstr[1] "\nLes mises à jour suivantes sont disponibles :\n" -msgstr[2] "\nLes mises à jour suivantes sont disponibles :\n" +msgstr[0] "" +"\n" +"La mise à jour suivante est disponible :\n" +msgstr[1] "" +"\n" +"Les mises à jour suivantes sont disponibles :\n" +msgstr[2] "" +"\n" +"Les mises à jour suivantes sont disponibles :\n" #: core/utils.py:43 msgid "The core part of Modoboa" @@ -2089,12 +2273,16 @@ msgstr "Utiliseur '%s' connecté avec succès" #: core/views/auth.py:128 #, python-format msgid "Password scheme mismatch. Updating %s password" -msgstr "La méthode de chiffrement du mot de passe diffère. Mise à jour du mot de passe de %s" +msgstr "" +"La méthode de chiffrement du mot de passe diffère. Mise à jour du mot de " +"passe de %s" #: core/views/auth.py:135 #, python-format msgid "Password hash parameter missmatch. Updating %s password" -msgstr "Le paramètre de hash du mot de passe ne correspond pas. Mise à jour %s du mot de passe" +msgstr "" +"Le paramètre de hash du mot de passe ne correspond pas. Mise à jour %s du " +"mot de passe" #: core/views/auth.py:173 msgid "User '{}' successfully logged out" @@ -2110,7 +2298,9 @@ msgstr "Activer les recherches inversées" #: dmarc/forms.py:23 msgid "Enable reverse DNS lookups (reports will be longer to display)" -msgstr "Activer les recherches DNS inversées (les rapports seront plus longs à afficher)" +msgstr "" +"Activer les recherches DNS inversées (les rapports seront plus longs à " +"afficher)" #: dmarc/forms.py:42 msgid "DMARC" @@ -2121,7 +2311,7 @@ msgid "Not resolved" msgstr "Non résolu" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Aucun" @@ -2297,7 +2487,9 @@ msgstr "Filtre d'exclusion de dossier" msgid "" "Use a regular expression to explicitly include folders in sync. Example: " "^Trash$|Del" -msgstr "Utiliser une expression régulière pour explicitement inclure des dossiers à synchroniser. Exemple : ^Trash$|Del" +msgstr "" +"Utiliser une expression régulière pour explicitement inclure des dossiers à " +"synchroniser. Exemple : ^Trash$|Del" #: imap_migration/app_settings.py:74 msgid "Folder Filter Inclusions" @@ -2308,7 +2500,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 "Une liste de dossiers séparés par des virgules à explicitement inclure pendant la synchronisation même s'ils sont concernés par le filtre d'exclusion. Exemple debian.user, debian.personal" +msgstr "" +"Une liste de dossiers séparés par des virgules à explicitement inclure " +"pendant la synchronisation même s'ils sont concernés par le filtre " +"d'exclusion. Exemple debian.user, debian.personal" #: imap_migration/apps.py:20 msgid "IMAP Migration" @@ -2318,12 +2513,16 @@ msgstr "Migration IMAP" msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." -msgstr "La création automatique de domaine/compte est désactivée, ce qui veut dire que l'authentification IMAP ne fonctionnera pas." +msgstr "" +"La création automatique de domaine/compte est désactivée, ce qui veut dire " +"que l'authentification IMAP ne fonctionnera pas." #: imap_migration/checks.py:16 msgid "" "Go to the online parameters panel (admin tab) and activate this feature." -msgstr "Rendez vous sur le panneau de configuration des paramètres (onglet Administration) et activez cette fonctionnalité." +msgstr "" +"Rendez vous sur le panneau de configuration des paramètres (onglet " +"Administration) et activez cette fonctionnalité." #: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" @@ -2392,13 +2591,17 @@ msgstr "Admins de domaine" msgid "" "Maximum number of allowed domain administrators for a new administrator. (0 " "to deny any creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal d'admins de domaine pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les création illimitées)" +msgstr "" +"Nombre maximal d'admins de domaine pour un nouvel administrateur. (0 pour " +"interdire toute création, -1 pour autoriser les création illimitées)" #: limits/app_settings.py:41 msgid "" "Maximum number of allowed domains for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal de domaines pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal de domaines pour un nouvel administrateur. (0 pour interdire " +"toute création, -1 pour autoriser les créations illimitées)" #: limits/app_settings.py:49 limits/app_settings.py:123 limits/constants.py:22 #: limits/constants.py:76 @@ -2407,15 +2610,19 @@ msgstr "Alias de domaine" #: limits/app_settings.py:52 msgid "" -"Maximum number of allowed domain aliases for a new administrator. (0 to deny" -" any creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal d'alias de domaine pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny " +"any creation, -1 to allow unlimited creations)" +msgstr "" +"Nombre maximal d'alias de domaine pour un nouvel administrateur. (0 pour " +"interdire toute création, -1 pour autoriser les créations illimitées)" #: limits/app_settings.py:64 msgid "" "Maximum number of allowed mailboxes for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal de boites pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal de boites pour un nouvel administrateur. (0 pour interdire " +"toute création, -1 pour autoriser les créations illimitées)" #: limits/app_settings.py:73 limits/app_settings.py:146 limits/constants.py:39 #: limits/constants.py:92 @@ -2426,7 +2633,9 @@ msgstr "Alias de boite" msgid "" "Maximum number of allowed aliases for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal d'alias de boite pour un nouvel administrateur. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'alias de boite pour un nouvel administrateur. (0 pour " +"interdire toute création, -1 pour autoriser les créations illimitées)" #: limits/app_settings.py:84 limits/constants.py:59 msgid "Quota" @@ -2436,7 +2645,9 @@ msgstr "Quota" msgid "" "The quota a reseller will be allowed to share between the domains he " "creates. (0 means no quota)" -msgstr "Le quota qu'un revendeur sera autorisé à partager entre les domaines qu'il créé. (0 signifie pas de quota)" +msgstr "" +"Le quota qu'un revendeur sera autorisé à partager entre les domaines qu'il " +"créé. (0 signifie pas de quota)" #: limits/app_settings.py:98 msgid "Default per-domain limits" @@ -2452,27 +2663,36 @@ msgstr "Activer ou désactiver les limites par domaine" #: limits/app_settings.py:114 msgid "" -"Maximum number of allowed domain administrators for a new domain. (0 to deny" -" any creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal d'administrateurs de domaine autorisés pour un nouveau domaine (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +"Maximum number of allowed domain administrators for a new domain. (0 to deny " +"any creation, -1 to allow unlimited creations)" +msgstr "" +"Nombre maximal d'administrateurs de domaine autorisés pour un nouveau " +"domaine (0 pour interdire toute création, -1 pour autoriser les créations " +"illimitées)" #: limits/app_settings.py:126 msgid "" "Maximum number of allowed domain aliases for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal d'alias de domaine autorisés pour un nouveau domaine. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal d'alias de domaine autorisés pour un nouveau domaine. (0 pour " +"interdire toute création, -1 pour autoriser les créations illimitées)" #: limits/app_settings.py:138 msgid "" "Maximum number of allowed mailboxes for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Nombre maximal de boites aux lettres autorisées pour un nouveau domaine. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +msgstr "" +"Nombre maximal de boites aux lettres autorisées pour un nouveau domaine. (0 " +"pour interdire toute création, -1 pour autoriser les créations illimitées)" #: limits/app_settings.py:149 msgid "" -"Maximum number of allowed aliases for a new domain. (0 to deny any creation," -" -1 to allow unlimited creations)" -msgstr "Nombre maximal d'alias autorisés pour un nouveau domaine. (0 pour interdire toute création, -1 pour autoriser les créations illimitées)" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation, " +"-1 to allow unlimited creations)" +msgstr "" +"Nombre maximal d'alias autorisés pour un nouveau domaine. (0 pour interdire " +"toute création, -1 pour autoriser les créations illimitées)" #: limits/apps.py:16 msgid "Limits" @@ -2537,7 +2757,9 @@ msgstr "illimité" #: maillog/api/v2/serializers.py:35 msgid "You must provide start and end dates when period is custom" -msgstr "Vous devez fournir des dates de début et fin quand la période est personnalisée" +msgstr "" +"Vous devez fournir des dates de début et fin quand la période est " +"personnalisée" #: maillog/apps.py:20 msgid "Path to the log file" @@ -2649,7 +2871,9 @@ msgstr "Activer les identifiants PDF" #: pdfcredentials/app_settings.py:21 msgid "Enabled PDF credentials document generation on account creation." -msgstr "Activer la génération d'un document PDF d'identifiants à la création d'un compte." +msgstr "" +"Activer la génération d'un document PDF d'identifiants à la création d'un " +"compte." #: pdfcredentials/app_settings.py:32 msgid "Documents storage" @@ -2675,7 +2899,9 @@ msgstr "Supprimer les documents après le premier téléchargement" msgid "" "Automatically delete a document just after its first download from this " "interface" -msgstr "Supprimer automatiquement un document juste après son premier téléchargement depuis cette interface" +msgstr "" +"Supprimer automatiquement un document juste après son premier " +"téléchargement depuis cette interface" #: pdfcredentials/app_settings.py:68 msgid "Generate documents only at account creation" @@ -2685,7 +2911,10 @@ msgstr "Générer les documents à la création des comptes uniquement" msgid "" "Generate a new document only when a new account is created. If set to no, a " "new document will be created each time a password is updated." -msgstr "Génère un nouveau document uniquement lors de la création d'un compte. Si défini à non, un nouveau document sera généré chaque fois qu'un mot de passe est changé." +msgstr "" +"Génère un nouveau document uniquement lors de la création d'un compte. Si " +"défini à non, un nouveau document sera généré chaque fois qu'un mot de passe " +"est changé." #: pdfcredentials/app_settings.py:84 msgid "Customization options" @@ -2723,7 +2952,9 @@ msgstr "Inclure les paramètres de connexion pour client mail" msgid "" "Include required SMTP and IMAP connection information to configure a mail " "client, a tablet or a phone" -msgstr "Inclure les paramètres de connexion nécessaires pour configurer un client mail, une tablette ou un téléphone" +msgstr "" +"Inclure les paramètres de connexion nécessaires pour configurer un client " +"mail, une tablette ou un téléphone" #: pdfcredentials/app_settings.py:123 pdfcredentials/documents.py:133 msgid "SMTP server address" @@ -2784,7 +3015,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 "\nCher %s, ce document contient les identifiants dont vous aurez\nbesoin pour vous connecter à Modoboa. Apprenez les puis détruisez\nce document le plus rapidement possible.\n" +msgstr "" +"\n" +"Cher %s, ce document contient les identifiants dont vous aurez\n" +"besoin pour vous connecter à Modoboa. Apprenez les puis détruisez\n" +"ce document le plus rapidement possible.\n" #: pdfcredentials/documents.py:95 msgid "Web panel:" @@ -2803,7 +3038,10 @@ msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" "your contacts.\n" -msgstr "\nD'ici vous pouvez consulter vos emails en ligne n'importe quand, créer des filtres ou gérer vos contacts.\n" +msgstr "" +"\n" +"D'ici vous pouvez consulter vos emails en ligne n'importe quand, créer des " +"filtres ou gérer vos contacts.\n" #: pdfcredentials/documents.py:126 msgid "Please change your password!" @@ -2815,13 +3053,17 @@ msgstr "Configuration PC/Tablette/Smartphone :" #: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." -msgstr "Utilisez ces paramètres pour votre ordinateur, votre tablette ou votre téléphone." +msgstr "" +"Utilisez ces paramètres pour votre ordinateur, votre tablette ou votre " +"téléphone." #: pdfcredentials/handlers.py:35 msgid "" "Failed to create PDF_credentials directory. Please check the permissions or " "the path." -msgstr "Echec lors de la création du répertoire PDF_credentials. Veuillez vérifier les permissions et le chemin d'accès." +msgstr "" +"Echec lors de la création du répertoire PDF_credentials. Veuillez vérifier " +"les permissions et le chemin d'accès." #: pdfcredentials/handlers.py:64 msgid "Download PDF credentials" @@ -2829,18 +3071,23 @@ msgstr "Télécharger les identifiants PDF" #: pdfcredentials/lib.py:29 msgid "Can't write to selected directory to store PDF documents" -msgstr "Impossible d'écrire dans le répertoire sélectionné pour stocker les documents PDF" +msgstr "" +"Impossible d'écrire dans le répertoire sélectionné pour stocker les " +"documents PDF" #: pdfcredentials/lib.py:35 #, python-format msgid "Failed to create the directory that will contain PDF documents (%s)" -msgstr "Echec lors de la création du répertoire qui contiendra les documents PDF (%s)" +msgstr "" +"Echec lors de la création du répertoire qui contiendra les documents PDF (%s)" #: pdfcredentials/lib.py:82 msgid "" "Failed to create PDF_credentials file. Please check the permissions or the " "path." -msgstr "Echec lors de la création du fichier PDF_credentials. Veuillez vérifier les permissions et le chemin d'accès." +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:99 msgid "Daily sending limit reached" @@ -2857,7 +3104,8 @@ msgstr "[modoboa] Limite d'envoi atteinte" #: policyd/templates/policyd/notifications/limit_reached.html:3 #, python-format 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." +msgstr "" +"Limite quotidienne d'envoi du %(ltype)s suivant a été atteinte : %(name)s." #: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" @@ -2897,9 +3145,11 @@ msgstr "Chemin d'accès vers le fichier des clés" #: rspamd/app_settings.py:21 msgid "" -"Absolute path of the file which contains paths to DKIM private keys. Must be" -" readable by _rspamd group or user." -msgstr "Chemin absolu vers le fichier qui contient les chemins vers les clés privées DKIM. Doit être accessible en lecture par l'utilisateur ou le groupe _rspamd." +"Absolute path of the file which contains paths to DKIM private keys. Must be " +"readable by _rspamd group or user." +msgstr "" +"Chemin absolu vers le fichier qui contient les chemins vers les clés privées " +"DKIM. Doit être accessible en lecture par l'utilisateur ou le groupe _rspamd." #: rspamd/app_settings.py:30 msgid "Selector map path" @@ -2909,7 +3159,9 @@ msgstr "Chemin d'accès vers le fichier des sélecteurs" msgid "" "Absolute path of the file which contains names of DKIM selectors. Must be " "readable by _rspamd group or user." -msgstr "Chemin absolu vers le fichier qui contient le nom des sélecteurs DKIM. Doit être accessible en lecture par l'utilisateur ou le groupe _rspamd." +msgstr "" +"Chemin absolu vers le fichier qui contient le nom des sélecteurs DKIM. Doit " +"être accessible en lecture par l'utilisateur ou le groupe _rspamd." #: rspamd/app_settings.py:51 msgid "Rspamd dashboard location" @@ -2917,10 +3169,12 @@ msgstr "Emplacement du tableau de bord Rspamd" #: rspamd/app_settings.py:53 msgid "" -"Location of the rspamd dashboard. Can either be a relative URL (eg. " -"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for " +"Location of the rspamd dashboard. Can either be a relative URL (eg. '/" +"rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for " "guidance on the Super-Admin dashboard." -msgstr "Emplacement du dashboard rspamd. Peut être soit une URL relative (ie. '/rspamd') ou une URL complète (ie. 'https://rspamd.domain.tld')." +msgstr "" +"Emplacement du dashboard rspamd. Peut être soit une URL relative (ie. '/" +"rspamd') ou une URL complète (ie. 'https://rspamd.domain.tld')." #: rspamd/apps.py:18 msgid "Rspamd" @@ -2999,7 +3253,7 @@ msgstr "est" msgid "is not" msgstr "n'est pas" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Sujet" @@ -3045,7 +3299,8 @@ msgstr "Arrêter le traitement" #: sievefilters/lib.py:49 msgid "Connection to MANAGESIEVE server failed, check your configuration" -msgstr "La connexion au serveur MANAGESIEVE a échoué, vérifiez votre configuration" +msgstr "" +"La connexion au serveur MANAGESIEVE a échoué, vérifiez votre configuration" #: sievefilters/lib.py:76 msgid "Not enough space on server" @@ -3100,7 +3355,9 @@ msgstr "Mot de passe oublié ?" msgid "" "Your password has been set. You may go ahead and sign " "in now." -msgstr "Votre mot de passe a été défini. Vous pouvez continuer et vous connecter dès maintenant." +msgstr "" +"Votre mot de passe a été défini. Vous pouvez continuer et vous connecter dès maintenant." #: templates/registration/password_reset_confirm.html:8 msgid "Change password" @@ -3116,7 +3373,10 @@ msgstr "Soumettre" msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." -msgstr "Le lien de réinitialisation du mot de passe était invalide, probablement parce qu'il a déjà été utilisé. Merci de demander une nouvelle réinitialisation de mot de passe." +msgstr "" +"Le lien de réinitialisation du mot de passe était invalide, probablement " +"parce qu'il a déjà été utilisé. Merci de demander une nouvelle " +"réinitialisation de mot de passe." #: templates/registration/password_reset_confirm_code.html:22 msgid "Enter the code you've just received by SMS" @@ -3136,7 +3396,12 @@ msgid "" "exists with the email you entered. You should receive them shortly.

" "

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

" -msgstr "

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

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

" +msgstr "" +"

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

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

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

Nous vous avons envoyé par email les instructions pour définir votr msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" -msgstr "Pour initier la procédure de réinitialisation du mot de passe de votre compte Modoboa %(username)s, cliquez sur le lien ci-dessous :" +msgstr "" +"Pour initier la procédure de réinitialisation du mot de passe de votre " +"compte Modoboa %(username)s, cliquez sur le lien ci-dessous :" #: templates/registration/password_reset_email.html:10 #: templates/registration/password_reset_email_v2.html:10 msgid "" "If clicking the link above doesn't work, please copy and paste the URL in a " "new browser window instead." -msgstr "Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller cette URL dans une nouvelle fenêtre navigateur à la place." +msgstr "" +"Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller " +"cette URL dans une nouvelle fenêtre navigateur à la place." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3180,9 +3449,12 @@ msgstr "Mot de passe jetable" #: 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 "Renseignez le code provenant de l'application double-facteur de votre téléphone mobile. Si vous avez perdu votre téléphone, vous pouvez utiliser l'un de vos codes de récupération." +"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 "" +"Renseignez le code provenant de l'application double-facteur de votre " +"téléphone mobile. Si vous avez perdu votre téléphone, vous pouvez utiliser " +"l'un de vos codes de récupération." #: templates/registration/twofactor_code_verify.html:42 msgid "Verify code" @@ -3219,25 +3491,26 @@ 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 maximale d'une pièce jointe en octets (ou KB, MG, GB si précisé)" +msgstr "" +"Taille maximale d'une pièce jointe en octets (ou KB, MG, GB si précisé)" #: webmail/app_settings.py:67 msgid "SMTP settings" msgstr "Paramètres SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "Adresse de votre serveur SMTP" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "Mode de connexion sécurisé" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "Port d'écoute de votre serveur SMTP" @@ -3249,95 +3522,101 @@ msgstr "Authentification requise" msgid "Server needs authentication" msgstr "Le serveur nécessite une authentification" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Server settings" +msgid "Scheduling settings" +msgstr "Paramètres du serveur" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Mode d'affichage par défaut" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "Le mode par défaut utilisé pour afficher un message" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Activer l'affichage des liens HTML" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Activer/Désactiver l'affichage des liens HTML" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "Définir le nombre maximal de messages affichés dans une page" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Taux de rafraichissement de la liste" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "Taux de rafraichissement automatique de la liste (en secondes)" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Largeur du conteneur des dossiers" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "La largeur du conteneur de la liste des dossiers" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Dossiers" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Dossier poubelle" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Dossier dans lequel vont les messages supprimés" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Dossier envoyé" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Dossier dans lequel vont les copies de messages envoyés" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Dossier brouillon" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Dossier dans lequel vont les brouillons" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "Dossier Junk" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "Dossier dans lequel les messages indésirables doivent aller" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "Rédaction de messages" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "Editeur par défaut" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "L'éditeur à utiliser par défaut pour rédiger un message" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Texte de signature" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Signature email personnalisée" @@ -3349,43 +3628,70 @@ msgstr "Réponse du serveur" msgid "Failed to remove attachment: " msgstr "Impossible de supprimer la pièce jointe :" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "a écrit :" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Date" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "Message original" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Echec lors de la récupération du séparateur de hierarchie" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Boite de réception" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "Brouillons" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "Indésirables" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Envoyés" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Corbeille" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "La pièce jointe est trop grosse (limite : %s)" + +#~ msgid "User profile" +#~ msgstr "Profil utilisateur" + +#~ msgid "Default top redirection" +#~ msgstr "Redirection par défaut" + +#~ 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" diff --git a/modoboa/locale/hu/LC_MESSAGES/django.po b/modoboa/locale/hu/LC_MESSAGES/django.po index 871f47c94..5060b254b 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,14 +41,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -57,7 +57,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -65,13 +65,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -112,39 +111,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -236,141 +235,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -390,6 +399,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -412,8 +450,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -423,11 +461,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -479,35 +517,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -684,17 +693,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -863,11 +872,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1110,7 +1119,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1128,11 +1137,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1211,7 +1220,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1223,24 +1232,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1265,525 +1270,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2104,7 +2101,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2982,7 +2979,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3208,19 +3205,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3232,95 +3229,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3332,43 +3333,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 9885da807..f8677be00 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2018-11-01 16:31+0000\n" "Last-Translator: marcotrevisan \n" "Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/" @@ -51,14 +51,14 @@ msgstr "" "Non può essere maggiore dello spazio massimo definito a livello di dominio" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Permesso negato." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Questo campo è obbligatorio" @@ -69,7 +69,7 @@ msgstr "" "Lista dei domini amministrati (solo per rivenditori e amministratori di " "dominio)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Non consentito per questo ruolo." @@ -77,13 +77,12 @@ msgstr "Non consentito per questo ruolo." msgid "Must be equal to mailbox full_address" msgstr "Deve essere uguale a full_address della casella di posta" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Questo campo è obbligatorio." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Il dominio locale {} non esiste" @@ -126,41 +125,41 @@ msgstr "Non puoi definire uno spazio illimitato." msgid "User '%s' already exists" msgstr "L'utente '%s' esiste già" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Dev'essere un intero positivo" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "openssl non trovato, assicurarsi che sia installato." -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Cartella non trovata." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Definire almeno una rete / indirizzo autorizzato" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "É necessaria una casella" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -276,19 +275,29 @@ msgstr "Abilita i controlli DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Verifica ciascun dominio sui principali provider DNSBL" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "DNS server custom" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Cartella di salvataggio delle chiavi DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -298,19 +307,19 @@ msgstr "" "salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e " "che non sia leggibile da altri." -#: admin/app_settings.py:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Lunghezza predefinita delle chiavi DKIM" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Quota predefinita per il domini" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -318,28 +327,28 @@ msgstr "" "Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. " "Un valore 0 implica nessuna quota." -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Quota predefinita per il domini" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Caselle di posta" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Gestione delle caselle di posta nel filsystem" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -347,11 +356,11 @@ msgstr "" "Rinomina o rimuovi le caselle di posta nel filesystem quando vengono " "rinominate o cancellate in Modoboa " -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Dimensione massima predefinita per le mailbox" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created domains with no " @@ -363,77 +372,77 @@ 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:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Dimensione massima predefinita per le mailbox" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Rimozione automatica dell'account" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Creazione automatica del domini/casella di posta elettronica" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Crea un alias quando una mailbox viene rinominata" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 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." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Amministrazione" @@ -455,6 +464,39 @@ msgstr "" msgid "Closed" msgstr "Chiudi" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain {} has no MX record" +msgid "Domain has no MX record" +msgstr "Il dominio {} non ha record MX" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Il dominio {} non ha record MX" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "MX records of {}" +msgid "Invalid MX record: {}" +msgstr "Record MX di {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "Il record MX per il dominio {0} non è valido: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] problema(/i) MX per il dominio {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] problema(/i) DNSBL per il dominio {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "alias del dominio" @@ -477,8 +519,8 @@ msgstr "Non hai i permessi di importare domini" msgid "You are not allowed to import domain aliases." msgstr "Non hai i permessi di importare gli alias dominio" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" @@ -490,11 +532,11 @@ msgstr "Nessun record DNS trovato per %s" msgid "No %(type)s record for %(name)s" msgstr "Nessun record MX per %s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Nessun DNS server funzionante trovato" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -551,39 +593,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Abilita la comunicazione con l'API pubblica di modoboa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Domain {} has no MX record" -msgid "Domain has no MX record" -msgstr "Il dominio {} non ha record MX" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Il dominio {} non ha record MX" - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "MX records of {}" -msgid "Invalid MX record: {}" -msgstr "Record MX di {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "Il record MX per il dominio {0} non è valido: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] problema(/i) MX per il dominio {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] problema(/i) DNSBL per il dominio {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Dominio non trovato." @@ -784,17 +793,17 @@ msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" "Modoboa ha rilevato che il dominio %(domain)snon ha un record MX valido:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Nessun record MX per %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Formato non valido per l'indirizzo IP %(domain)s;%(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -1006,13 +1015,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display details" msgid "Display" msgstr "Mostra" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1307,7 +1316,7 @@ msgstr "" "Permetti a questo amministratore di accedere alle caselle di posta degli " "utenti" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Varie" @@ -1325,11 +1334,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "Posizione del server non impostata, si prega di correggere." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1420,7 +1429,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1434,24 +1443,20 @@ msgstr "" msgid "Local" msgstr "Locale" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Profilo utente" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Sintassi errata" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Numero di cicli non valido" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1482,38 +1487,38 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Autenticazione" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Tipo di autenticazione" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Il backend utilizzato per l'autenticazione" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Schema password predefinito" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" "Schema utilizzato per la criptazione delle password delle caselle di posta" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Cicli" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1521,160 +1526,160 @@ msgstr "" "Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). Deve " "essere compreso tra 1000 e 999999999." -#: core/app_settings.py:73 +#: core/app_settings.py:61 #, fuzzy #| msgid "Update password scheme" msgid "Update password scheme at login" msgstr "Aggiorna lo schema di password" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Password predefinita" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Password predefinita per gli account creati automaticamente." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Lunghezza della password casuale" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Lunghezza delle password generate casualmente" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Lunghezza delle password generate casualmente" -#: core/app_settings.py:114 +#: core/app_settings.py:102 #, fuzzy #| msgid "Update password scheme" msgid "Update password service URL" msgstr "Aggiorna lo schema di password" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Indirizzo del server" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Porta del server" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Il numero della porta TCP utilizzata dal server LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Indirizzo del server" -#: core/app_settings.py:202 +#: core/app_settings.py:190 #, 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:209 +#: core/app_settings.py:197 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Porta del server" -#: core/app_settings.py:212 +#: core/app_settings.py:200 #, 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Usa una connessione sicura" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Segnala se il server LDAP è una Active Directory" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Gruppi degli amministratori" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1683,51 +1688,51 @@ msgstr "" "amministratori di dominio. Utilizza il carattere ';' per separare valori " "multipli." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Tipo di gruppo" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Il tipo di gruppo LDAP da utilizzare nella Directory" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Base di ricerca per i gruppi" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Attributo della password" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "L'attributo utilizzato per memorizzare le password degli utenti" -#: core/app_settings.py:276 +#: core/app_settings.py:264 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Metodo di autenticazione" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Metodo di autenticazione" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Scegli il metodo di autenticazione da usare" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Collega DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1735,31 +1740,31 @@ msgstr "" "DN (Nome distinto univoco) da usare quando ci si collega al server LDAP. " "Lasciare vuoto per un collegamento anonimo" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Password del collegamento" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Base di ricerca per gli utenti" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtro ricerca" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1767,11 +1772,11 @@ msgstr "" "Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere " "valida deve essere racchiusa tra parentesi." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Modello DN dell'utente" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1780,38 +1785,38 @@ msgstr "" "Il modello utilizzato per comporre il DN degli utenti. Deve contenere un " "segnaposto (p.es. %(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "Impostazioni LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "Modello DN dell'utente" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, fuzzy, python-format #| msgid "" #| "The template used to construct a user's DN. It should contain one " @@ -1823,204 +1828,204 @@ msgstr "" "Il modello utilizzato per comporre il DN degli utenti. Deve contenere un " "segnaposto (p.es. %(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Attributo della password" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 #, fuzzy #| msgid "Enable communication" msgid "Enable Dovecot LDAP sync" msgstr "Abilita comunicazione" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Messaggio personalizzato" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "A custom message that will appear at the end of documents" msgid "A welcome message that will be displayed instead the default one" msgstr "Un messaggio personalizzato comparirà alla fine dei documenti" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "RSS feed custom" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "Mostra RSS feed custom a rivenditori e amministratori di dominio" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "Mostra RSS feed custom a rivenditori e amministratori di dominio" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Nascondi il widget delle feature" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Email alternativa" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notifiche" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Indirizzo di invio" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Indirizzo email utilizzato per inviare le notifiche" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "API pubblica" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Abilita comunicazione" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Controlla automaticamente se è disponibile una nuova versione" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Controlla nuove versioni" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Destinatario" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Invia statistiche" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Soglia account inattivo" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Soglia account inattivo" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -2028,48 +2033,38 @@ msgstr "" "Un account con una data di ultimo accesso più vecchia di questa soglia (in " "giorni) verrà considerato inattivo" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Intervallo notifiche" -#: core/app_settings.py:710 +#: core/app_settings.py:698 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:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Età massima dei log" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "La persistenza massima in giorni dei log" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Elementi per pagina" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Numero degli elementi visualizzati in ciascuna pagina" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Reindirizzamento principale predefinito" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"Redirezione predefinita utilizzata quando non è specificata alcuna " -"applicazione" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2416,7 +2411,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Nessuno" @@ -3393,7 +3388,7 @@ msgstr "è" msgid "is not" msgstr "non è" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Oggetto" @@ -3659,25 +3654,25 @@ msgstr "" msgid "SMTP settings" msgstr "Impostazioni SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of your SMTP server" msgstr "Indirizzo del tuo server SMTP" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Modalità di connessione sicura" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3694,110 +3689,116 @@ msgstr "È richiesta l'autenticazione" msgid "Server needs authentication" msgstr "Il server richiede l'autenticazione" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Connection settings" +msgid "Scheduling settings" +msgstr "Impostazioni ManageSieve" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Modalità di visualizzazione del messaggio predefinita" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Attiva la visualizzazione dei collegamenti HTML" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Attiva/Disattiva la visualizzazione dei collegamenti HTML" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Frequenza di aggiornamento dell'elenco" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Larghezza del contenitore delle caselle" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "Larghezza della lista delle caselle" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Cestino" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "Cartella dove finiscono i messaggi eliminati" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Inviati" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Cartella dove finiscono le copie dei messaggi spediti" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Bozze" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Cartella dove finiscono le bozze" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Sent folder" msgid "Junk folder" msgstr "Inviati" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "Cartella dove finiscono i messaggi eliminati" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Composizione messaggi" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Editor predefinito" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Testo signature" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Signature delle e-mail personalizzato dall'utente" @@ -3813,47 +3814,74 @@ msgstr "Indirizzo del server" msgid "Failed to remove attachment: " msgstr "Rimozione allegato fallita: " -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Data" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Tutti i messaggi" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Impossibile recuperare il delimitatore delle gerarchie" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Drafts folder" msgid "Drafts" msgstr "Bozze" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "L'allegato è troppo grande (limite: %s)" + +#~ msgid "User profile" +#~ msgstr "Profilo utente" + +#~ msgid "Default top redirection" +#~ msgstr "Reindirizzamento principale predefinito" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "Redirezione predefinita utilizzata quando non è specificata alcuna " +#~ "applicazione" diff --git a/modoboa/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/locale/ja_JP/LC_MESSAGES/django.po index bfa789be4..c3423c4f5 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,25 +12,30 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\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-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:39 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:46 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgstr "メールボックスの容量制限のデフォルト値を MB で指定します。値を 0 にすると容量制限しません。" +msgstr "" +"メールボックスの容量制限のデフォルト値を MB で指定します。値を 0 にすると容量" +"制限しません。" #: admin/api/v1/serializers.py:94 msgid "domain alias with this name already exists" @@ -45,14 +50,14 @@ msgid "Cannot be greater than domain quota" msgstr "ドメインの容量制限より大きくすることはできません" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "権限がありません。" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "このフィールドは必須です" @@ -61,7 +66,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "管理下ドメインリスト ( リセラーとドメイン管理者のみ )" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "このロールは許可されていません。" @@ -69,13 +74,12 @@ msgstr "このロールは許可されていません。" msgid "Must be equal to mailbox full_address" msgstr "メールボックスの full_address と同じにしてください" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "このフィールドは必須です。" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "ローカルドメイン {} は、存在しません" @@ -116,39 +120,39 @@ msgstr "容量制限を無制限に設定できません。" msgid "User '%s' already exists" msgstr "ユーザー「%s」はすでに存在します" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "正の整数を入力してください" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "openssl が見つかりません。インストールを確認してください。" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "ディレクトリーが見つかりません。" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "有効な IP アドレス ( またはネットワーク ) を入力してください" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "この設定を無効にする前に、IMAP 移行を無効にしてください。" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "認証済みのネットワークかアドレスを少なくとも 1 つ以上定義してください" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "メールアドレスの左部分を 64 文字以下にしてください。" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "エイリアスを作成するにはメールボックスが必要です。" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "不明な状態" @@ -178,9 +182,11 @@ msgstr "有効な MX" #: admin/app_settings.py:37 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 またはネットワークアドレスのリスト。レコードが期待通りでない場合は、警告を送信します。" +"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:47 msgid "New domains must use authorized MX(s)" @@ -190,7 +196,9 @@ msgstr "新しいドメインには承認済みの MX 利用を強制" msgid "" "Prevent the creation of a new domain if its MX record does not use one of " "the defined addresses." -msgstr "MX レコードが定義したアドレスのいずれかを使用していない場合、新しいドメインの作成を防止します。" +msgstr "" +"MX レコードが定義したアドレスのいずれかを使用していない場合、新しいドメインの" +"作成を防止します。" #: admin/app_settings.py:59 msgid "Enable IPV6 checks" @@ -214,7 +222,9 @@ msgstr "DKIM チェック有効" #: admin/app_settings.py:80 msgid "Check if every domain with DKIM signin enabled has a valid DNS record" -msgstr "各 DKIM 署名のあるすべてのドメインに有効な DNS レコードがあるかをチェックします" +msgstr "" +"各 DKIM 署名のあるすべてのドメインに有効な DNS レコードがあるかをチェックしま" +"す" #: admin/app_settings.py:88 msgid "Enable DMARC checks" @@ -240,142 +250,169 @@ msgstr "DNSBL チェック有効" msgid "Check every domain against major DNSBL providers" msgstr "各ドメインを主な DNSBL でチェックします" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "カスタム DNS サーバー" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" -msgstr "ローカルサーバーで設定された DNS サーバーではなく、カスタム DNS サーバーを利用します" +msgstr "" +"ローカルサーバーで設定された DNS サーバーではなく、カスタム DNS サーバーを利" +"用します" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "DKIM キー保存ディレクトリー" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "DKIM キー長のデフォルト" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "新たに生成する DKIM キーの長さのデフォルト値です。" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "ドメイン容量制限のデフォルト" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." -msgstr "特に値をせずに新たにドメインを作成する際の容量制限のデフォルト値 ( MB ) 。値を 0 にすると容量制限しません。" +msgstr "" +"特に値をせずに新たにドメインを作成する際の容量制限のデフォルト値 ( MB ) 。値" +"を 0 にすると容量制限しません。" -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "ドメイン送信通数制限のデフォルト" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." -msgstr "新たにドメインを作成する際、1 日間に送信可能なメッセージ数。空にすると制限しません。" +msgstr "" +"新たにドメインを作成する際、1 日間に送信可能なメッセージ数。空にすると制限し" +"ません。" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "メールボックス" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "ファイルシステムのメールボックスも操作" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" -msgstr "Modoboa でメールボックスを変名・削除すると、ファイルシステム上も変名・削除する" +msgstr "" +"Modoboa でメールボックスを変名・削除すると、ファイルシステム上も変名・削除す" +"る" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "メールボックス容量制限のデフォルト" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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 にすると容量制限しません。" +msgstr "" +"特に値をせずに新たにドメインを作成する際の、メールボックスの容量制限のデフォ" +"ルト値 ( MB ) 。値を 0 にすると容量制限しません。" -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "メールボックス送信通数制限のデフォルト" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." -msgstr "新たにメールボックスを作成する際に設定する、1 日に送信できるメッセージ数。空にすると制限しません。" +msgstr "" +"新たにメールボックスを作成する際に設定する、1 日に送信できるメッセージ数。空" +"にすると制限しません。" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "自動アカウント削除" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "メールボックスを削除すると、関連するアカウントも削除します" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "自動ドメイン・メールボックス作成" -#: admin/app_settings.py:221 -msgid "" -"Create a domain and a mailbox when an account is automatically created." +#: admin/app_settings.py:233 +msgid "Create a domain and a mailbox when an account is automatically created." msgstr "アカウントを作成するとドメインとメールボックスも自動で作成します。" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "メールボックスの変名でエイリアスを作成" -#: admin/app_settings.py:233 -msgid "Create an alias using the old address when a mailbox is renamed." -msgstr "メールボックスの名前を変更する際、古いアドレスをエイリアスとして作成します。" - #: admin/app_settings.py:245 +msgid "Create an alias using the old address when a mailbox is renamed." +msgstr "" +"メールボックスの名前を変更する際、古いアドレスをエイリアスとして作成します。" + +#: admin/app_settings.py:257 msgid "Aliases" msgstr "エイリアス" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "エイリアスはどのドメインにも設定可" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." -msgstr "エイリアスは、ローカルドメインだけでなく、どのドメインに対しても設定できます。" +msgstr "" +"エイリアスは、ローカルドメインだけでなく、どのドメインに対しても設定できま" +"す。" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "エイリアス対象ブロックリスト" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." -msgstr "エイリアスの対象として設定不可とするドメインのリスト ( カンマ区切り ) 。" +msgstr "" +"エイリアスの対象として設定不可とするドメインのリスト ( カンマ区切り ) 。" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "エイリアス対象許可リスト" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "エイリアスの対象として設定可とするドメインのリスト ( カンマ区切り ) 。" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "管理" @@ -395,6 +432,35 @@ msgstr "要対応" msgid "Closed" msgstr "済" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} が DNSBL・{} に掲載されています" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "ドメインに MX レコードがありません" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "{} ドメインは MX レコードがありません" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "無効な MX レコード : {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "{0} ドメインの MX レコードが無効です : {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] {} ドメインの MX 問題" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] {} ドメインの DNSBL 問題" + #: admin/handlers.py:179 msgid "domain alias" msgstr "ドメインエイリアス" @@ -417,8 +483,8 @@ msgstr "ドメインをインポートする権限がありません" msgid "You are not allowed to import domain aliases." msgstr "ドメインエイリアスをインポートする権限がありません" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "%s の DNS レコードが見つかりません" @@ -428,14 +494,15 @@ msgstr "%s の DNS レコードが見つかりません" msgid "No %(type)s record for %(name)s" msgstr "%(name)s の %(type)s レコードなし" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "稼働しているサーバーが見つかりません" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" -msgstr "DNS 名前解決でタイムアウトが発生し、今のところ %s の問い合わせはできません" +msgstr "" +"DNS 名前解決でタイムアウトが発生し、今のところ %s の問い合わせはできません" #: admin/lib.py:241 msgid "DNS name is too long: {}" @@ -458,7 +525,8 @@ msgstr "%d 個のオブジェクトをインポートしました" #: admin/management/commands/subcommands/_import.py:97 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" -msgstr "CSV ファイルが UTF-8 でエンコードされていません。エンコードの推測を試みます" +msgstr "" +"CSV ファイルが UTF-8 でエンコードされていません。エンコードの推測を試みます" #: admin/management/commands/subcommands/_import.py:112 #, python-format @@ -474,7 +542,9 @@ msgstr "%(encoding)s エンコードでは CSV ファイルをデコードでき msgid "" "DKIM path non-writable (either a permission issue or the directory does not " "exist)" -msgstr "DKIM パスが書き込みできません ( 権限問題か、ディレクトリーが存在しないかのいずれかです )" +msgstr "" +"DKIM パスが書き込みできません ( 権限問題か、ディレクトリーが存在しないかのい" +"ずれかです )" #: admin/management/commands/subcommands/_manage_dkim_keys.py:52 msgid "Failed to generate DKIM private key" @@ -484,35 +554,6 @@ msgstr "DKIM プライベートキーの生成に失敗" msgid "Failed to generate DKIM public key" msgstr "DKIM 公開キーの生成に失敗" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} が DNSBL・{} に掲載されています" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "ドメインに MX レコードがありません" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "{} ドメインは MX レコードがありません" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "無効な MX レコード : {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "{0} ドメインの MX レコードが無効です : {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] {} ドメインの MX 問題" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] {} ドメインの DNSBL 問題" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "ドメインが見つかりません。" @@ -622,7 +663,9 @@ msgstr "{} : ドメインの各メールボックスの容量制限の値が無 #: admin/models/domain.py:350 msgid "{}: default mailbox quota cannot be greater than domain quota" -msgstr "{} : 各メールボックスの容量制限の値は、ドメインの容量制限の値より小さくしてください" +msgstr "" +"{} : 各メールボックスの容量制限の値は、ドメインの容量制限の値より小さくしてく" +"ださい" #: admin/models/domain_alias.py:36 msgid "The alias name" @@ -682,24 +725,27 @@ 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 msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa が %(domain)s ドメインの有効な MX レコードがないことを検出 : " -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "%s の MX レコードなし" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "%(domain)s の IP アドレス書式が無効です ; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "%s の AAAA レコードなし" @@ -714,7 +760,9 @@ msgstr "Localpart は大文字・小文字を区別します" #: amavis/app_settings.py:19 msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive" -msgstr "この値は amavisd.conf の $localpart_is_case_sensitive の設定値と合致すべきです。" +msgstr "" +"この値は amavisd.conf の $localpart_is_case_sensitive の設定値と合致すべきで" +"す。" #: amavis/app_settings.py:27 msgid "Recipient delimiter" @@ -722,7 +770,8 @@ msgstr "受信者の区切り文字" #: amavis/app_settings.py:29 msgid "Value should match amavisd.conf variable $recipient_delimiter" -msgstr "この値は amavisd.conf の $recipient_delimiter の設定値と合致すべきです。" +msgstr "" +"この値は amavisd.conf の $recipient_delimiter の設定値と合致すべきです。" #: amavis/app_settings.py:41 msgid "Quarantine settings" @@ -746,7 +795,8 @@ msgstr "解放したメッセージを削除" #: amavis/app_settings.py:68 msgid "Remove messages marked as released while cleaning up the database" -msgstr "データベースのクリーンアップ時に、解放済みマークのメッセージを削除します" +msgstr "" +"データベースのクリーンアップ時に、解放済みマークのメッセージを削除します" #: amavis/app_settings.py:76 msgid "Amavis connection mode" @@ -856,7 +906,9 @@ msgstr "ドメインごとの手動学習を有効に" msgid "" "Allow domain administrators to train Spamassassin (within dedicated per-" "domain databases)" -msgstr "ドメイン管理者に Spamassassin(専用のドメインごとのデータベース) のトレーニングを許可する" +msgstr "" +"ドメイン管理者に Spamassassin(専用のドメインごとのデータベース) のトレーニン" +"グを許可する" #: amavis/app_settings.py:215 msgid "Enable per-user manual learning" @@ -866,13 +918,14 @@ msgstr "ユーザーごとの手動学習を有効に" msgid "" "Allow simple users to personally train Spamassassin (within a dedicated " "database)" -msgstr "標準ユーザーに Spamassassin ( 専用のデータベース ) の個人的な学習を許可します" +msgstr "" +"標準ユーザーに Spamassassin ( 専用のデータベース ) の個人的な学習を許可します" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "表示" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "1 ページに表示するメールの数" @@ -888,17 +941,22 @@ msgstr "Amavis" msgid "" "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used " "by the Amavis database." -msgstr "AMAVIS_DEFAULT_DATABASE_ENCODING が Amavis データベースで設定している文字エンコーディングと一致しません。" +msgstr "" +"AMAVIS_DEFAULT_DATABASE_ENCODING が Amavis データベースで設定している文字エン" +"コーディングと一致しません。" #: amavis/checks/settings_checks.py:12 msgid "" "Check your database character encoding and set/update " "AMAVIS_DEFAULT_DATABASE_ENCODING." -msgstr "データベースの文字エンコーディングを確認して、AMAVIS_DEFAULT_DATABASE_ENCODING を設定・更新してください。" +msgstr "" +"データベースの文字エンコーディングを確認して、" +"AMAVIS_DEFAULT_DATABASE_ENCODING を設定・更新してください。" #: amavis/checks/settings_checks.py:19 msgid "Modoboa Amavis has not been tested using the selected database engine." -msgstr "Modoboa Amavis は選択したデータベースエンジンを使ったテストをしていません。" +msgstr "" +"Modoboa Amavis は選択したデータベースエンジンを使ったテストをしていません。" #: amavis/checks/settings_checks.py:20 msgid "Try using PostgreSQL, MySQL or MariaDB." @@ -947,7 +1005,9 @@ msgstr "デフォルト" #: amavis/models.py:111 msgid "Bypass virus checks or not. Choose 'default' to use global settings." -msgstr "ウイルスチェックをする・しないを設定します。「デフォルト」を選択すると全体設定を使用します。" +msgstr "" +"ウイルスチェックをする・しないを設定します。「デフォルト」を選択すると全体設" +"定を使用します。" #: amavis/models.py:115 msgid "Spam filter" @@ -955,7 +1015,9 @@ msgstr "SPAM フィルター" #: amavis/models.py:125 msgid "Bypass spam checks or not. Choose 'default' to use global settings." -msgstr "SPAM チェックをする・しないを設定します。「デフォルト」を選択すると全体設定を使用します。" +msgstr "" +"SPAM チェックをする・しないを設定します。「デフォルト」を選択すると全体設定を" +"使用します。" #: amavis/models.py:129 msgid "Banned filter" @@ -963,7 +1025,9 @@ msgstr "ブロックフィルター" #: amavis/models.py:139 msgid "Bypass banned checks or not. Choose 'default' to use global settings." -msgstr "ブロックチェックをする・しないを設定します。「デフォルト」を選択すると全体設定を使用します。" +msgstr "" +"ブロックチェックをする・しないを設定します。「デフォルト」を選択すると全体設" +"定を使用します。" #: amavis/models.py:170 msgid "Spam marker" @@ -971,9 +1035,11 @@ msgstr "SPAM マーカー" #: amavis/models.py:176 msgid "" -"Modify spam subject using the specified text. Choose 'default' to use global" -" settings." -msgstr "指定したテキストで SPAM の件名を変更します。「デフォルト」を選択すると全体設定を使用します。" +"Modify spam subject using the specified text. Choose 'default' to use global " +"settings." +msgstr "" +"指定したテキストで SPAM の件名を変更します。「デフォルト」を選択すると全体設" +"定を使用します。" #: amavis/templates/amavis/notifications/pending_requests.html:3 #, python-format @@ -1055,7 +1121,9 @@ msgstr "自動応答メッセージを自動生成する際の件名のデフォ msgid "" "Default content used when an auto-reply message is created automatically. " "The '%(name)s' macro will be replaced by the user's full name." -msgstr "自動応答メッセージを自動生成する際の本文のデフォルト値。「%(name)s」マクロはユーザーのフルネームに置き換えます。" +msgstr "" +"自動応答メッセージを自動生成する際の本文のデフォルト値。「%(name)s」マクロは" +"ユーザーのフルネームに置き換えます。" #: autoreply/apps.py:15 msgid "Automatic replies" @@ -1112,9 +1180,10 @@ msgstr "カレンダー管理を許可" #: calendars/app_settings.py:48 msgid "Allow domain administrators to manage user calendars (read and write)" -msgstr "ドメイン管理者にユーザーカレンダーの管理 ( 読み取り・書き込み ) を許可します" +msgstr "" +"ドメイン管理者にユーザーカレンダーの管理 ( 読み取り・書き込み ) を許可します" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "その他" @@ -1126,17 +1195,18 @@ msgstr "ICS ファイルの最大サイズ" #: calendars/app_settings.py:68 msgid "" "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)" -msgstr "インポートする ICS ファイルの最大サイズをバイト ( または KB、MB、GB ) で指定" +msgstr "" +"インポートする ICS ファイルの最大サイズをバイト ( または KB、MB、GB ) で指定" #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205 msgid "Calendars" msgstr "カレンダー" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "サーバーの場所を設定していないので登録してください。" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "アップロード ファイルが大きすぎます ( 最大 : {} バイト )" @@ -1152,7 +1222,9 @@ msgstr "CardDAV でアドレス帳を同期します" msgid "" "Choose to synchronize or not your address book using CardDAV. You will be " "able to access your contacts from the outside." -msgstr "CardDAV を使ってアドレス帳の同期を行うか・行わないかを選んでください。同期すると外からアドレス帳にアクセスできます。" +msgstr "" +"CardDAV を使ってアドレス帳の同期を行うか・行わないかを選んでください。同期す" +"ると外からアドレス帳にアクセスできます。" #: contacts/app_settings.py:29 msgid "Synchronization frequency" @@ -1215,7 +1287,7 @@ msgstr "2FA はすでに有効です" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "「%(addr)s」から「%(user)s」ユーザーの 2FA 設定変更は失敗" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "無効なパスワード" @@ -1227,25 +1299,20 @@ msgstr "2 要素認証が無効" msgid "Local" msgstr "ローカル" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "ユーザープロフィール" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "不正な構文" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "不正なラウンド数" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "このコードは無効です" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 -#: core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "Modoboa のパスワード再設定で利用するコード : {}" @@ -1270,531 +1337,552 @@ msgid "Calendar" msgstr "カレンダー" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "Web メール" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "認証" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "認証の種類" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "認証バックエンド" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "デフォルトのパスワードスキーマ" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "メールボックス パスワードを暗号化する際のスキーマ" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "ラウンド" -#: core/app_settings.py:63 +#: core/app_settings.py:51 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "ログイン時にパスワード スキーマを更新" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" -msgstr "デフォルトのパスワード スキーマに切り替えるため、ログイン時にパスワードを更新します" +msgstr "" +"デフォルトのパスワード スキーマに切り替えるため、ログイン時にパスワードを更新" +"します" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "デフォルト パスワード" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "アカウント自動作成で使用するデフォルト パスワード" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "ランダムパスワード長" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "ランダムで生成するパスワードの長さ。" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "ランダムパスワードに特殊文字を許可" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "ランダムに生成するパスワードに特殊文字を含めます" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "パスワードサービス URL を更新" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "パスワード再設定の案内" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "パスワード再設定ページに表示する一時的なメッセージ" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "SMS を使ったパスワード再設定" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "電話番号を入力したユーザーは SMS によるパスワード再設定を有効にする" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS 事業者" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "パスワード再設定の SMS を送信する業者を選んでください" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "LDAP" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "サーバーアドレス" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "LDAP サーバーの IP アドレスまたは DNS 名" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "サーバーポート" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "LDAP サーバーの TCP ポート番号" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "セカンダリーサーバー ( フォールバック ) を有効にする" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" -msgstr "セカンダリー LDAP サーバー。プライマリーサーバーで失敗した際に利用します。" +msgstr "" +"セカンダリー LDAP サーバー。プライマリーサーバーで失敗した際に利用します。" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "セカンダリーサーバー アドレス" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "セカンダリー LDAP サーバーの IP アドレスまたは DNS 名" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "セカンダリーサーバー ポート" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "セカンダリー LDAP サーバーの TCP ポート番号" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "暗号化接続を使う" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "LDAP サーバー に接続する際に SSL/STARTTLS を使います" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "LDAP サーバーは Active Directory ですか?" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "管理者グループ" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" -"Members of those LDAP Posix groups will be created as domain administrators." -" Use ';' characters to separate groups." -msgstr "ここで指定する LDAP の Posix グループのメンバーをドメイン管理者として作成します。複数のグループを指定する際は「;」で区切ってください。" +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." +msgstr "" +"ここで指定する LDAP の Posix グループのメンバーをドメイン管理者として作成しま" +"す。複数のグループを指定する際は「;」で区切ってください。" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "グループタイプ" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "ディレクトリーで使用している LDAP グループのタイプ。" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "グループの検索ベース" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "グループを探す際の検索ベースの識別名 ( DN )" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "パスワード属性" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "ユーザーパスワードを格納している属性" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP 認証設定" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "認証方式" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "使用する認証方式を選択" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "バインド DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" -msgstr "LDAP サーバーにバインドする際の識別名。空のままにすると匿名バインドです。" +msgstr "" +"LDAP サーバーにバインドする際の識別名。空のままにすると匿名バインドです。" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "バインド パスワード" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "(「バインド DN」で ) LDAP サーバーにバインドする際のパスワード" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "ユーザーの検索ベース" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "ユーザーを探す際の検索ベースの識別名 ( DN )" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "検索フィルター" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." -msgstr "オプションのフィルタ文字列 ( 例 : (objectClass=person) )。「()」カッコで囲まないと有効になりません。" +msgstr "" +"オプションのフィルタ文字列 ( 例 : (objectClass=person) )。「()」カッコで囲ま" +"ないと有効になりません。" -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "ユーザー DN テンプレート" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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 ) を含めてください。" +msgstr "" +"ユーザー DN を作成する際のテンプレート。1 つのプレースホルダー ( 例 : " +"%(user)s ) を含めてください。" -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP 同期設定" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "LDAP へのエクスポートを有効" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "ローカル データベース・LDAP ディレクトリー間での自動同期を有効にする" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "ローカルアカウントを削除するとリモート LDAP のアカウントも削除する" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." -msgstr "ローカルアカウントを削除すると、リモートLDAPアカウントも削除、または無効にします。" +msgstr "" +"ローカルアカウントを削除すると、リモートLDAPアカウントも削除、または無効にし" +"ます。" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "アカウント DN テンプレート" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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 ) を含めてください。" +msgstr "" +"アカウント DN を作成する際のテンプレート。1 つのプレースホルダー ( 例 : " +"%(user)s ) を含めてください。" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "LDAP からのインポートを有効" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" -msgstr "LDAP ディレクトリーからローカル データベースへのアカウント同期を有効にします" +msgstr "" +"LDAP ディレクトリーからローカル データベースへのアカウント同期を有効にします" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "ユーザー名属性" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "ユーザー名を格納している LDAP 属性名。" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Dovecot LDAP 同期を有効" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "LDAP 認証設定を Dovecot の設定に適用します。" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP 設定ファイル" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "Dovecot の LDAP 設定ファイルの場所。" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "ダッシュボード" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "ようこそメッセージのカスタマイズ" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "ようこそメッセージをデフォルトのものから変更します" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "カスタム RSS フィード" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "リセラーとドメイン管理者に表示する独自 RSS フィードを設定します。" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "スーパー管理者にカスタマイズした RSS フィードを表示します" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "カスタマイズした RSS フィードをスーパー管理者にも表示します" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "機能ウィジェットを非表示に" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "リセラーとドメイン管理者の機能ウィジェットを非表示にします" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "テーマ" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "主要なテーマカラー" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" -msgstr "テーマの主要な色 ( 16進数コードで指定 )で、左メニューの背景色などに使います。" +msgstr "" +"テーマの主要な色 ( 16進数コードで指定 )で、左メニューの背景色などに使います。" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "主要なテーマカラー ( ライトバージョン )" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "主要なテーマカラー ( 16進数カード )" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "主要なテーマカラー ( ダークバージョン )" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "サブのテーマカラー" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" -msgstr "テーマのサブの色 ( 16進数コードで指定 ) で、いくつかのボタンの背景色などに使います。" +msgstr "" +"テーマのサブの色 ( 16進数コードで指定 ) で、いくつかのボタンの背景色などに使" +"います。" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "ラベルテーマカラー" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "ラベルのテーマカラー ( 16進数コード )" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "通知" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "送信者アドレス" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "通知を送信するメールアドレスです。" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "パブリック API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "通信を有効に" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "新しいバージョンのリリースを自動チェックする" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "新しいバージョンをチェックする" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "新バージョンリリースでメールを送信" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "新しいバージョンがリリースされたら管理者にメールで通知" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "受信者" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "新しいバージョンのリリースを通知するメールの受信者を指定してください。" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "統計を送信" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "Modoboa パブリック API の統計 ( 数と利用拡張機能 ) を送信します" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "非利用アカウント追跡を有効に" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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 "ユーザーがログインしておらず、アカウント非利用とみなす期間 ( 日 ) を設定することを管理者に許可します" +"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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "アカウントを非利用とみなすログイン間隔" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" -"An account with a last login date greater than this threshold (in days) will" -" be considered as inactive" -msgstr "最終ログイン日が、このしきい値 ( 日数 ) よりも以前になったアカウントを非利用とみなします" +"An account with a last login date greater than this threshold (in days) will " +"be considered as inactive" +msgstr "" +"最終ログイン日が、このしきい値 ( 日数 ) よりも以前になったアカウントを非利用" +"とみなします" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "ページトップ通知のチェック間隔" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "2 つのページトップの通知のチェックの間隔 ( 秒 )" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "最大ログ記録期間" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "ログを記録する日数の最大期間" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "メッセージ履歴の保持期間" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "メッセージ履歴セクションにメッセージを保持する期間 ( 単位 : 日 )" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "ページあたりの件数" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "ページあたりに表示される項目の数" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "デフォルトのリダイレクト先" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "アプリケーションが未指定の際、デフォルトとなるリダイレクト先" - #: core/checks.py:15 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:19 msgid "Set `USE_TZ = True` in settings.py" @@ -1812,27 +1900,33 @@ msgstr "パスワード スキーマをより強力なものに更新してく msgid "" "Oauth2 application for dovecot has not been found. Webmail and some other " "features won't be available." -msgstr "dovect 用の OAuth2 アプリが見つかりません。Web メールなど、いくつかの機能が使えません。" +msgstr "" +"dovect 用の OAuth2 アプリが見つかりません。Web メールなど、いくつかの機能が使" +"えません。" #: core/checks.py:34 msgid "" -"Visit : " -"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-" -"oauth2" -msgstr "以下、参照 : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-oauth2" +"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"dovecot.html#dovecot-oauth2" +msgstr "" +"以下、参照 : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"dovecot.html#dovecot-oauth2" #: core/checks.py:41 msgid "" "Oauth2 application for radicale has not been found. Calendar and some other " "features won't be available." -msgstr "radicale 用の OAuth2 アプリが見つかりません。カレンダーなど、いくつかの機能が使えません。" +msgstr "" +"radicale 用の OAuth2 アプリが見つかりません。カレンダーなど、いくつかの機能が" +"使えません。" #: core/checks.py:45 msgid "" -"Visit : " -"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-" -"oauth2" -msgstr "以下、参照 : https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-oauth2" +"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"radicale.html#radicale-oauth2" +msgstr "" +"以下、参照 : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"radicale.html#radicale-oauth2" #: core/constants.py:6 msgid "Simple user" @@ -2060,7 +2154,9 @@ msgid "" msgid_plural "" "\n" " The following updates are available:\n" -msgstr[0] "\n 以下の更新が用意されています :\n" +msgstr[0] "" +"\n" +" 以下の更新が用意されています :\n" #: core/utils.py:43 msgid "The core part of Modoboa" @@ -2079,7 +2175,9 @@ msgstr "パスワード スキーマが一致しません。%s のパスワー #: core/views/auth.py:135 #, python-format msgid "Password hash parameter missmatch. Updating %s password" -msgstr "パスワードのハッシュ パラメーターが一致しません。%s パスワードを更新しています" +msgstr "" +"パスワードのハッシュ パラメーターが一致しません。%s パスワードを更新していま" +"す" #: core/views/auth.py:173 msgid "User '{}' successfully logged out" @@ -2095,7 +2193,8 @@ msgstr "逆引きを有効に" #: dmarc/forms.py:23 msgid "Enable reverse DNS lookups (reports will be longer to display)" -msgstr "DNS の逆引きを有効にします ( レポート表示まで時間がかかるようになります )" +msgstr "" +"DNS の逆引きを有効にします ( レポート表示まで時間がかかるようになります )" #: dmarc/forms.py:42 msgid "DMARC" @@ -2106,7 +2205,7 @@ msgid "Not resolved" msgstr "未解決" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "なし" @@ -2293,7 +2392,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/apps.py:20 msgid "IMAP Migration" @@ -2303,7 +2404,8 @@ msgstr "IMAP 移行" msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." -msgstr "IMAP 認証が動作しない場合にドメイン・メールボックスの自動作成を無効にします。" +msgstr "" +"IMAP 認証が動作しない場合にドメイン・メールボックスの自動作成を無効にします。" #: imap_migration/checks.py:16 msgid "" @@ -2377,13 +2479,17 @@ msgstr "ドメイン管理者数" msgid "" "Maximum number of allowed domain administrators for a new administrator. (0 " "to deny any creation, -1 to allow unlimited creations)" -msgstr "新しい管理者に作成を許可するドメイン管理者数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +msgstr "" +"新しい管理者に作成を許可するドメイン管理者数の上限。( 0 で作成の拒否、-1 で無" +"制限の作成 )" #: limits/app_settings.py:41 msgid "" "Maximum number of allowed domains for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "新しい管理者に作成を許可するドメイン数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +msgstr "" +"新しい管理者に作成を許可するドメイン数の上限。( 0 で作成の拒否、-1 で無制限の" +"作成 )" #: limits/app_settings.py:49 limits/app_settings.py:123 limits/constants.py:22 #: limits/constants.py:76 @@ -2392,15 +2498,19 @@ msgstr "ドメインエイリアス" #: limits/app_settings.py:52 msgid "" -"Maximum number of allowed domain aliases for a new administrator. (0 to deny" -" any creation, -1 to allow unlimited creations)" -msgstr "新しい管理者に作成を許可するドメインエイリアス数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny " +"any creation, -1 to allow unlimited creations)" +msgstr "" +"新しい管理者に作成を許可するドメインエイリアス数の上限。( 0 で作成の拒否、-1 " +"で無制限の作成 )" #: limits/app_settings.py:64 msgid "" "Maximum number of allowed mailboxes for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "新しい管理者に作成を許可するメールボックス数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +msgstr "" +"新しい管理者に作成を許可するメールボックス数の上限。( 0 で作成の拒否、-1 で無" +"制限の作成 )" #: limits/app_settings.py:73 limits/app_settings.py:146 limits/constants.py:39 #: limits/constants.py:92 @@ -2411,7 +2521,9 @@ msgstr "メールボックス エイリアス" msgid "" "Maximum number of allowed aliases for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "新しい管理者に作成を許可するエイリアス数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +msgstr "" +"新しい管理者に作成を許可するエイリアス数の上限。( 0 で作成の拒否、-1 で無制限" +"の作成 )" #: limits/app_settings.py:84 limits/constants.py:59 msgid "Quota" @@ -2421,7 +2533,8 @@ msgstr "容量制限" msgid "" "The quota a reseller will be allowed to share between the domains he " "creates. (0 means no quota)" -msgstr "リセラーに対して許可する、作成するドメインの容量制限の合算値。( 0 で無制限 )" +msgstr "" +"リセラーに対して許可する、作成するドメインの容量制限の合算値。( 0 で無制限 )" #: limits/app_settings.py:98 msgid "Default per-domain limits" @@ -2437,27 +2550,35 @@ msgstr "ドメインごとの容量制限を有効もしくは無効にします #: limits/app_settings.py:114 msgid "" -"Maximum number of allowed domain administrators for a new domain. (0 to deny" -" any creation, -1 to allow unlimited creations)" -msgstr "新しいドメインに作成を許可するドメイン管理者数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +"Maximum number of allowed domain administrators for a new domain. (0 to deny " +"any creation, -1 to allow unlimited creations)" +msgstr "" +"新しいドメインに作成を許可するドメイン管理者数の上限。( 0 で作成の拒否、-1 で" +"無制限の作成 )" #: limits/app_settings.py:126 msgid "" "Maximum number of allowed domain aliases for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "新しいドメインに作成を許可するドメインエイリアス数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +msgstr "" +"新しいドメインに作成を許可するドメインエイリアス数の上限。( 0 で作成の拒" +"否、-1 で無制限の作成 )" #: limits/app_settings.py:138 msgid "" "Maximum number of allowed mailboxes for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "新しいドメインに作成を許可するメールボックス数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +msgstr "" +"新しいドメインに作成を許可するメールボックス数の上限。( 0 で作成の拒否、-1 で" +"無制限の作成 )" #: limits/app_settings.py:149 msgid "" -"Maximum number of allowed aliases for a new domain. (0 to deny any creation," -" -1 to allow unlimited creations)" -msgstr "新しいドメインに作成を許可するエイリアス数の上限。( 0 で作成の拒否、-1 で無制限の作成 )" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation, " +"-1 to allow unlimited creations)" +msgstr "" +"新しいドメインに作成を許可するエイリアス数の上限。( 0 で作成の拒否、-1 で無制" +"限の作成 )" #: limits/apps.py:16 msgid "Limits" @@ -2660,7 +2781,8 @@ msgstr "ダウンロードしたら文書を削除" msgid "" "Automatically delete a document just after its first download from this " "interface" -msgstr "このインターフェースからダウンロードをしたのちに、文書を自動的に削除します" +msgstr "" +"このインターフェースからダウンロードをしたのちに、文書を自動的に削除します" #: pdfcredentials/app_settings.py:68 msgid "Generate documents only at account creation" @@ -2670,7 +2792,9 @@ msgstr "アカウント作成時のみ文書を作成" 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 "新しくアカウントを作成する際にのみ、新しい文書を作成します。「いいえ」に設定すると、パスワードを更新するたびに新しい文書を作成します。" +msgstr "" +"新しくアカウントを作成する際にのみ、新しい文書を作成します。「いいえ」に設定" +"すると、パスワードを更新するたびに新しい文書を作成します。" #: pdfcredentials/app_settings.py:84 msgid "Customization options" @@ -2708,7 +2832,9 @@ msgstr "メールクライアント接続設定を含める" msgid "" "Include required SMTP and IMAP connection information to configure a mail " "client, a tablet or a phone" -msgstr "メールクライアント、タブレットやスマートフォンに設定する際に必要な SMTP・IMAP 接続の情報を含める" +msgstr "" +"メールクライアント、タブレットやスマートフォンに設定する際に必要な SMTP・" +"IMAP 接続の情報を含める" #: pdfcredentials/app_settings.py:123 pdfcredentials/documents.py:133 msgid "SMTP server address" @@ -2769,7 +2895,14 @@ 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:" @@ -2788,7 +2921,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!" @@ -2806,7 +2942,9 @@ msgstr "この設定はパソコン、またはスマートフォンやタブレ msgid "" "Failed to create PDF_credentials directory. Please check the permissions or " "the path." -msgstr "PDF_credentials ディレクトリーの作成に失敗しました。権限またはパスを確認してください。" +msgstr "" +"PDF_credentials ディレクトリーの作成に失敗しました。権限またはパスを確認して" +"ください。" #: pdfcredentials/handlers.py:64 msgid "Download PDF credentials" @@ -2882,9 +3020,11 @@ msgstr "キー マップ パス" #: rspamd/app_settings.py:21 msgid "" -"Absolute path of the file which contains paths to DKIM private keys. Must be" -" readable by _rspamd group or user." -msgstr "DKIM プライベートキー ファイルの絶対パス。_rspamd グループまたはユーザーに読み取り権限が必要です。" +"Absolute path of the file which contains paths to DKIM private keys. Must be " +"readable by _rspamd group or user." +msgstr "" +"DKIM プライベートキー ファイルの絶対パス。_rspamd グループまたはユーザーに読" +"み取り権限が必要です。" #: rspamd/app_settings.py:30 msgid "Selector map path" @@ -2894,7 +3034,9 @@ msgstr "セレクター マップ パス" msgid "" "Absolute path of the file which contains names of DKIM selectors. Must be " "readable by _rspamd group or user." -msgstr "DKIM セレクター ファイルの絶対パス。_rspamd グループまたはユーザーに読み取り権限が必要です。" +msgstr "" +"DKIM セレクター ファイルの絶対パス。_rspamd グループまたはユーザーに読み取り" +"権限が必要です。" #: rspamd/app_settings.py:51 msgid "Rspamd dashboard location" @@ -2902,10 +3044,13 @@ msgstr "Rspamd ダッシュボードの場所" #: rspamd/app_settings.py:53 msgid "" -"Location of the rspamd dashboard. Can either be a relative URL (eg. " -"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for " +"Location of the rspamd dashboard. Can either be a relative URL (eg. '/" +"rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for " "guidance on the Super-Admin dashboard." -msgstr "rspamd ダッシュボードの場所。相対 URL ( 例 : '/rspamd' ) またはフル URL ( 例 : 'https://rspamd.domain.tld/' ) のどちらでもかまいません。スーパー管理者ダッシュボードからのガイドにしか利用しません。" +msgstr "" +"rspamd ダッシュボードの場所。相対 URL ( 例 : '/rspamd' ) またはフル URL " +"( 例 : 'https://rspamd.domain.tld/' ) のどちらでもかまいません。スーパー管理" +"者ダッシュボードからのガイドにしか利用しません。" #: rspamd/apps.py:18 msgid "Rspamd" @@ -2984,7 +3129,7 @@ msgstr "一致する" msgid "is not" msgstr "一致しない" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "件名" @@ -3085,7 +3230,8 @@ msgstr "パスワードがわからない?" msgid "" "Your password has been set. You may go ahead and sign " "in now." -msgstr "パスワードを設定しました。サインイン で進みます。" +msgstr "" +"パスワードを設定しました。サインイン で進みます。" #: templates/registration/password_reset_confirm.html:8 msgid "Change password" @@ -3101,7 +3247,9 @@ 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" @@ -3121,7 +3269,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 "

入力したメールアドレスが登録済みのものであれば、パスワード設定方法を記載したメールが届きます。

メールが届かなければ、入力したアドレスが正しいものだったかどうか、または SPAM フォルダーに配信されていないかを確認してください。

" +msgstr "" +"

入力したメールアドレスが登録済みのものであれば、パスワード設定方法を記載し" +"たメールが届きます。

メールが届かなければ、入力したアドレスが正しいも" +"のだったかどうか、または SPAM フォルダーに配信されていないかを確認してくださ" +"い。

" #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 @@ -3129,14 +3281,18 @@ 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 msgid "" "If clicking the link above doesn't work, please copy and paste the URL in a " "new browser window instead." -msgstr "上のリンクが動作しなければ、URL を Web ブラウザにコピー・貼りつけしてください。" +msgstr "" +"上のリンクが動作しなければ、URL を Web ブラウザにコピー・貼りつけしてくださ" +"い。" #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3165,9 +3321,11 @@ 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 "あなたのスマートフォンの 2 要素認証アプリのコードを入力してください。スマートフォンをなくしているなどの場合は、再設定コードのいずれかを入力してください。" +"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 要素認証アプリのコードを入力してください。スマート" +"フォンをなくしているなどの場合は、再設定コードのいずれかを入力してください。" #: templates/registration/twofactor_code_verify.html:42 msgid "Verify code" @@ -3204,25 +3362,26 @@ msgstr "最大添付サイズ" #: webmail/app_settings.py:19 msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)" -msgstr "添付ファイルの最大サイズをバイトで ( 必要に応じて KB, MB, GB も指定可 ) " +msgstr "" +"添付ファイルの最大サイズをバイトで ( 必要に応じて KB, MB, GB も指定可 ) " #: webmail/app_settings.py:67 msgid "SMTP settings" msgstr "SMTP 設定" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "SMTP サーバーのアドレス" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "暗号化接続モード" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "SMTP サーバーに暗号化接続する" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "SMTP サーバーのポート" @@ -3234,95 +3393,101 @@ msgstr "認証が必要" msgid "Server needs authentication" msgstr "サーバーが認証を求めています" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Server settings" +msgid "Scheduling settings" +msgstr "サーバー設定" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "デフォルトのメッセージ表示モード" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "メッセージを表示するモードのデフォルト値" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "HTML リンク表示を有効に" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "HTML リンクの表示の有効・無効を設定します" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "1 ページに表示するメッセージの最大数を設定します" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "リストの表示更新間隔" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "リストの表示を自動で更新する間隔 ( 秒 )" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "フォルダーコンテナーの幅" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "フォルダーリストコンテナの幅" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "フォルダー" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "ごみ箱" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "削除メッセージの行き先フォルダー" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "送信済みフォルダー" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "送信済みメッセージの行き先フォルダー" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "下書きフォルダー" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "下書きの行き先フォルダー" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "SPAM フォルダー" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "SPAM メッセージの行き先フォルダー" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "メッセージの作成" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "デフォルトエディター" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "メッセージを作成するエディターのデフォルト値" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "署名テキスト" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "ユーザー定義のメール署名" @@ -3334,43 +3499,68 @@ msgstr "サーバー応答" msgid "Failed to remove attachment: " msgstr "添付ファイルの削除に失敗 : " -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr " : " -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "日付" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "元メッセージ" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "階層区切りの取得に失敗" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "受信トレイ" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "下書き" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "SPAM" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "送信済み" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "ごみ箱" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "添付ファイルが大きすぎます ( 最大 : %s )" + +#~ msgid "User profile" +#~ msgstr "ユーザープロフィール" + +#~ msgid "Default top redirection" +#~ msgstr "デフォルトのリダイレクト先" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "アプリケーションが未指定の際、デフォルトとなるリダイレクト先" diff --git a/modoboa/locale/ka/LC_MESSAGES/django.po b/modoboa/locale/ka/LC_MESSAGES/django.po index f02976dc5..cf757b3cc 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,14 +41,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -57,7 +57,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -65,13 +65,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -112,39 +111,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -236,141 +235,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -390,6 +399,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -412,8 +450,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -423,11 +461,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -479,35 +517,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -684,17 +693,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -863,11 +872,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1110,7 +1119,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1128,11 +1137,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1211,7 +1220,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1223,24 +1232,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1265,525 +1270,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2104,7 +2101,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2982,7 +2979,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3208,19 +3205,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3232,95 +3229,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3332,43 +3333,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 7dd65f632..00bbdd87f 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\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/" @@ -57,14 +57,14 @@ msgid "Cannot be greater than domain quota" msgstr "Kan niet groter zijn dan domeinquotum" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Toegang geweigerd." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Dit veld is verplicht" @@ -73,7 +73,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "Lijst van beheerde domeinen (alleen resellers en domeinbeheerders)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Niet toegestaan voor deze rol." @@ -81,13 +81,12 @@ msgstr "Niet toegestaan voor deze rol." msgid "Must be equal to mailbox full_address" msgstr "Moet gelijk zijn aan de mailbox full_address" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Dit veld is verplicht." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Lokaal domein {} bestaat niet" @@ -130,39 +129,39 @@ msgstr "Je kunt geen onbeperkt quotum definiëren." msgid "User '%s' already exists" msgstr "Gebruiker '%s' bestaat al" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Dit moet een positief geheel getal zijn." -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Map niet gevonden." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 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:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Definieer ten minste 1 geautoriseerd netwerk / adres" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 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:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown tag {}" msgid "Unknown status" @@ -263,19 +262,29 @@ msgstr "DNSBL Controles inschakelen" msgid "Check every domain against major DNSBL providers" msgstr "Controleer ieder domein tegen de bekende DNSBL providers" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Eigen DNS server" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "DKIM Key opslagdirectory" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 +294,19 @@ msgstr "" "erop dat deze directory van de root-gebruiker is en niet leesbaar is voor " "andere gebruikers." -#: admin/app_settings.py:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Standaard DKIM key lengte" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "Standaard lengte in bits voor nieuw gegenereerde DKIM keys." -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Standaard domeinquotum" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -305,11 +314,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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Standaard verzendlimiet per domein" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -317,16 +326,16 @@ msgstr "" "Aantal mails dat nieuwe domeinen per dag mogen verzenden. Laat leeg voor " "geen limiet." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Pas mailboxen op het bestandssysteem aan" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -334,11 +343,11 @@ msgstr "" "Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of " "verwijderd worden in Modoboa." -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Standaard mailbox quota" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." @@ -346,11 +355,11 @@ msgstr "" "Standaard mailboxquota (in MB) die worden toegepast op nieuwe domeinen " "zonder gespecificeerde waarde. Een 0 betekent geen quota." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Standaard verzendlimiet voor mailboxen" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -358,63 +367,63 @@ msgstr "" "Aantal mails dat nieuwe mailboxen per dag mogen verzenden. Laat leeg voor " "geen limiet." -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Automatish een account verwijderen" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Domein en mailbox automatisch aanmaken" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Maak een alias aan als een mailbox hernoemd wordt." -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 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." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Beheer" @@ -434,6 +443,35 @@ msgstr "Geopend" msgid "Closed" msgstr "Gesloten" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} getoond door DNSBL provider {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Domein heeft geen MX record" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Domein {} heeft geen MX-record" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Ongeldig MX record: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "MX-record voor domein {0} is ongeldig: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX problemen voor domein {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL problemen voor domein {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "domeinalias" @@ -456,8 +494,8 @@ msgstr "Je mag geen domeinen importeren" msgid "You are not allowed to import domain aliases." msgstr "Je hebt geen rechten om domeinaliassen te importeren." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Geen DNS record gevonden voor %s " @@ -467,11 +505,11 @@ msgstr "Geen DNS record gevonden voor %s " msgid "No %(type)s record for %(name)s" msgstr "Geen %(type)s record voor %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Geen werkende nameservers gevonden" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "DNS timeout, het was niet mogelijk om %s op te zoeken" @@ -529,35 +567,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Communicatie met publieke Modoboa API toestaan" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} getoond door DNSBL provider {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Domein heeft geen MX record" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Domein {} heeft geen MX-record" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Ongeldig MX record: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "MX-record voor domein {0} is ongeldig: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX problemen voor domein {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL problemen voor domein {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domein niet gevonden." @@ -745,17 +754,17 @@ msgstr "" "Modoboa heeft vastgesteld dat het domein %(domain)s geen geldig MX-record " "heeft:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Geen MX record voor %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Onjuist IP adres voor %(domain)s: %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -961,13 +970,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display details" msgid "Display" msgstr "Weergeven" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1261,7 +1270,7 @@ msgstr "Domeinbeheerder" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Diversen" @@ -1279,11 +1288,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1372,7 +1381,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1386,24 +1395,20 @@ msgstr "" msgid "Local" msgstr "Lokaal" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Gebruikersprofiel" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Ongeldige zinsbouw" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Ongeldig nummer van rondes" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "Gebruik de volgende code om het Modoboa wachtwoord te herstellen: {}" @@ -1434,37 +1439,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Authenticatie" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Authenticatie type" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "De backend gebruikt voor authenticatie" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Standaard wachtwoord encryptiemethode" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Schema dat gebruikt wordt om mailboxwachtwoorden te versleutelen" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Rondes" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1472,47 +1477,47 @@ msgstr "" "Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en " "sha512crypt). Moet tussen de 1000 en 999999999 liggen." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Update wachtwoordschema bij inloggen" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Standaard wachtwoord" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Standaard wachtwoord voor automatisch gecreëerde accounts." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Lengte van willekeurig wachtwoord" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Lengte van willekeurig gegenereerde wachtwoorden" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Lengte van willekeurig gegenereerde wachtwoorden" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Service-url voor wachtwoorden updaten" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1522,104 +1527,104 @@ msgstr "" "bijwerken. Alleen van toepassing op niet-lokale gebruikers die automatisch " "worden aangemaakt na een succesvolle externe authenticatie (LDAP, SMTP)." -#: core/app_settings.py:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Melding wachtwoordherstel" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Wachtwoordherstel via SMS activeren" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS provider" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Kies een provider voor het sturen van een SMS voor wachtwoordherstel." -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Serveradres" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Serverpoort" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Het TCP poortnummer van de LDAP-server" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Secundaire server activeren (fallback)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Adres van secundaire server" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "secundaire-serverpoort" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "TCP poortnummer van de secundaire LDAP server" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Gebruik een beveiligde verbinding" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "De LDAP-server is een Active Directory" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Beheerdergroepen" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1627,47 +1632,47 @@ msgstr "" "Leden van deze LDAP POSIX-groepen zullen aangemaakt worden als " "domeinbeheerders. Gebruik ';' karakters om groepen te scheiden." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Groeptype" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Groepen zoekbasis" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Wachtwoord attribuut" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Het attribuut dat gebruikt wordt om wachtwoorden op te slaan" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP authenticatie-instellingen" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Authenticatiemethode" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Kies de te gebruiken authenticatiemethode" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Koppeling DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1675,29 +1680,29 @@ msgstr "" "De gedistingeerde naam om te gebruiken bij het koppelen met de LDAP-server. " "Laat leeg voor een anonieme koppeling." -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Koppel wachtwoord" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Gebruikers zoekbasis" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Zoekfilter" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1705,11 +1710,11 @@ msgstr "" "Een optionele filter string (zoals '(objectClass=person)'). Om geldig te " "kunnen zijn, moet het tussen haakjes staan." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Gebruiker DN template" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1718,25 +1723,25 @@ 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP synchronisatie-instellingen" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Activeer export naar LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" "Activeer automatische synchronisatie tussen lokale database en LDAP directory" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1744,11 +1749,11 @@ msgstr "" "Verwijder extern LDAP account als het lokale account wordt verwijderd. Zo " "niet, dan wordt het gedeactiveerd." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Account DN sjabloon" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1757,202 +1762,202 @@ msgstr "" "Het sjabloon voor het opbouwen van het DN (distinguishedname). Het moet een " "tijdelijke aanduiding (placeholder) bevatten (bijvoorbeeld %(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Activeer import van LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "Activeer accountsynchronisatie van LDAP directory naar lokale database" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Gebruikersnaamattribuut" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Activeer Dovecot LDAP synchronisatie" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" "LDAP authenticatie-instellingen worden toegepast op Dovecot-configuratie." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP configuratiebestand" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "Locatie van het configuratiebestand met Dovecot LDAP-instellingen." -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Bedieningspaneel" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Aangepast bericht" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." msgid "A welcome message that will be displayed instead the default one" msgstr "Een tijdelijke melding die wordt getoond op de wachtwoordresetpagina." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Aangepaste RSS feed." -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "Toon aangepaste RSS feed aan resellers en domein beheerders. " -#: core/app_settings.py:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "Toon aangepaste RSS feed aan resellers en domein beheerders. " -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "Toon aangepaste RSS feed aan resellers en domein beheerders. " -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Verberg opties widget" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "Verberg features widget voor resellers en domein administrators. " -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Tweede e-mailadres" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notificaties" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Afzenderadres" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "E-mailadres dat gebruikt wordt om notificaties te versturen" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Publieke API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Communicatie toestaan" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Controleert automatisch of een nieuwere versie beschikbaar is" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Controleer of er een nieuwe versie beschikbaar is" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Stuur een e-mail als er nieuwe versies worden gevonden" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "Stuur een e-mail naar administrators over nieuwe versies" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Ontvanger" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Ontvanger van notificatiemails over nieuwe versies" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Verstuur statistieken" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Drempelwaarde inactieve gebruikers" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Drempelwaarde inactieve gebruikers" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1960,48 +1965,38 @@ msgstr "" "Een gebruiker die langer dan dit aantal dagen niet ingelogd is, wordt op " "inactief gezet." -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Top notificaties controle interval" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Interval tussen twee notificatiecontroles (in seconden)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maximum bewaartijd van logs" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "De maximum bewaartijd in dagen van een log record" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Items per pagina" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Aantal getoonde items per pagina" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Standaard top omleiding" - -#: core/app_settings.py:748 -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/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2341,7 +2336,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Geen" @@ -3330,7 +3325,7 @@ msgstr "is" msgid "is not" msgstr "is niet" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Onderwerp" @@ -3596,23 +3591,23 @@ msgstr "" msgid "SMTP settings" msgstr "SMTP instellingen" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of your SMTP server" msgstr "Adres van uw IMAP-server" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "Modus van beveiligde verbinding" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3629,103 +3624,109 @@ msgstr "Authenticatie vereist" msgid "Server needs authentication" msgstr "De server vereist authenticatie" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Connection settings" +msgid "Scheduling settings" +msgstr "ManageSieve instellingen" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Standaard berichtweergave" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Activeer weergave van HTML-koppelingen" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "(De)activeer weergave van HTML-koppelingen" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Lijst vernieuwen frequentie" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Mappenlijst wijdte" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "De wijdte van de mappenlijst" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Mappen" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Prullenbak" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Map voor verwijderde berichten" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Verzonden items" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Map waar verzonden berichten worden opgeslagen" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Concepten" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Map waar concepten heen gaan" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "Ongewenste e-mail map" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "Map voor ongewenste e-mail" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Berichten opstellen" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Standaard editor" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Handtekeningtekst" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Door gebruiker opgegeven e-mailhandtekening" @@ -3741,45 +3742,72 @@ msgstr "Serveradres" msgid "Failed to remove attachment: " msgstr "Bijlage verwijderen is mislukt:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Datum" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Alle berichten" -#: webmail/lib/imaputils.py:221 +#: 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 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Postvak in" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "Concepten" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "Ongewenste e-mail" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Verzonden items" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Prullenbak" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Bijlage is te groot (maximaal toegestane grootte: %s)" + +#~ msgid "User profile" +#~ msgstr "Gebruikersprofiel" + +#~ msgid "Default top redirection" +#~ msgstr "Standaard top omleiding" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "De standaard omleiding die gebruikt wordt als er geen andere applicatie " +#~ "is opgegeven" diff --git a/modoboa/locale/no/LC_MESSAGES/django.po b/modoboa/locale/no/LC_MESSAGES/django.po index af95cb934..751a4c9fc 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: Nils Otto Lillegrein , 2020\n" "Language-Team: Norwegian (https://www.transifex.com/tonio/teams/13749/no/)\n" @@ -44,14 +44,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -60,7 +60,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -68,13 +68,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -115,39 +114,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -239,141 +238,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -393,6 +402,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -415,8 +453,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -426,11 +464,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -482,35 +520,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -687,17 +696,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -866,11 +875,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1113,7 +1122,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1131,11 +1140,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1214,7 +1223,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1226,24 +1235,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1268,525 +1273,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2109,7 +2106,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2989,7 +2986,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3215,19 +3212,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3239,95 +3236,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3341,43 +3342,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "Kunne ikke opprette LDAP-konto: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 01d1fd57f..a916179f9 100644 --- a/modoboa/locale/pl_PL/LC_MESSAGES/django.po +++ b/modoboa/locale/pl_PL/LC_MESSAGES/django.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2021-07-09 07:40+0000\n" "Last-Translator: KrystianPlichta \n" "Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/" @@ -56,14 +56,14 @@ msgid "Cannot be greater than domain quota" msgstr "Nie może być wyższa niż limit domeny" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Odmowa dostępu" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "To pole jest obowiązkowe" @@ -73,7 +73,7 @@ msgid "" msgstr "" "Lista administratorów domen (tylko resellerów i administratorów domen)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Niedozwolone dla tej roli." @@ -81,13 +81,12 @@ msgstr "Niedozwolone dla tej roli." msgid "Must be equal to mailbox full_address" msgstr "Musi być równe z full_address skrzynki." -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "To pole jest wymagane" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Lokalna domena {} nie istnieje" @@ -130,41 +129,41 @@ msgstr "Nie możesz przypisać nielimitowanej przestrzeni" msgid "User '%s' already exists" msgstr "Użytkownik '%s' już istnieje" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Musi być liczbą całkowitą dodatnią" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "Brak openssl , upewnij się że jest zainstalowany." -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Katalog nie znaleziony." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Zdefiniuj przynajmniej jedną autoryzowaną sieć / adres" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Skrzynka jest obowiązkowa" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -266,19 +265,29 @@ msgstr "Włącz sprawdzanie DNSBL" 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:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Własny serwer DNS" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Katalog przechowywania kluczy DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -288,19 +297,19 @@ msgstr "" "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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Domyślna długość klucza DKIM" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Domyślne ograniczenie dla domeny" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -308,11 +317,11 @@ msgstr "" "Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - " "brak ograniczenia)" -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Domyślny limit wysyłania dla domey" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -320,16 +329,16 @@ msgstr "" "Liczba wiadomości, które świeżo utworzone domeny będą mogły wysłać dziennie. " "Pozostaw puste dla braku limitu." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Skrzynki pocztowe" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Przechowuj skrzynka na filesystemie" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -337,11 +346,11 @@ msgstr "" "Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub " "usuniętę przez Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Domyślna przestrzeń dla konta pocztowego" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created mailboxes with " @@ -353,11 +362,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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Domyślny limit wysyłania skrzynki" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -365,61 +374,61 @@ 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:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Automatyczne usuwanie konta" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Automatyczne tworzenie domeny/skrzynki" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Utwórz alias podczas zmiany nazwy skrzynki" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "Utwórz alias używając starego adresu podczas zmiany nazwy skrzynki." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administracja" @@ -439,6 +448,35 @@ msgstr "Otwarty" msgid "Closed" msgstr "Zamknięty" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} wymienione przez dostawcę DNSBL {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Domena {} nie ma zdefiniowanego rekordu MX" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Domena {} nie ma zdefiniowanego rekordu MX" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Nieprawidłowy rekord MX: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "Rekord MX dla domeny {0} jest niepoprawny: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] Wykryto problem(y) z MX dla domeny {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL problem(y) dla domeny {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "alias domeny" @@ -461,8 +499,8 @@ msgstr "Nie masz uprawnień do importowania domen" msgid "You are not allowed to import domain aliases." msgstr "Nie masz uprawnień do importowania aliasów." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Nie znaleziono rekordu DNS dla %s" @@ -472,11 +510,11 @@ msgstr "Nie znaleziono rekordu DNS dla %s" msgid "No %(type)s record for %(name)s" msgstr "Brak %(type)s zapisów dla %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Znaleziono nie działające serwery nazw" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -532,35 +570,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Włącz komunikację z publicznym API Modoboa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} wymienione przez dostawcę DNSBL {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Domena {} nie ma zdefiniowanego rekordu MX" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Domena {} nie ma zdefiniowanego rekordu MX" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Nieprawidłowy rekord MX: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "Rekord MX dla domeny {0} jest niepoprawny: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] Wykryto problem(y) z MX dla domeny {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL problem(y) dla domeny {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domena nie znaleziona." @@ -760,17 +769,17 @@ msgstr "" "Modoboa sygnalizuje że ta domena %(domain)s nie posiada poprawnego rekordu " "MX:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Brak wpisów MX dla %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Nieprawidłowy format adresu IP dla %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -980,11 +989,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "Wyświetl" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1277,7 +1286,7 @@ msgstr "Administrator domeny" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Różne" @@ -1295,11 +1304,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "Lokalizacja serwera nie jest ustawiona, należy to poprawić." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1388,7 +1397,7 @@ msgstr "2FA jest już włączone" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1402,24 +1411,20 @@ msgstr "2FA nie jest włączone" msgid "Local" msgstr "Lokalnie" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Profil użytkownika" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Nieprawidłowa składnia" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Nieprawidłowa liczba rund" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Ten kod jest nieprawidłowy" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "Proszę użyć następującego kodu, aby odzyskać hasło Modoboa: {}" @@ -1452,37 +1457,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "E-mail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Uwierzytelnianie" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Typ uwierzytelniania" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Backend używany do uwierzytelniania" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Domyślny schemat hasła" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Schemat używany do szyfrowania haseł do skrzynek" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Rund" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1490,47 +1495,47 @@ msgstr "" "Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać " "pomiędzy 1000 a 999999999 włącznie." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Aktualizuj schemat haseł przy logowaniu" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Domyślne hasło" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Domyślne hasło dla automatycznie dodawanych kont." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Długość losowego hasła" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Długość losowo wygenerowanego hasła" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Długość losowo wygenerowanego hasła" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Zaktualizuj URL usługi hasła" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1541,106 +1546,106 @@ msgstr "" "utworzonych automatycznie po prawidłowym zalogowaniu do zewnętrznych usług " "(LDAP, SMTP)." -#: core/app_settings.py:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Komunikat o odzyskiwaniu hasła" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Włącz odzyskiwania hasła przez SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "Dostawca SMS" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Wybierz dostawcę, aby wysłać SMS odzyskiwania hasła Dostawca SMS" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Adres serwera" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "IP lub nazwa DNS serwera LDAP" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Port serwera" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Port TCP używany przez LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Włącz dodatkowy serwer (awaryjny)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Adres serwera dodatkowego" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Port na serwerze dodatkowym" -#: core/app_settings.py:212 +#: core/app_settings.py:200 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Użyj bezpiecznego polączenia" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Czy LDAP jest Active Directory " -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Administrator grup" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1648,47 +1653,47 @@ msgstr "" "Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. " "Użyj znaku ';' jako separatora grup." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Typ grupy" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Typ grupy LDAP do wykorzystania z Twoim katalogiem." -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Wyszukiwarka grup" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atrybut hasła" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Atrybut używany do przechowywania haseł użytkowników" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "Ustawienia uwierzytelniania LDAP" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Metoda autentykacji" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Wybierz metode autentykacji" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Przypnij do DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1696,37 +1701,37 @@ msgstr "" "DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego " "podłączenia" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Hasło" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Wyszukiwania użytkowników" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtr wyszukiwania" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Użyj szablonu DN" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1735,24 +1740,24 @@ msgstr "" "Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden " "symbol zastępczy (np. %(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "Ustawienia synchronizacji z LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Włącz export do LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1760,11 +1765,11 @@ msgstr "" "Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne, w innym " "przypadku zostanie ono wyłączone." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Szablon konta DN" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1773,52 +1778,52 @@ msgstr "" "Szablon używany do budowy DN konta. Powinien zawierać jeden placeholder (ie. " "%(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Włącz import z LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 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:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Atrybut nazwa użytkownika" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Włącz synchronizację Dovecot LDAP" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" "Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji Dovecot." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Plik konfiguracyjny Dovecot LDAP" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Panel główny" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Własna wiadomość" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." @@ -1826,153 +1831,153 @@ msgid "A welcome message that will be displayed instead the default one" msgstr "" "Tymczasowa wiadomość, która będzie wyświetlana na stronie resetowania hasła." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Spersonalizowany kanał RSS" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen" -#: core/app_settings.py:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Ukryj kontrolki opcji" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "Ukryj kontrolki opcji dla administratorów domeny i resellerów" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Zapasowy email" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Powiadomienia" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Adres nadawcy" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Adres e-mail używany do wysyłania powiadomień" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Publiczne API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Włącz komunikację" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Automatycznie sprawdzaj czy nowa wersja jest dostępna" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Sprawdź nowe wersje" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Wyślij email, jeżeli została znaleziona nowa wersja" -#: core/app_settings.py:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Odbioraca" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Odbiorca emaili z powiadomieniem o nowej wersji" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Wyślij statystyki" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" "Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)" -#: core/app_settings.py:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Próg nieaktywności konta" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Próg nieaktywności konta" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1980,46 +1985,38 @@ msgstr "" "Konto z datą ostatniego logowania większą niż podany próg (w dniach) " "zostanie uznane za nieaktywne. " -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Odstęp pomiędzy powiadomieniami " -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Odstęp pomiędzy dwoma powiadomieniami (w sek.)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Max wiek wpisu w logu" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Max wiek w dniach dla wpisu w logu" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Elementów na stronie" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Liczba wyświetlanych elementów na stronie" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Domyślne górne przekierowanie" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2373,7 +2370,7 @@ msgid "Not resolved" msgstr "Nie zdefiniowano" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Brak" @@ -3340,7 +3337,7 @@ msgstr "jest" msgid "is not" msgstr "nie jest" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Temat" @@ -3602,25 +3599,25 @@ msgstr "" msgid "SMTP settings" msgstr "Ustawienia IMAP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, 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 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Użyj bezpiecznego polączenia" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of the IMAP server" msgid "Listening port of your SMTP server" @@ -3637,117 +3634,123 @@ msgstr "Metoda autentykacji" msgid "Server needs authentication" msgstr "Preferowany mechanizm uwierzytelnienia" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "Ustawienia ManageSieve" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 #, fuzzy #| msgid "Create aliases" msgid "Folders" msgstr "Utwórz aliasy" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 #, fuzzy #| msgid "Create aliases" msgid "Trash folder" msgstr "Folder kosza" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "Folder, do którego trafiają usunięte wiadomości" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 #, fuzzy #| msgid "Create aliases" msgid "Sent folder" msgstr "Folder wysłane" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Folder, do którego trafiają kopie wysłanych wiadomości" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 #, fuzzy #| msgid "Create aliases" msgid "Drafts folder" msgstr "Folder kopie robocze" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Folder, do którego trafiają kopie robocze" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Create aliases" msgid "Junk folder" msgstr "Folder wysłane" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, 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 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Wysłane wiadomości" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Domyślne górne przekierowanie" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3763,47 +3766,72 @@ msgstr "Adres serwera" msgid "Failed to remove attachment: " msgstr "Nie udało się usunąć filtru" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Data" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Wszystkie wiadomości" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Nie udało się rozpoznać hierarchii separatora" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Create aliases" msgid "Drafts" msgstr "Folder kopie robocze" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Profil użytkownika" + +#~ msgid "Default top redirection" +#~ msgstr "Domyślne górne przekierowanie" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji" diff --git a/modoboa/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/locale/pt_BR/LC_MESSAGES/django.po index df7406175..67a988c89 100644 --- a/modoboa/locale/pt_BR/LC_MESSAGES/django.po +++ b/modoboa/locale/pt_BR/LC_MESSAGES/django.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: Rafael Barretto Alves , " "2013,2015-2017,2025\n" @@ -68,14 +68,14 @@ msgid "Cannot be greater than domain quota" msgstr "Não pode ser maior que a cota de domínio" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Permissão negada." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Este campo é obrigatório" @@ -86,7 +86,7 @@ msgstr "" "Lista de domínios administrados (somente revendedores e administradores de " "domínio)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Não é permitido para esta função." @@ -94,13 +94,12 @@ msgstr "Não é permitido para esta função." msgid "Must be equal to mailbox full_address" msgstr "Deve ser igual a full_address de caixa de correio" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Este campo é obrigatório." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Domínio local {} não existe" @@ -141,41 +140,41 @@ msgstr "Você não pode definir uma cota ilimitada." msgid "User '%s' already exists" msgstr "O usuário '%s' já existe" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Deve ser um inteiro positivo" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Diretório não encontrado." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 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:297 +#: admin/api/v2/serializers.py:298 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:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Defina pelo menos uma rede/endereço autorizado" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 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." -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "Uma caixa de correio é necessária para criar apelidos." -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "Status desconhecido" @@ -275,20 +274,30 @@ msgid "Check every domain against major DNSBL providers" msgstr "" "Verifique todos os domínios em relação aos principais provedores de DNSBL" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Servidor de DNS personalizado" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Diretório de armazenamento de chaves DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -298,19 +307,19 @@ msgstr "" "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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Comprimento padrão da chave DKIM" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Cota de domínio padrão" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -318,11 +327,11 @@ 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Limite padrão de envio de domínio" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -330,16 +339,16 @@ 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:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Caixas de correio" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Manipular caixas de correio no sistema de arquivos" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -347,11 +356,11 @@ msgstr "" "Renomeie ou remova caixas de correio no sistema de arquivos quando elas " "forem renomeadas ou removidas no Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Cota de caixa de correio padrão" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." @@ -359,11 +368,11 @@ 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Limite padrão de envio de caixa de correio" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -371,66 +380,66 @@ 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:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Remoção automática de conta" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Criação automática de domínio/caixa de correio" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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." -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Criar um apelido quando uma caixa de correio for renomeada" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 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." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "apelido" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administração" @@ -450,6 +459,35 @@ msgstr "Aberto" msgid "Closed" msgstr "Fechado" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} listado pelo provedor DNSBL {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "O domínio não tem registro MX" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "O domínio {} não tem registro MX" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Registro MX inválido: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "O registro MX para {0} de domínio é inválido: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] Problema(s) de MX para o domínio {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] Problema(s) de DNSBL para o domínio {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "apelido de domínio" @@ -472,8 +510,8 @@ msgstr "Você não tem permissão para importar domínios" msgid "You are not allowed to import domain aliases." msgstr "Você não tem permissão para importar apelidos de domínio." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Nenhum registro de DNS encontrado para %s" @@ -483,11 +521,11 @@ msgstr "Nenhum registro de DNS encontrado para %s" msgid "No %(type)s record for %(name)s" msgstr "Nenhum registro %(type)s para %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Nenhum servidor de nomes funcional encontrado" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -544,35 +582,6 @@ msgstr "Falha ao gerar a chave privada DKIM" msgid "Failed to generate DKIM public key" msgstr "Falha ao gerar a chave pública DKIM" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} listado pelo provedor DNSBL {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "O domínio não tem registro MX" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "O domínio {} não tem registro MX" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Registro MX inválido: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "O registro MX para {0} de domínio é inválido: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] Problema(s) de MX para o domínio {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] Problema(s) de DNSBL para o domínio {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domínio não encontrado." @@ -760,17 +769,17 @@ msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" "O Modoboa detectou que o domínio %(domain)s não possui registro MX válido:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Nenhum registro MX para %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Formato de endereço IP inválido para %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "Nenhum registro AAAA para %s" @@ -983,13 +992,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display details" msgid "Display" msgstr "Mostrar" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1276,7 +1285,7 @@ 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Diversos" @@ -1296,11 +1305,11 @@ msgstr "" msgid "Calendars" msgstr "Calendários" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "Localização do servidor não informada, por favor corrija." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "O arquivo carregado é muito grande (máx: {} bytes)" @@ -1384,7 +1393,7 @@ msgstr "" "Falha na tentativa de edição de configurações do TFA de '%s' como usuário " "'%s'" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "Senha inválida" @@ -1396,24 +1405,20 @@ msgstr "2FA não está habilitado" msgid "Local" msgstr "Local" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Perfil do usuário" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Sintaxe inválida" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Número de ciclos inválido" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Este código é inválido" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 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: {}" @@ -1441,37 +1446,37 @@ msgid "Calendar" msgstr "Calendário" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Autenticação" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Tipo de autenticação" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "O backend usado para autenticação" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Esquema padrão de senha" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Esquema usado para criptografar as senhas das caixas de correio" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Ciclos" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1479,46 +1484,46 @@ 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Atualizar esquema de senha no login" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Senha padrão" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Senha padrão para contas criadas automaticamente." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Tamanho de senha aleatório" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Tamanho das senhas geradas aleatoriamente." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Tamanho das senhas geradas aleatoriamente." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Atualizar URL do serviço de senha" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1528,105 +1533,105 @@ msgstr "" "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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Anúncio de recuperação de senha" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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." -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Ativar recuperação de senha por SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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." -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "Provedor de SMS" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Escolha um provedor para enviar SMS de recuperação de senha" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "LDAP" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Endereço do servidor" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Porta do servidor" -#: core/app_settings.py:180 +#: core/app_settings.py:168 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:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Habilitar servidor secundário (fallback)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Endereço do servidor secundário" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Porta do servidor secundário" -#: core/app_settings.py:212 +#: core/app_settings.py:200 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Usar conexão segura" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Informe se o servidor LDAP é um Active Directory" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Grupos de administradores" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1634,47 +1639,47 @@ 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:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Tipo de grupo" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Base de pesquisa de grupos" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atributo de senha" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "O atributo usado para armazenar senhas de usuários" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "Configurações de autenticação LDAP" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Método de autenticação" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Escolha o método de autenticação para usar" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Vincular DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1682,27 +1687,27 @@ msgstr "" "O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para " "vincular anonimamente" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Vincular senha" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Base de pesquisa de usuários" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtro de pesquisa" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1710,11 +1715,11 @@ msgstr "" "Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser " "válida, deve estar entre parênteses." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Usar template DN" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1723,26 +1728,26 @@ msgstr "" "A template usada para construir um DN de usuário. Deve conter um placeholder " "(por ex: %(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "Configurações de sincronização LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Habilitar exportação para LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 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" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1750,11 +1755,11 @@ msgstr "" "Exclua a conta LDAP remota quando a conta local for excluída, caso " "contrário, ela será desativada." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Modelo de DN de conta" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1763,56 +1768,56 @@ 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Habilitar importação do LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 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" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Atributo de nome de usuário" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Ativar sincronização LDAP do Dovecot" -#: core/app_settings.py:457 +#: core/app_settings.py:445 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." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Arquivo de configuração LDAP do Dovecot" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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." -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Painel" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Mensagem personalizada" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." @@ -1820,17 +1825,17 @@ msgid "A welcome message that will be displayed instead the default one" msgstr "" "Uma mensagem temporária que será exibida na página de redefinição de senha." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Feed RSS personalizado" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" "Mostrar um feed RSS personalizado para revendedores e administradores de " "domínio" -#: core/app_settings.py:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" @@ -1838,7 +1843,7 @@ msgstr "" "Mostrar um feed RSS personalizado para revendedores e administradores de " "domínio" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" @@ -1846,120 +1851,120 @@ msgstr "" "Mostrar um feed RSS personalizado para revendedores e administradores de " "domínio" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Ocultar widget de recursos" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" "Ocultar widget de recursos para revendedores e administradores de domínio" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "E-mail secundário" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notificações" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Endereço do remente" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Endereço de e-mail usado para enviar notificações." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "API Pública" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Habilitar comunicação" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Verificar automaticamente se uma nova versão está disponível" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Verificar novas versões" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Envie um e-mail quando novas versões forem encontradas" -#: core/app_settings.py:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Destinatário" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Destinatário de e-mails de notificação de novas versões." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Enviar estatísticas" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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)" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "Ativar rastreamento de conta inativa" -#: core/app_settings.py:686 +#: core/app_settings.py:674 msgid "" "Allow the administrator to set a threshold (in days) beyond which an account " "is considered inactive if the user hasn't logged in" @@ -1967,11 +1972,11 @@ 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Limite de conta inativa" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1979,47 +1984,38 @@ msgstr "" "Uma conta com uma data de login maior que este limite (em dias) será " "considerada como inativa" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Intervalo de verificação de verificações de topo" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervalo entre checagem de notificações (em segundos)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Idade máxima do registro de log" -#: core/app_settings.py:719 +#: core/app_settings.py:707 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:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Itens por página" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Número de itens exibidos por página" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Redirecionamento de topo padrão" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"O redirecionamento padrão usado quando nenhuma aplicação é especificada" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2364,7 +2360,7 @@ msgid "Not resolved" msgstr "Não resolvido" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Nenhuma" @@ -3305,7 +3301,7 @@ msgstr "é" msgid "is not" msgstr "não é" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Assunto" @@ -3551,25 +3547,25 @@ msgstr "Tamanho máximo de anexo em bytes (ou KB, MB, GB, se especificado)" msgid "SMTP settings" msgstr "Configurações SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, 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 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Modo de conexão segura" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3587,107 +3583,113 @@ msgstr "Autenticação obrigatória" msgid "Server needs authentication" msgstr "Servidor precisa de autenticação" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Server settings" +msgid "Scheduling settings" +msgstr "Configurações do servidor" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Modo de exibição padrão da mensagem" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Ativar exibição de links em HTML" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Ativar/Desativar exibição de links em HTML" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Taxa de atualização de escuta" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Largura do contêiner da caixa de correio" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "A largura do contêiner da caixa de correio" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Pasta para Itens Deletados" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Pasta que irão as mensagens deletadas" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Pasta para Itens Recebidos" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Pasta onde irão as cópias de mensagens enviadas" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Pasta para Rascunhos" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Pasta onde irão os rascunhos" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Sent folder" msgid "Junk folder" msgstr "Pasta para Itens Recebidos" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, 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 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "Compondo mensagens" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Editor padrão" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Texto da assinatura" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Assinatura de e-mail definida pelo usuário" @@ -3703,51 +3705,77 @@ msgstr "Endereço do servidor" msgid "Failed to remove attachment: " msgstr "Falha ao remover anexo:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Data" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "All messages" msgid "Original message" msgstr "Todas as mensagens" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Falha ao recuperar o delimitador de hierarquia" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Drafts folder" msgid "Drafts" msgstr "Pasta para Rascunhos" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Anexo muito grande (limite: %s)" +#~ msgid "User profile" +#~ msgstr "Perfil do usuário" + +#~ msgid "Default top redirection" +#~ msgstr "Redirecionamento de topo padrão" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "O redirecionamento padrão usado quando nenhuma aplicação é especificada" + #~ msgid "No alarm ID provided" #~ msgstr "Nenhum ID de alarme fornecido" diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/locale/pt_PT/LC_MESSAGES/django.po index 5cd8397e7..bc1da653b 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\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/" @@ -60,16 +60,16 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 #, fuzzy #| msgid "Permissions" msgid "Permission denied." msgstr "Permissões" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Este campo é obrigatório" @@ -78,7 +78,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -86,15 +86,14 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 #, fuzzy #| msgid "A mailbox is required" msgid "This field is required." msgstr "É necessária uma caixa de correio" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 #, fuzzy #| msgid "Domain does not exist" msgid "Local domain {} does not exist" @@ -143,43 +142,43 @@ msgstr "" msgid "User '%s' already exists" msgstr "O utilizador '%s' já existe" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Tem de ser um inteiro, positivo" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 #, fuzzy #| msgid "Domain modified" msgid "Directory not found." msgstr "Domínio alterado" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, 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:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown domain %s" msgid "Unknown status" @@ -273,38 +272,48 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Quota pré-definida para o domínio" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -312,28 +321,28 @@ 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:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Quota pré-definida para o domínio" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Lidar com caixas de correio no sistema de ficheiros" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -341,13 +350,13 @@ msgstr "" "Renomear ou remover as caixas de correio no sistema de ficheiros quando " "estas são renomeadas no Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 #, fuzzy #| msgid "Default domain quota" msgid "Default mailbox quota" msgstr "Quota pré-definida para o domínio" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default quota (in MB) applied to freshly created domains with no value " @@ -359,76 +368,76 @@ 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:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default domain quota" msgid "Default mailbox sending limit" msgstr "Quota pré-definida para o domínio" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Remoção automática de conta" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Criação automatica de domino/caixa de correio" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administração" @@ -450,6 +459,37 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain modified" +msgid "Domain has no MX record" +msgstr "Domínio alterado" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "'Alias' de domínio" @@ -474,8 +514,8 @@ msgstr "Não é possível eliminar o seu próprio domínio" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -485,11 +525,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -542,37 +582,6 @@ msgstr "" 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 -#, fuzzy -#| msgid "Domain modified" -msgid "Domain has no MX record" -msgstr "Domínio alterado" - -#: 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:43 #, fuzzy #| msgid "Domain modified" @@ -773,17 +782,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "Domain modified" msgid "No AAAA record for %s" @@ -982,13 +991,13 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 #, fuzzy #| msgid "Display" msgid "Display" msgstr "Exibir" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1278,7 +1287,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" "Número máximo de administradores de domínio que este utilizador pode criar" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Vários" @@ -1296,11 +1305,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1389,7 +1398,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1403,26 +1412,20 @@ msgstr "" msgid "Local" msgstr "Local" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -#, fuzzy -#| msgid "Profile" -msgid "User profile" -msgstr "Perfil" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Sintax inválida" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Número de linhas inválido" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1455,198 +1458,198 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Autenticação" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Tipo de autenticação" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Backend usado para autenticação" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Esquema pré-definido para passwords" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Esquema usado para encriptar as passwords das caixas de correio" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 #, fuzzy #| msgid "Default password scheme" msgid "Update password scheme at login" msgstr "Esquema pré-definido para passwords" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 #, fuzzy #| msgid "Default password scheme" msgid "Default password" msgstr "Esquema pré-definido para passwords" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 #, fuzzy #| msgid "Bind password" msgid "Random password length" msgstr "Password para bind" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 #, fuzzy #| msgid "Default password scheme" msgid "Update password service URL" msgstr "Esquema pré-definido para passwords" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Endereço do Servidor" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Porta do Servidor" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr " A porta TCP usada pelo servidor LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Endereço do Servidor" -#: core/app_settings.py:202 +#: core/app_settings.py:190 #, 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:209 +#: core/app_settings.py:197 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Porta do Servidor" -#: core/app_settings.py:212 +#: core/app_settings.py:200 #, 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Utilizar uma ligação segura" -#: core/app_settings.py:221 +#: core/app_settings.py:209 #, 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Grupos de Administrador" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1654,51 +1657,51 @@ msgstr "" "Os membros destes grupos \"LDAP Posix\" serão criados como administradores " "de domínio. Use ';' para separar os grupos." -#: core/app_settings.py:248 +#: core/app_settings.py:236 #, fuzzy #| msgid "Group name" msgid "Group type" msgstr "Nome do grupo" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Base para pesquisa de Grupos" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atributo de palavra-passe" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "O atributo utilizado para armazenar palavras-passe" -#: core/app_settings.py:276 +#: core/app_settings.py:264 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Método de autenticação" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Método de autenticação" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Escolher o método de autenticação" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "\"Bind DN\"" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1706,28 +1709,28 @@ msgstr "" "O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario " "para \"bind\" anónimo" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Password para bind" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Base para pesquisa de utilizadores" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtro de pesquisa" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1735,11 +1738,11 @@ msgstr "" "Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre " "parênteses para ser válido" -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Template DN de utilizador" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1748,38 +1751,38 @@ msgstr "" "O template usado para construir o DN (nome único). Deve apenas conter um " "'placeholder' (ex: %(user)s) " -#: core/app_settings.py:350 +#: core/app_settings.py:338 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "Definições do serviço de directório" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "Template DN de utilizador" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, fuzzy, python-format #| msgid "" #| "The template used to construct a user's DN. It should contain one " @@ -1791,245 +1794,235 @@ msgstr "" "O template usado para construir o DN (nome único). Deve apenas conter um " "'placeholder' (ex: %(user)s) " -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Atributo de palavra-passe" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "sent messages" msgid "Custom welcome message" msgstr "A criar mensagem" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Server port" msgid "Secondary theme color" msgstr "Porta do Servidor" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 #, fuzzy #| msgid "Authentication" msgid "Notifications" msgstr "Autenticação" -#: core/app_settings.py:601 +#: core/app_settings.py:589 #, fuzzy #| msgid "Server address" msgid "Sender address" msgstr "Endereço do Servidor" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Verifica automaticamente se existem novas versões" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Procurar novas versões" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Destinatário" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Intervalo de tempo para verificar notificações (no topo)" -#: core/app_settings.py:710 +#: core/app_settings.py:698 #, 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:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Idade máxima do registo no log" -#: core/app_settings.py:719 +#: core/app_settings.py:707 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:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Itens por página" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Número de itens apresentados por página" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Redirecionamento pré-definido" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"O redirecionamento padrão usado quando nenhuma aplicação se encontra " -"especificada" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2389,7 +2382,7 @@ msgid "Not resolved" msgstr "Sem destinatário definido" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Nenhum" @@ -3359,7 +3352,7 @@ msgstr "é" msgid "is not" msgstr "não é" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Assunto" @@ -3613,23 +3606,23 @@ msgstr "Tamanho máximo do anexo em bytes (ou KB, MB, GB se especificado)" msgid "SMTP settings" msgstr "Definições SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, fuzzy #| msgid "Address of your IMAP server" msgid "Address of your SMTP server" msgstr "Endereço do servidor IMAP" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "Modo de ligação segura" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3646,103 +3639,109 @@ msgstr "Autenticação necessária" msgid "Server needs authentication" msgstr "O servidor requer autenticação" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "Definições do MANAGESIEVE" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Modo de visualização predefinido" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Ativar visualização de links HTML" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Ativar/desativar" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 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 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Taxa de actualização da listagem" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Largura do caixilho das caixas de correio" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "Largura do caixilho da lista de caixa de correio" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Pasta para Itens Eliminados" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Pasta para a qual os itens eliminados são enviados" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Pasta para Itens Enviados" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Pasta onde as copias das mensagens enviadas são guardadas" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Pasta para Rascunhos" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Pasta onde ficam guardados os rascunhos" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "Pasta para Itens Enviados" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "Pasta para a qual os itens eliminados são enviados" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "A criar mensagem" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Editor predefinido" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Assinatura" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Assinatura de email definida pelo utilizador" @@ -3758,45 +3757,74 @@ msgstr "Endereço do Servidor" msgid "Failed to remove attachment: " msgstr "Falha ao remover os anexos:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Data" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "Todas as mensagens" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Falha ao recuperar hierarquia delimitador" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "Pasta para Rascunhos" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Anexo demasiado grande (limite %s)" + +#, fuzzy +#~| msgid "Profile" +#~ msgid "User profile" +#~ msgstr "Perfil" + +#~ msgid "Default top redirection" +#~ msgstr "Redirecionamento pré-definido" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "O redirecionamento padrão usado quando nenhuma aplicação se encontra " +#~ "especificada" diff --git a/modoboa/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/locale/ro_RO/LC_MESSAGES/django.po index 7da7eccd0..052bcea31 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2021-10-04 13:27+0000\n" "Last-Translator: Simona Iacob \n" "Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/" @@ -51,14 +51,14 @@ msgid "Cannot be greater than domain quota" msgstr "Nu poate fi mai mare decat cota domeniului" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Permisiune refuzată." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Acest câmp este necesar" @@ -68,7 +68,7 @@ msgid "" msgstr "" "Lista domenilor administrate (doar reselleri și administratori de domeniu)" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Ne permis pentru acest rol." @@ -76,13 +76,12 @@ msgstr "Ne permis pentru acest rol." msgid "Must be equal to mailbox full_address" msgstr "Trebuie să fie egal cu mailbox full_address" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Acest câmp este necesar." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Domeniu local {} nu există" @@ -125,41 +124,41 @@ msgstr "Nu poți sa definești o cotă nelimitată" msgid "User '%s' already exists" msgstr "Utilizatorul '%s'  exista deja" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Trebuie să fie un număr întreg pozitiv" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Directorul nu a fost găsit." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 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:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, 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:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -264,19 +263,29 @@ msgstr "Activează verificările DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Verificați fiecare domeniu folosind furnizorii DNSBL majori" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Servere DNS personalizate" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Folderul de stocare pentru cheile DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -286,19 +295,19 @@ msgstr "" "Asigurați-vă că acest director aparține utilizatorului root și nu poate fi " "citit de orice user." -#: admin/app_settings.py:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Mărimea implicită în caractere a chei DKIM" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Cota-parte implicită a domeniului" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -306,11 +315,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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Limita implicită de trimitere a domeniului" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -318,16 +327,16 @@ 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:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Cutii poștale" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Gestionați cutiile poștale în sistemul de fișiere" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -335,11 +344,11 @@ 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:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Cota implicită pentru cutia poștală" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created mailboxes with " @@ -352,11 +361,11 @@ msgstr "" "create fără a fi specificată nicio valoare. O valoare de 0 înseamnă că nu " "există cotă." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Limita implicită de trimitere a căsuței poștale" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -364,64 +373,64 @@ 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:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Ștergere automată a contului" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Crearea automată a domeniului / cutiei poștale" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 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:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Creați un alias utilizând vechea adresă atunci când o cutie poștală este " "redenumită." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administrare" @@ -441,6 +450,35 @@ msgstr "Deschis" msgid "Closed" msgstr "Închis" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} listat de furnizorul DNSBL {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Domeniul nu are înregistrare MX" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Domeniul {} nu are înregistrări MX" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Înregistrare MX invalidă: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "Înregistrarea MX pentru domeniul {0} este invalidă: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] Problemă(e) MX pentru domeniul {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] Problemă(e) DNSBL pentru domeniul {} " + #: admin/handlers.py:179 msgid "domain alias" msgstr "alias domeniu" @@ -463,8 +501,8 @@ msgstr "Nu ești autorizat să imporți domenii" msgid "You are not allowed to import domain aliases." msgstr "Nu ești autorizat să imporți aliasuri de domenii" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr " Nu s-a găsit nicio înregistrare DNS pentru %s" @@ -474,11 +512,11 @@ msgstr " Nu s-a găsit nicio înregistrare DNS pentru %s" msgid "No %(type)s record for %(name)s" msgstr "Nu %(type)sînregistrati pentru %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Nu s-au găsit NS-uri funcționale" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -535,35 +573,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Activați comunicarea cu API-ul public Modoboa" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} listat de furnizorul DNSBL {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Domeniul nu are înregistrare MX" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Domeniul {} nu are înregistrări MX" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Înregistrare MX invalidă: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "Înregistrarea MX pentru domeniul {0} este invalidă: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] Problemă(e) MX pentru domeniul {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] Problemă(e) DNSBL pentru domeniul {} " - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domeniu negăsit" @@ -765,17 +774,17 @@ msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" "Modoboa a detectat ca domeniul %(domain)s nu are înregistrări MX valide: " -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Nu există înregistrări MX pentru %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Format invalid de IP pentru %(domain)s; %(addr)s " -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -990,11 +999,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1280,7 +1289,7 @@ msgstr "" "Permiteți acestui administrator să acceseze cutiile poștale ale " "utilizatorilor" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Diverse" @@ -1298,11 +1307,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1389,7 +1398,7 @@ msgstr "2FA este deja activat" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1403,24 +1412,20 @@ msgstr "2FA nu este activat" msgid "Local" msgstr "Local" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Profil utilizator" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Sintaxă invalidă" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Număr invalid de iterații" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Acest cod nu este valabil" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 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: {}" @@ -1454,37 +1459,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "E-mail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Autentificare" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Tip autentificare" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Tehnologia backend folosită pentru autentificare " -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Schema pentru parola implicită" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Schema de criptare pentru parole" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Iterații" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1493,47 +1498,47 @@ msgstr "" "sha512crypt) Trebuie să fie un număr cuprins între 1000 și 999999999 " "inclusiv." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Actualizarea schemei de parole la autentificare" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Parola implicită" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Parola implicită setată pentru conturile create automat." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Mărime parolă aleatorie" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Mărimea parolelor generate aleator." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Mărimea parolelor generate aleator." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Actualizarea URL-ului serviciului de parolă" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1543,106 +1548,106 @@ 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Anunț de recuperare a parolei" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Activați recuperarea parolei prin SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "Furnizor de SMS" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Alegeți un furnizor pentru a trimite SMS de recuperare a parolei" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Adresă server" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Port server" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Numărul de port TCP folosit de serverul LDAP" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Activați serverul secundar (fallback)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Adresa serverului secundar" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Portul serverului secundar" -#: core/app_settings.py:212 +#: core/app_settings.py:200 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Folosește o conexiune securizată" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Grupuri administrator" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1650,47 +1655,47 @@ msgstr "" "Membrii acelor grupuri LDAP Posix vor fi create ca administratori de " "domeniu. Folosește caracterul ';' pentru a separa grupurile." -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Tipul de grup" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Baza pentru căutare grupuri" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atributul parolă" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Atributul folosit pentru a stoca parola utilizatorului" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "Setări de autentificare LDAP" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Metoda de autentificare" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Alege metodă folosită pentru autentificare" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Atribuie DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1698,28 +1703,28 @@ msgstr "" "Numele ales folosit la atribuirea cu servarul LDAP. Câpul necompletat se " "foloseste în cazul atribuirii anonime" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Parola de atribuire" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Căutare bază de utilizatori" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Filtru de căutare" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1727,11 +1732,11 @@ msgstr "" "Un filtru opțional (de ex. '(ObjectClass = persoană)'). Pentru a fi valid, " "trebuie să fie închis în paranteze." -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Templateul DN pt utilizator" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1740,26 +1745,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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "Setări de sincronizare LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Activați exportul către LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 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:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1767,11 +1772,11 @@ msgstr "" "Ștergeți contul LDAP la distanță atunci când contul local este șters, altfel " "acesta va fi dezactivat." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Șablon de cont DN" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1780,209 +1785,209 @@ 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Activați importul din LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 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:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Atributul nume de utilizator" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Activați sincronizarea Dovecot LDAP" -#: core/app_settings.py:457 +#: core/app_settings.py:445 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:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Fișier de configurare Dovecot LDAP" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Bord" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "spam messages" msgid "Custom welcome message" msgstr "mesaje spam" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." msgid "A welcome message that will be displayed instead the default one" msgstr "Un mesaj temporar care va fi afișat pe pagina de resetare a parolei." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Feedul RSS personalizat" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Afișează feedul RSS personalizat la reselleri și administratori de domeniu" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Afișează feedul RSS personalizat la reselleri și administratori de domeniu" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Ascunde widgetul de caracteristici " -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" "Ascunde widgetul de caracteristici pentru reselleri și administratori de " "domeniu" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Email secundar" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notificări" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Adresa expeditorului" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Adresa de email folosită pentru trimiterea notificărilor." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "API public" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Activați comunicarea" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Verifică automat dacă este disponibilă o versiune mai nouă" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Verifică dacă există noi versiuni" -#: core/app_settings.py:640 +#: core/app_settings.py:628 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:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Beneficiar" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Destinatarul e-mailurilor de notificare a noilor versiuni." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Trimite statistici" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Pragul pentru cont invalid" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Pragul pentru cont invalid" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1990,49 +1995,39 @@ msgstr "" "Un cont cu o ultima data de conectare mai mare decat acest prag (in zile) va " "fi considerat inactiv" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Intervalul de verificare a notificărilor" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" "Intervalul dintre două verificări de notificare principală (în secunde)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Vechimea maximă a înregistrărilor log" -#: core/app_settings.py:719 +#: core/app_settings.py:707 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:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Număr de itemi per pagină" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Numărul de itemi afișați pe o pagină" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Redirecționarea principală implicită" - -#: core/app_settings.py:748 -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/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2382,7 +2377,7 @@ msgid "Not resolved" msgstr "Nedefinit" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3355,7 +3350,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Subiect" @@ -3617,24 +3612,24 @@ msgstr "" msgid "SMTP settings" msgstr "Setări LDAP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Folosește o conexiune securizată" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3650,11 +3645,17 @@ msgstr "Metoda de autentificare" msgid "Server needs authentication" msgstr "Setări de autentificare LDAP" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "Setări LDAP" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default mode used when displaying a message" @@ -3662,97 +3663,97 @@ msgstr "" "Redirecționarea implicită utilizată atunci când nu este specificată nici o " "aplicație" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 #, fuzzy #| msgid "Create aliases" msgid "Folders" msgstr "Crează aliasuri " -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 #, fuzzy #| msgid "Create aliases" msgid "Trash folder" msgstr "Crează aliasuri " -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "mesaje rejectate" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 #, fuzzy #| msgid "Create aliases" msgid "Sent folder" msgstr "Crează aliasuri " -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 #, fuzzy #| msgid "Create aliases" msgid "Drafts folder" msgstr "Crează aliasuri " -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Create aliases" msgid "Junk folder" msgstr "Crează aliasuri " -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "mesaje rejectate" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "mesaje trimise" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Redirecționarea principală implicită" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, fuzzy #| msgid "The default redirection used when no application is specified" msgid "The default editor to use when composing a message" @@ -3760,11 +3761,11 @@ msgstr "" "Redirecționarea implicită utilizată atunci când nu este specificată nici o " "aplicație" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3780,47 +3781,74 @@ msgstr "Adresă server" msgid "Failed to remove attachment: " msgstr "Nu s-a reușit crearea unui cont LDAP: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Dată" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "mesaje trimise" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Create aliases" msgid "Drafts" msgstr "Crează aliasuri " -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Profil utilizator" + +#~ msgid "Default top redirection" +#~ msgstr "Redirecționarea principală implicită" + +#~ 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" diff --git a/modoboa/locale/ru/LC_MESSAGES/django.po b/modoboa/locale/ru/LC_MESSAGES/django.po index 9f37338b9..109dc0c57 100644 --- a/modoboa/locale/ru/LC_MESSAGES/django.po +++ b/modoboa/locale/ru/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: # Aleksandr Mokrushin, 2021 # Aleksandr Mokrushin, 2023 @@ -27,25 +27,32 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: Николай Грищенков, 2025\n" -"Language-Team: Russian (http://app.transifex.com/tonio/modoboa/language/ru/)\n" +"Language-Team: Russian (http://app.transifex.com/tonio/modoboa/language/" +"ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\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" +"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:39 msgid "" "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " "A value of 0 means no quota." -msgstr "Квота распределяемая между почтовыми ящиками. Может быть выражена в КБ, МБ (по умолчанию) или ГБ. Значение 0 означает отсутствие квоты." +msgstr "" +"Квота распределяемая между почтовыми ящиками. Может быть выражена в КБ, МБ " +"(по умолчанию) или ГБ. Значение 0 означает отсутствие квоты." #: admin/api/v1/serializers.py:46 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgstr "К почтовым ящикам применяется квота по умолчанию в МБ. Значение 0 означает отсутствие квоты." +msgstr "" +"К почтовым ящикам применяется квота по умолчанию в МБ. Значение 0 означает " +"отсутствие квоты." #: admin/api/v1/serializers.py:94 msgid "domain alias with this name already exists" @@ -60,23 +67,25 @@ msgid "Cannot be greater than domain quota" msgstr "Не может быть больше чем квота домена" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "В доступе отказано" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Это поле обязательно для заполнеия" #: admin/api/v1/serializers.py:243 msgid "" "List of administered domains (resellers and domain administrators only)." -msgstr "Список администрируемых доменов (только для реселлеров и администраторов доменов)." +msgstr "" +"Список администрируемых доменов (только для реселлеров и администраторов " +"доменов)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Не доступно для данной роли." @@ -84,13 +93,12 @@ msgstr "Не доступно для данной роли." msgid "Must be equal to mailbox full_address" msgstr "Должен совпадать с полным адресом почтового ящика." -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Это поле обязательно для заполнения" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Локальный домен {} не существует" @@ -131,39 +139,39 @@ msgstr "Вы не можете установить неограниченную msgid "User '%s' already exists" msgstr "Пользователь '%s' уже существует" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Значение может быть положительным целым числом" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "openssl не найден, убедитесь, что он установлен." -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Каталог не найден." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "В этом поле разрешены только действительные IP-адреса (или сети)." -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "Пожалуйста, отключите миграцию imap, прежде чем отключать эту опцию." -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Определите хотя бы одну авторизованную сеть/адрес" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "Левая часть E-Mail адреса не может быть длиннее 64 символов." -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "Для создания алиасов нужен хотя бы один почтовый ящик." -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "Неизвестный статус" @@ -193,9 +201,11 @@ msgstr "Разрешённые MX-записи" #: admin/app_settings.py:37 msgid "" -"A list of IP or network address every MX record should match. A warning will" -" be sent if a record does not respect it." -msgstr "Список IP или сетевых адресов которым должна соответствовать каждая MX запись. Предупреждение будет отправлено если запись не соответствует этому." +"A list of IP or network address every MX record should match. A warning will " +"be sent if a record does not respect it." +msgstr "" +"Список IP или сетевых адресов которым должна соответствовать каждая MX " +"запись. Предупреждение будет отправлено если запись не соответствует этому." #: admin/app_settings.py:47 msgid "New domains must use authorized MX(s)" @@ -205,7 +215,8 @@ msgstr "Новые домены обязаны использовать разр msgid "" "Prevent the creation of a new domain if its MX record does not use one of " "the defined addresses." -msgstr "Запрещать создание домена, если его MX-запись не входит в разрешённый список." +msgstr "" +"Запрещать создание домена, если его MX-запись не входит в разрешённый список." #: admin/app_settings.py:59 msgid "Enable IPV6 checks" @@ -255,142 +266,167 @@ msgstr "Включить проверки DNSBL" msgid "Check every domain against major DNSBL providers" msgstr "Проверьте каждый домен по основным провайдерам DNSBL" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Пользовательский DNS-сервер" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" -msgstr "Используйте пользовательский DNS-сервер вместо конфигурации локального сервера" +msgstr "" +"Используйте пользовательский DNS-сервер вместо конфигурации локального " +"сервера" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "Каталог хранения ключей DKIM" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Длина ключа DKIM по умолчанию" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "Длина в битах для новых ключей DKIM по умолчанию." -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Квота домена по умолчанию" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." -msgstr "Квота по умолчанию (в МБ), применяемая к только что созданным доменам, значение которых не задано. Значение 0 означает отсутствие квоты." +msgstr "" +"Квота по умолчанию (в МБ), применяемая к только что созданным доменам, " +"значение которых не задано. Значение 0 означает отсутствие квоты." -#: admin/app_settings.py:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Лимит отправки по умолчанию для домена" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." -msgstr "Количество сообщений, которые разрешено отправлять свежесозданным доменам в день. Оставьте пустым, чтобы не ограничивать." +msgstr "" +"Количество сообщений, которые разрешено отправлять свежесозданным доменам в " +"день. Оставьте пустым, чтобы не ограничивать." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Почтовые ящики" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Обрабатывать почтовые ящики на диске" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" -msgstr "Удалять или переименовывать почтовые ящики на диске, если они удалены или переименованы в Modoboa" +msgstr "" +"Удалять или переименовывать почтовые ящики на диске, если они удалены или " +"переименованы в Modoboa" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Квота почтового ящика по умолчанию" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." -msgstr "Квота почтового ящика по умолчанию (в МБ), применяемая к вновь созданным доменам без указанного значения. Значение 0 означает отсутствие квоты." +msgstr "" +"Квота почтового ящика по умолчанию (в МБ), применяемая к вновь созданным " +"доменам без указанного значения. Значение 0 означает отсутствие квоты." -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Ограничение отправки почтовых сообщений по умолчанию" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." -msgstr "Количество сообщений, которые новые почтовые ящики могут отправлять в день. Оставьте пустым, чтобы не ограничивать." +msgstr "" +"Количество сообщений, которые новые почтовые ящики могут отправлять в день. " +"Оставьте пустым, чтобы не ограничивать." -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Автоматическое удаление учётной записи" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" -msgstr "При удалении почтового ящика, так же удалять и учётной записи владельца" +msgstr "" +"При удалении почтового ящика, так же удалять и учётной записи владельца" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Автоматическое создание домена/почтового ящика" -#: admin/app_settings.py:221 -msgid "" -"Create a domain and a mailbox when an account is automatically created." -msgstr "При автоматическом создании учётной записи также создавать домен и ящик." +#: admin/app_settings.py:233 +msgid "Create a domain and a mailbox when an account is automatically created." +msgstr "" +"При автоматическом создании учётной записи также создавать домен и ящик." -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "Создать алиас при переименовании почтового ящика" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "При переименовании ящика создавать алиас со старым адресом." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "Алиасы" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "Алиасы могут указывать на любой домен" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "Разрешить алиасам указывать любой домен, а не только локальные домены." -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "Список целевых блокировок алиасов" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "Домены, на которые запрещено ставить алиасы (через запятую)" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "Список разрешенных целевых алиасов" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "Список доменов, на которые могут быть нацелены алиасы (через запятую)." -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Администрирование" @@ -410,6 +446,35 @@ msgstr "Открыто" msgid "Closed" msgstr "Закрыто" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} внесён в список DNSBL‑провайдера {}." + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "У домена отсутствует MX-запись" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "У домена {} отсутсвует MX-запись" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Невалидная MX-запись: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "MX-запись для домена {0} не валидная: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX проблема(ы) для домена {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL проблема(ы) для домена {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "алиас домена" @@ -432,8 +497,8 @@ msgstr "У вас нет прав на импорт доменов" msgid "You are not allowed to import domain aliases." msgstr "У вас нет прав на импорт алиасов доменов." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Не найдена DNS-запись для %s" @@ -443,11 +508,11 @@ msgstr "Не найдена DNS-запись для %s" msgid "No %(type)s record for %(name)s" msgstr "Нет %(type)s записи для %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Не найдены доступные серверы имен" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "Тайм-аут DNS, сейчас невозможно проверить %s" @@ -489,7 +554,8 @@ msgstr "Не удалось прочитать CSV-файл в кодировк msgid "" "DKIM path non-writable (either a permission issue or the directory does not " "exist)" -msgstr "Каталог DKIM недоступен для записи (нет прав или каталога не существует)" +msgstr "" +"Каталог DKIM недоступен для записи (нет прав или каталога не существует)" #: admin/management/commands/subcommands/_manage_dkim_keys.py:52 msgid "Failed to generate DKIM private key" @@ -499,35 +565,6 @@ msgstr "Не удалось сгенерировать приватный клю msgid "Failed to generate DKIM public key" msgstr "Не удалось сгенерировать публичный ключ DKIM" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} внесён в список DNSBL‑провайдера {}." - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "У домена отсутствует MX-запись" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "У домена {} отсутсвует MX-запись" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Невалидная MX-запись: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "MX-запись для домена {0} не валидная: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX проблема(ы) для домена {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL проблема(ы) для домена {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Домен не найден." @@ -612,7 +649,8 @@ msgstr "Включить DKIM‑подпись" #: admin/models/domain.py:63 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Если вы включите эту функцию, для этого домена будет сгенерирован DKIM‑ключ." +msgstr "" +"Если вы включите эту функцию, для этого домена будет сгенерирован DKIM‑ключ." #: admin/models/domain.py:70 msgid "Key length" @@ -633,11 +671,13 @@ msgstr " {}: недопустимое значение квоты для дом #: admin/models/domain.py:343 msgid "{}: invalid default mailbox quota value for domain" -msgstr " {}: недопустимое значение квоты почтового ящика по умолчанию для домена" +msgstr "" +" {}: недопустимое значение квоты почтового ящика по умолчанию для домена" #: admin/models/domain.py:350 msgid "{}: default mailbox quota cannot be greater than domain quota" -msgstr "{}: квота почтового ящика по умолчанию не может быть больше квоты домена" +msgstr "" +"{}: квота почтового ящика по умолчанию не может быть больше квоты домена" #: admin/models/domain_alias.py:36 msgid "The alias name" @@ -662,7 +702,8 @@ msgstr "Адрес почтового ящика (без @domain.tld)" #: admin/models/mailbox.py:95 msgid "Number of messages this mailbox can send per day" -msgstr "Количество писем, которые можно отправить из этого почтового ящика за день" +msgstr "" +"Количество писем, которые можно отправить из этого почтового ящика за день" #: admin/models/mailbox.py:153 #, python-format @@ -690,31 +731,36 @@ msgstr "Почтовый ящик {} уже существует" msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " "providers:" -msgstr "Modoboa обнаружил, что домен %(domain)s включён в списки следующих DNSBL‑провайдеров:" +msgstr "" +"Modoboa обнаружил, что домен %(domain)s включён в списки следующих " +"DNSBL‑провайдеров:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 msgid "" "The domain's reputation will be affected and there is a chance that emails " "coming from it are considered as spam. You should contact those providers " "and ask them to unlist detected IP address(es)." -msgstr "Репутация домена ухудшится, и есть риск, что письма с него будут считаться спамом. Вам следует связаться с этими провайдерами и попросить удалить обнаруженные IP‑адреса из списков." +msgstr "" +"Репутация домена ухудшится, и есть риск, что письма с него будут считаться " +"спамом. Вам следует связаться с этими провайдерами и попросить удалить " +"обнаруженные IP‑адреса из списков." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa обнаружил, что у домена %(domain)s нет корректной MX‑записи:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Нет MX‑записи для %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Неверный формат IP адреса для %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "Нет AAAA‑записи для %s" @@ -729,7 +775,8 @@ msgstr "Локальная часть адреса чувствительна к #: amavis/app_settings.py:19 msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive" -msgstr "Значение должно совпадать с $localpart_is_case_sensitive в amavisd.conf" +msgstr "" +"Значение должно совпадать с $localpart_is_case_sensitive в amavisd.conf" #: amavis/app_settings.py:27 msgid "Recipient delimiter" @@ -801,7 +848,8 @@ msgstr "Разрешить прямое деблокирование" #: amavis/app_settings.py:117 msgid "Allow users to directly release their messages" -msgstr "Позволить пользователю самостоятельно деблокировать сообщения для доставки" +msgstr "" +"Позволить пользователю самостоятельно деблокировать сообщения для доставки" #: amavis/app_settings.py:124 msgid "Enable self-service mode" @@ -837,7 +885,8 @@ msgstr "Является ли Spamassassin локальным?" #: amavis/app_settings.py:163 msgid "Tell if Spamassassin is running on the same server than modoboa" -msgstr "Укажите, запущен ли SpamAssassin на том же сервере, где установлен Modoboa" +msgstr "" +"Укажите, запущен ли SpamAssassin на том же сервере, где установлен Modoboa" #: amavis/app_settings.py:171 msgid "Default user" @@ -871,7 +920,9 @@ msgstr "Включить подоменное ручное обучение" msgid "" "Allow domain administrators to train Spamassassin (within dedicated per-" "domain databases)" -msgstr "Разрешить администраторам домена обучать Spamassassin (в рамках выделенных баз данных для каждого домена)" +msgstr "" +"Разрешить администраторам домена обучать Spamassassin (в рамках выделенных " +"баз данных для каждого домена)" #: amavis/app_settings.py:215 msgid "Enable per-user manual learning" @@ -881,13 +932,15 @@ msgstr "Включить ручное обучение для каждого п msgid "" "Allow simple users to personally train Spamassassin (within a dedicated " "database)" -msgstr "Разрешить простым пользователям обучать Spamassassin (в рамках выделенной базы данных)." +msgstr "" +"Разрешить простым пользователям обучать Spamassassin (в рамках выделенной " +"базы данных)." -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "Отображение" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "Количество отображаемых писем на странице" @@ -903,13 +956,17 @@ msgstr "Amavis" msgid "" "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used " "by the Amavis database." -msgstr "Кодировка AMAVIS_DEFAULT_DATABASE_ENCODING не совпадает с кодировкой базы Amavis" +msgstr "" +"Кодировка AMAVIS_DEFAULT_DATABASE_ENCODING не совпадает с кодировкой базы " +"Amavis" #: amavis/checks/settings_checks.py:12 msgid "" "Check your database character encoding and set/update " "AMAVIS_DEFAULT_DATABASE_ENCODING." -msgstr "Проверьте кодировку базы данных и установите правильное значение AMAVIS_DEFAULT_DATABASE_ENCODING" +msgstr "" +"Проверьте кодировку базы данных и установите правильное значение " +"AMAVIS_DEFAULT_DATABASE_ENCODING" #: amavis/checks/settings_checks.py:19 msgid "Modoboa Amavis has not been tested using the selected database engine." @@ -962,7 +1019,9 @@ msgstr "По умолчанию" #: amavis/models.py:111 msgid "Bypass virus checks or not. Choose 'default' to use global settings." -msgstr "Обход проверки на вирусы. Выберите 'По умолчанию' для использования глобальных настроек." +msgstr "" +"Обход проверки на вирусы. Выберите 'По умолчанию' для использования " +"глобальных настроек." #: amavis/models.py:115 msgid "Spam filter" @@ -970,7 +1029,9 @@ msgstr "Спам фильтр" #: amavis/models.py:125 msgid "Bypass spam checks or not. Choose 'default' to use global settings." -msgstr "Обход проверки на спам. Выберите 'По умолчанию' для использования глобальных настроек" +msgstr "" +"Обход проверки на спам. Выберите 'По умолчанию' для использования глобальных " +"настроек" #: amavis/models.py:129 msgid "Banned filter" @@ -978,7 +1039,9 @@ msgstr "Фильтр блокировки" #: amavis/models.py:139 msgid "Bypass banned checks or not. Choose 'default' to use global settings." -msgstr "Обход проверки на блокирование. Выберите 'По умолчанию' для использования глобальных настроек" +msgstr "" +"Обход проверки на блокирование. Выберите 'По умолчанию' для использования " +"глобальных настроек" #: amavis/models.py:170 msgid "Spam marker" @@ -986,9 +1049,11 @@ msgstr "Спам-метка" #: amavis/models.py:176 msgid "" -"Modify spam subject using the specified text. Choose 'default' to use global" -" settings." -msgstr "Изменить тему спам сообщения используя специальный текст. Выберите 'по умолчанию' для использования глобальных настроек" +"Modify spam subject using the specified text. Choose 'default' to use global " +"settings." +msgstr "" +"Изменить тему спам сообщения используя специальный текст. Выберите 'по " +"умолчанию' для использования глобальных настроек" #: amavis/templates/amavis/notifications/pending_requests.html:3 #, python-format @@ -1057,7 +1122,8 @@ msgstr "Период между двумя автоответами" #: autoreply/app_settings.py:20 msgid "" "Number of days to wait before sending a new auto-reply to the same recipient" -msgstr "Количество дней ожидания перед отправкой нового автоответа тому же получателю" +msgstr "" +"Количество дней ожидания перед отправкой нового автоответа тому же получателю" #: autoreply/app_settings.py:27 autoreply/app_settings.py:36 msgid "Default subject" @@ -1073,7 +1139,9 @@ msgstr "Тема по умолчанию для автоматически со msgid "" "Default content used when an auto-reply message is created automatically. " "The '%(name)s' macro will be replaced by the user's full name." -msgstr "Содержание по умолчанию используется при автоматическом создании автоответа. Переменная '%(name)s' будет заменена на полное имя." +msgstr "" +"Содержание по умолчанию используется при автоматическом создании автоответа. " +"Переменная '%(name)s' будет заменена на полное имя." #: autoreply/apps.py:15 msgid "Automatic replies" @@ -1110,7 +1178,9 @@ msgstr "URL сервера" #: calendars/app_settings.py:19 msgid "" "The URL of your Radicale server. It will be used to construct calendar URLs." -msgstr "URL-адрес вашего сервера Radicale. Он будет использоваться для создания URL-адресов календаря." +msgstr "" +"URL-адрес вашего сервера Radicale. Он будет использоваться для создания URL-" +"адресов календаря." #: calendars/app_settings.py:31 msgid "Rights management" @@ -1130,9 +1200,11 @@ msgstr "Разрешить администрирование календаре #: calendars/app_settings.py:48 msgid "Allow domain administrators to manage user calendars (read and write)" -msgstr "Разрешить администратору домена управлять календарями пользователей (чтение и запись)" +msgstr "" +"Разрешить администратору домена управлять календарями пользователей (чтение " +"и запись)" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Прочее" @@ -1144,17 +1216,19 @@ msgstr "Максимальный размер файлов ICS" #: calendars/app_settings.py:68 msgid "" "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)" -msgstr "Максимальный размер импортированных файлов ICS в байтах (или КБ, МБ, ГБ, если указано)" +msgstr "" +"Максимальный размер импортированных файлов ICS в байтах (или КБ, МБ, ГБ, " +"если указано)" #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205 msgid "Calendars" msgstr "Календари" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "Местоположение сервера не установлено, исправьте это." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "Загруженный файл слишком велик (максимум: {} байт)" @@ -1170,7 +1244,9 @@ msgstr "Синхронизировать адресную книгу через msgid "" "Choose to synchronize or not your address book using CardDAV. You will be " "able to access your contacts from the outside." -msgstr "Выберите, синхронизировать ли адресную книгу через CardDAV. Это позволит получать доступ к контактам извне." +msgstr "" +"Выберите, синхронизировать ли адресную книгу через CardDAV. Это позволит " +"получать доступ к контактам извне." #: contacts/app_settings.py:29 msgid "Synchronization frequency" @@ -1231,9 +1307,11 @@ msgstr "Двухфакторная аутентификация 2FA уже вк #: core/api/v1/serializers.py:87 #, python-format msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" -msgstr "Неудачная попытка изменения настроек двухфакторной аутентификации от %(addr)s от имени пользователя %(user)s" +msgstr "" +"Неудачная попытка изменения настроек двухфакторной аутентификации от " +"%(addr)s от имени пользователя %(user)s" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "Неверный пароль" @@ -1245,25 +1323,20 @@ msgstr "Двухфакторная аутентификация 2FA не вкл msgid "Local" msgstr "Локальный" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Профиль пользователя" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Неверный синтаксис" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Неправильное количество циклов" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Этот код недействителен" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 -#: core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "Используйте следующий код для восстановления пароля Modoboa : {}" @@ -1288,531 +1361,571 @@ msgid "Calendar" msgstr "Календарь" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "Веб-почта" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Аутентификация" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Тип аутентификации" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Базовая программа для проверки подлинности" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Схема пароля по умолчанию" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Схема используемая для шифровании пароля почтового ящика." -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Циклы" -#: core/app_settings.py:63 +#: core/app_settings.py:51 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Обновить схему пароля при входе" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" -msgstr "Обновите пароль пользователя при входе в систему, чтобы использовать схему пароля по умолчанию" +msgstr "" +"Обновите пароль пользователя при входе в систему, чтобы использовать схему " +"пароля по умолчанию" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Пароль по умолчанию" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Пароль по умолчанию для автоматически создаваемых учетных записей." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Длина случайного пароля" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Длина случайно сгенерированного пароля." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "Разрешить специальные символы для случайного пароля" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." -msgstr "Включить использование специальных символов в случайно генерируемых паролях" +msgstr "" +"Включить использование специальных символов в случайно генерируемых паролях" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Обновить URL-адрес службы паролей" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Объявление о восстановлении пароля" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." -msgstr "Временное сообщение, которое будет отображаться на странице сброса пароля" +msgstr "" +"Временное сообщение, которое будет отображаться на странице сброса пароля" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Включить восстановление пароля по SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." -msgstr "Включить восстановление пароля по SMS для пользователей, указавших номер телефона." +msgstr "" +"Включить восстановление пароля по SMS для пользователей, указавших номер " +"телефона." -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "Поставщик SMS" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Выбрать поставщика службы SMS для восстановления пароля" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "LDAP" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Адрес сервера" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "IP адрес или DNS имя сервера LDAP" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Порт сервера" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "Номер TCP порта LDAP сервера" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Включить дополнительный сервер (запасной вариант)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" -msgstr "Включите дополнительный LDAP-сервер, который будет использоваться в случае сбоя основного" +msgstr "" +"Включите дополнительный LDAP-сервер, который будет использоваться в случае " +"сбоя основного" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Адрес дополнительного сервера" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "IP-адрес или DNS-имя дополнительного LDAP-сервера" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Порт дополнительного сервера" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "Номер TCP-порта, используемого вторичным сервером LDAP" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Использовать защищенное соединение" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "Использовать SSL/TLS соединение с LDAP сервером" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Укажите, если LDAP сервер в Active Directory" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Администратор груп" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" -"Members of those LDAP Posix groups will be created as domain administrators." -" Use ';' characters to separate groups." -msgstr "Члены этих LDAP Posix групп должны быть созданы администратором домена. Используйте ';' для как разделитель груп" +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." +msgstr "" +"Члены этих LDAP Posix групп должны быть созданы администратором домена. " +"Используйте ';' для как разделитель груп" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Тип группы" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Тип групп, используемых вашим каталогом LDAP" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "База поиска групп" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "Уникальное имя базы которое используется для поиска групп" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Атрибут пароля" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Свойства используемые для сохранения пользовательских паролей" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "Настройки аутентификации LDAP" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Метод аутентификации" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Выберите метод аутентификации " -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Соединится с DN " -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" -msgstr "Отличительное имя используемое для соединения с LDAP сервером. Оставьте пустым для анонимного соединения" +msgstr "" +"Отличительное имя используемое для соединения с LDAP сервером. Оставьте " +"пустым для анонимного соединения" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Пароль для соединения" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "Пароль для соединения с LDAP сервером" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "База поиска пользователей" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "Уникальное имя базы которое используется для поиска пользователей" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Фильтр поиска" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." -msgstr "Необязательная срока поиска (например '(objectClass=person)') Значение нужно заключить в скобки" +msgstr "" +"Необязательная срока поиска (например '(objectClass=person)') Значение нужно " +"заключить в скобки" -#: core/app_settings.py:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Шаблон пользователя DN" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "Шаблон используется для построения запросов к DN Он должен содержать атрибут например (%(user)s)" +msgstr "" +"Шаблон используется для построения запросов к DN Он должен содержать атрибут " +"например (%(user)s)" -#: core/app_settings.py:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "Настройки синхронизации LDAP" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Включить экспорт в LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" -msgstr "Включить автоматическую синхронизацию между локальной базой данных и каталогом LDAP." +msgstr "" +"Включить автоматическую синхронизацию между локальной базой данных и " +"каталогом LDAP." -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" -msgstr "Удалить удаленную учетную запись LDAP при удалении локальной учетной записи" +msgstr "" +"Удалить удаленную учетную запись LDAP при удалении локальной учетной записи" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." -msgstr "Удалите удаленную учетную запись LDAP при удалении локальной учетной записи, иначе она будет отключена." +msgstr "" +"Удалите удаленную учетную запись LDAP при удалении локальной учетной записи, " +"иначе она будет отключена." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Шаблон DN учётной записи" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "Шаблон используется для построения запросов к аккаунту DN. Он должен содержать атрибут (например %(user)s)" +msgstr "" +"Шаблон используется для построения запросов к аккаунту DN. Он должен " +"содержать атрибут (например %(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Включить импорт из LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" -msgstr "Включить синхронизацию учетных записей из каталога LDAP в локальную базу данных." +msgstr "" +"Включить синхронизацию учетных записей из каталога LDAP в локальную базу " +"данных." -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Атрибут имени пользователя" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "Имя атрибута LDAP, в котором можно найти имя пользователя." -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Включить синхронизацию Dovecot с LDAP" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "Параметры аутентификации LDAP будут применены к конфигурации Dovecot" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Файл конфигурации Dovecot LDAP" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "Путь к файлу конфигурации, содержащему настройки Dovecot LDAP" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Приборная панель" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "Пользовательское приветственное сообщение" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" -msgstr "Приветственное сообщение, которое будет отображаться вместо стандартного" +msgstr "" +"Приветственное сообщение, которое будет отображаться вместо стандартного" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Пользовательская RSS лента" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" -msgstr "Отображать пользовательскую ленту RSS для реселлеров и администраторов доменов" +msgstr "" +"Отображать пользовательскую ленту RSS для реселлеров и администраторов " +"доменов" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "Показывать пользовательскую RSS‑ленту супер‑администраторам" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "Также показывать пользовательскую RSS‑ленту супер‑администраторам" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Спрятать виджет новых функций" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "Спрятать виджет новых функций для реселлеров и администраторов доменов" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "Тема" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "Основной цвет темы" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" -msgstr "Основной цвет темы (в шестнадцатеричном формате), используется, например, как цвет фона левого меню" +msgstr "" +"Основной цвет темы (в шестнадцатеричном формате), используется, например, " +"как цвет фона левого меню" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "Основной цвет темы (более светлый вариант)" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "Основной цвет темы (в шестнадцатеричном формате)" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "Основной цвет темы (более тёмный вариант)" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "Дополнительный цвет темы" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" -msgstr "Дополнительный цвет темы (в шестнадцатеричном формате), используется, например, как цвет фона некоторых кнопок" +msgstr "" +"Дополнительный цвет темы (в шестнадцатеричном формате), используется, " +"например, как цвет фона некоторых кнопок" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "Цвет темы для меток" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "Цвет темы для меток (в шестнадцатеричном формате)" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Уведомления" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Адрес отправителя" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Почтовый адрес для отправки уведомлений" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Публичный API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Разрешить передачу" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Автоматически проверять доступность новых версий." -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Проверить новые версии" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Отправлять электронное письмо при обнаружении новых версий" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" -msgstr "Отправьте электронное письмо, чтобы уведомить администраторов о новых версиях." +msgstr "" +"Отправьте электронное письмо, чтобы уведомить администраторов о новых " +"версиях." -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Получатель" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Получатель электронных писем с уведомлениями о новых версиях." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Отправить статистику" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" -msgstr "Отправлять статистику в Modoboa public API (счетчики и используемые расширения)" +msgstr "" +"Отправлять статистику в Modoboa public API (счетчики и используемые " +"расширения)" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "Включить отслеживание неактивных учётных записей" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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 "Позволяет администратору задать порог (в днях), по истечении которого учётная запись считается неактивной, если пользователь не входил в систему" +"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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Порог неактивного аккаунта" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" -"An account with a last login date greater than this threshold (in days) will" -" be considered as inactive" -msgstr "Учётная запись с датой последнего входа, превышающей этот порог (в днях), будет считаться неактивным" +"An account with a last login date greater than this threshold (in days) will " +"be considered as inactive" +msgstr "" +"Учётная запись с датой последнего входа, превышающей этот порог (в днях), " +"будет считаться неактивным" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Интервал проверки важных уведомлений" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Интервал проверки важных уведомлений (в секундах)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Максимальный срок хранения лог записей" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Срок хранения лог записей в днях " -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "Срок хранения записей в истории сообщений" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "Срок хранения сообщения (в днях) в разделе истории сообщений" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Элементов на странице" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Количество элементов на странице" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Порог перенаправления по умолчанию" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "Если приложение не указано. Используется перенаправление по умолчанию." - #: core/checks.py:15 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, это может привести к проблемам при переходе между летним и зимним временем (т. е. одно и то же местное время повторяется дважды из-за смены часов)." +msgstr "" +"Для параметра USE_TZ установлено значение False, это может привести к " +"проблемам при переходе между летним и зимним временем (т. е. одно и то же " +"местное время повторяется дважды из-за смены часов)." #: core/checks.py:19 msgid "Set `USE_TZ = True` in settings.py" @@ -1830,27 +1943,33 @@ msgstr "Обновите схему хранения паролей на бол msgid "" "Oauth2 application for dovecot has not been found. Webmail and some other " "features won't be available." -msgstr "Не найдено приложение OAuth2 для Dovecot. Веб‑почта и некоторые другие функции будут недоступны." +msgstr "" +"Не найдено приложение OAuth2 для Dovecot. Веб‑почта и некоторые другие " +"функции будут недоступны." #: core/checks.py:34 msgid "" -"Visit : " -"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-" -"oauth2" -msgstr "Посетить: https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-oauth2" +"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"dovecot.html#dovecot-oauth2" +msgstr "" +"Посетить: https://modoboa.readthedocs.io/en/latest/manual_installation/" +"dovecot.html#dovecot-oauth2" #: core/checks.py:41 msgid "" "Oauth2 application for radicale has not been found. Calendar and some other " "features won't be available." -msgstr "Не найдено приложение OAuth2 для Radicale. Календарь и некоторые другие функции будут недоступны." +msgstr "" +"Не найдено приложение OAuth2 для Radicale. Календарь и некоторые другие " +"функции будут недоступны." #: core/checks.py:45 msgid "" -"Visit : " -"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-" -"oauth2" -msgstr "Посетить : https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-oauth2" +"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"radicale.html#radicale-oauth2" +msgstr "" +"Посетить : https://modoboa.readthedocs.io/en/latest/manual_installation/" +"radicale.html#radicale-oauth2" #: core/constants.py:6 msgid "Simple user" @@ -1993,7 +2112,8 @@ msgstr "Вы не можете импортировать аккаунт с ро #: core/models.py:375 msgid "The simple user '{}' must have a valid email address" -msgstr "Обычный пользователь '{}' должен иметь корректный адрес электронной почты." +msgstr "" +"Обычный пользователь '{}' должен иметь корректный адрес электронной почты." #: core/models.py:383 msgid "username and email fields must not differ for '{}'" @@ -2090,10 +2210,18 @@ msgid "" msgid_plural "" "\n" " The following updates are available:\n" -msgstr[0] "\n Доступно следующее обновление:\n" -msgstr[1] "\n Доступны следующие обновления:\n" -msgstr[2] "\n Доступны следующие обновления:\n" -msgstr[3] "\nДоступны следующие обновления:\n" +msgstr[0] "" +"\n" +" Доступно следующее обновление:\n" +msgstr[1] "" +"\n" +" Доступны следующие обновления:\n" +msgstr[2] "" +"\n" +" Доступны следующие обновления:\n" +msgstr[3] "" +"\n" +"Доступны следующие обновления:\n" #: core/utils.py:43 msgid "The core part of Modoboa" @@ -2139,7 +2267,7 @@ msgid "Not resolved" msgstr "Не определено" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Нет" @@ -2315,7 +2443,9 @@ msgstr "Исключения фильтра папок" msgid "" "Use a regular expression to explicitly include folders in sync. Example: " "^Trash$|Del" -msgstr "Используйте регулярное выражение, чтобы явно включить папки в синхронизацию. Пример: ^Trash$|Del" +msgstr "" +"Используйте регулярное выражение, чтобы явно включить папки в синхронизацию. " +"Пример: ^Trash$|Del" #: imap_migration/app_settings.py:74 msgid "Folder Filter Inclusions" @@ -2326,7 +2456,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 "Список папок, разделённых запятыми, которые нужно явно включить в синхронизацию даже при их отборе фильтром исключений папок. Пример: debian.user, debian.personal" +msgstr "" +"Список папок, разделённых запятыми, которые нужно явно включить в " +"синхронизацию даже при их отборе фильтром исключений папок. Пример: " +"debian.user, debian.personal" #: imap_migration/apps.py:20 msgid "IMAP Migration" @@ -2336,12 +2469,16 @@ msgstr "Миграция IMAP" msgid "" "Automatic domain/mailbox creation is disabled which means IMAP " "authentication won't work." -msgstr "Автоматическое создание доменов/почтовых ящиков отключено, поэтому аутентификация IMAP работать не будет." +msgstr "" +"Автоматическое создание доменов/почтовых ящиков отключено, поэтому " +"аутентификация IMAP работать не будет." #: imap_migration/checks.py:16 msgid "" "Go to the online parameters panel (admin tab) and activate this feature." -msgstr "Перейдите в панель онлайн‑параметров (вкладка администратора) и включите эту функцию." +msgstr "" +"Перейдите в панель онлайн‑параметров (вкладка администратора) и включите эту " +"функцию." #: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" @@ -2410,13 +2547,17 @@ msgstr "Администраторы домена" msgid "" "Maximum number of allowed domain administrators for a new administrator. (0 " "to deny any creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество администраторов домена для нового администратора (0 для запрета, -1 для бесконечного количества)" +msgstr "" +"Максимальное количество администраторов домена для нового администратора (0 " +"для запрета, -1 для бесконечного количества)" #: limits/app_settings.py:41 msgid "" "Maximum number of allowed domains for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество разрешенных доменов для нового администратора (0 для запрета на создание, -1 для снятия ограничений)" +msgstr "" +"Максимальное количество разрешенных доменов для нового администратора (0 для " +"запрета на создание, -1 для снятия ограничений)" #: limits/app_settings.py:49 limits/app_settings.py:123 limits/constants.py:22 #: limits/constants.py:76 @@ -2425,15 +2566,19 @@ msgstr "Алиасы доменов" #: limits/app_settings.py:52 msgid "" -"Maximum number of allowed domain aliases for a new administrator. (0 to deny" -" any creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество разрешенных алиасов доменов для нового администратора (0 для запрета на создание, -1 для снятия ограничений)" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny " +"any creation, -1 to allow unlimited creations)" +msgstr "" +"Максимальное количество разрешенных алиасов доменов для нового " +"администратора (0 для запрета на создание, -1 для снятия ограничений)" #: limits/app_settings.py:64 msgid "" "Maximum number of allowed mailboxes for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество разрешенных почтовых ящиков для нового администратора (0 для запрета на создание, -1 для снятия ограничений)" +msgstr "" +"Максимальное количество разрешенных почтовых ящиков для нового " +"администратора (0 для запрета на создание, -1 для снятия ограничений)" #: limits/app_settings.py:73 limits/app_settings.py:146 limits/constants.py:39 #: limits/constants.py:92 @@ -2444,7 +2589,9 @@ msgstr "Алиасы почтового ящика" msgid "" "Maximum number of allowed aliases for a new administrator. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество разрешенных алиасов для нового администратора (0 для запрета на создание, -1 для снятия ограничений)" +msgstr "" +"Максимальное количество разрешенных алиасов для нового администратора (0 для " +"запрета на создание, -1 для снятия ограничений)" #: limits/app_settings.py:84 limits/constants.py:59 msgid "Quota" @@ -2454,7 +2601,9 @@ msgstr "Квота" msgid "" "The quota a reseller will be allowed to share between the domains he " "creates. (0 means no quota)" -msgstr "Квота, которую реселлер сможет распределить между создаваемыми им доменами (0 означает отсутствие квоты)" +msgstr "" +"Квота, которую реселлер сможет распределить между создаваемыми им доменами " +"(0 означает отсутствие квоты)" #: limits/app_settings.py:98 msgid "Default per-domain limits" @@ -2470,27 +2619,35 @@ msgstr "Включить или выключить ограничения на #: limits/app_settings.py:114 msgid "" -"Maximum number of allowed domain administrators for a new domain. (0 to deny" -" any creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество администраторов домена для нового домена (0 — запрет на создание, -1 — без ограничений)" +"Maximum number of allowed domain administrators for a new domain. (0 to deny " +"any creation, -1 to allow unlimited creations)" +msgstr "" +"Максимальное количество администраторов домена для нового домена (0 — запрет " +"на создание, -1 — без ограничений)" #: limits/app_settings.py:126 msgid "" "Maximum number of allowed domain aliases for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество алиасов домена для нового домена (0 — запрет на создание, -1 — без ограничений)" +msgstr "" +"Максимальное количество алиасов домена для нового домена (0 — запрет на " +"создание, -1 — без ограничений)" #: limits/app_settings.py:138 msgid "" "Maximum number of allowed mailboxes for a new domain. (0 to deny any " "creation, -1 to allow unlimited creations)" -msgstr "Максимальное количество почтовых ящиков для нового домена (0 — запрет на создание, -1 — без ограничений)" +msgstr "" +"Максимальное количество почтовых ящиков для нового домена (0 — запрет на " +"создание, -1 — без ограничений)" #: limits/app_settings.py:149 msgid "" -"Maximum number of allowed aliases for a new domain. (0 to deny any creation," -" -1 to allow unlimited creations)" -msgstr "Максимальное количество алиасов для нового домена (0 — запрет на создание, -1 — без ограничений)" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation, " +"-1 to allow unlimited creations)" +msgstr "" +"Максимальное количество алиасов для нового домена (0 — запрет на создание, " +"-1 — без ограничений)" #: limits/apps.py:16 msgid "Limits" @@ -2502,19 +2659,25 @@ msgstr "Максимальное количество создаваемых д #: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "Максимальное количество создаваемых алиасов доменов для этого пользователя" +msgstr "" +"Максимальное количество создаваемых алиасов доменов для этого пользователя" #: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" -msgstr "Максимальное количество создаваемых почтовых ящиков для этого пользователя" +msgstr "" +"Максимальное количество создаваемых почтовых ящиков для этого пользователя" #: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Максимальное количество создаваемых алиасов почтовых ящиков для этого пользователя" +msgstr "" +"Максимальное количество создаваемых алиасов почтовых ящиков для этого " +"пользователя" #: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Максимальное количество создаваемых администраторов домена для этого пользователя" +msgstr "" +"Максимальное количество создаваемых администраторов домена для этого " +"пользователя" #: limits/constants.py:60 msgid "Quota shared between domains of this reseller" @@ -2530,11 +2693,14 @@ msgstr "Максимальное количество почтовых ящик #: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." -msgstr "Максимальное количество алиасов почтовых ящиков, разрешенных для этого домена." +msgstr "" +"Максимальное количество алиасов почтовых ящиков, разрешенных для этого " +"домена." #: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." -msgstr "Максимальное количество администраторов домена, разрешенное для этого домена." +msgstr "" +"Максимальное количество администраторов домена, разрешенное для этого домена." #: limits/lib.py:19 #, python-format @@ -2703,7 +2869,10 @@ msgstr "Генерировать документ только при созда 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 "Генерировать документ только после создания новой учётной записи. Если выбрано \"Нет\", документ будет обновляться каждый раз при изменении пароля пользователя." +msgstr "" +"Генерировать документ только после создания новой учётной записи. Если " +"выбрано \"Нет\", документ будет обновляться каждый раз при изменении пароля " +"пользователя." #: pdfcredentials/app_settings.py:84 msgid "Customization options" @@ -2741,7 +2910,9 @@ msgstr "Включить конфигурацию почтовых клиент msgid "" "Include required SMTP and IMAP connection information to configure a mail " "client, a tablet or a phone" -msgstr "Включить в документ информацию по подключению SMTP и IMAP, необходимую для настройки сторонних почтовых клиентов" +msgstr "" +"Включить в документ информацию по подключению SMTP и IMAP, необходимую для " +"настройки сторонних почтовых клиентов" #: pdfcredentials/app_settings.py:123 pdfcredentials/documents.py:133 msgid "SMTP server address" @@ -2802,7 +2973,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, этот документ содержит данные\nдля входа в Ваш почтовый ящик Modoboa.\nИзучите содержимое и удалите этот документ.\n" +msgstr "" +"\n" +"Уважаемый %s, этот документ содержит данные\n" +"для входа в Ваш почтовый ящик Modoboa.\n" +"Изучите содержимое и удалите этот документ.\n" #: pdfcredentials/documents.py:95 msgid "Web panel:" @@ -2821,7 +2996,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!" @@ -2833,7 +3011,9 @@ msgstr "Конфигурация почтовых клиентов:" #: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." -msgstr "Используйте эти настройки для подключения из почтовой программы телефона,\nпланшета или компьютера." +msgstr "" +"Используйте эти настройки для подключения из почтовой программы телефона,\n" +"планшета или компьютера." #: pdfcredentials/handlers.py:35 msgid "" @@ -2915,9 +3095,11 @@ msgstr "Путь к карте ключей" #: rspamd/app_settings.py:21 msgid "" -"Absolute path of the file which contains paths to DKIM private keys. Must be" -" readable by _rspamd group or user." -msgstr "Абсолютный путь к файлу, содержащему пути к закрытым ключам DKIM. Должен быть доступен для чтения группе или пользователю _rspamd." +"Absolute path of the file which contains paths to DKIM private keys. Must be " +"readable by _rspamd group or user." +msgstr "" +"Абсолютный путь к файлу, содержащему пути к закрытым ключам DKIM. Должен " +"быть доступен для чтения группе или пользователю _rspamd." #: rspamd/app_settings.py:30 msgid "Selector map path" @@ -2927,7 +3109,9 @@ msgstr "Путь селектора карты" msgid "" "Absolute path of the file which contains names of DKIM selectors. Must be " "readable by _rspamd group or user." -msgstr "Абсолютный путь к файлу, содержащему имена селекторов DKIM. Должен быть доступен для чтения группе или пользователю _rspamd." +msgstr "" +"Абсолютный путь к файлу, содержащему имена селекторов DKIM. Должен быть " +"доступен для чтения группе или пользователю _rspamd." #: rspamd/app_settings.py:51 msgid "Rspamd dashboard location" @@ -2935,10 +3119,14 @@ msgstr "Адрес панели Rspamd" #: rspamd/app_settings.py:53 msgid "" -"Location of the rspamd dashboard. Can either be a relative URL (eg. " -"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for " +"Location of the rspamd dashboard. Can either be a relative URL (eg. '/" +"rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for " "guidance on the Super-Admin dashboard." -msgstr "Расположение панели управления rspamd. Может быть как относительным URL-адресом (например, «/rspamd»), так и полным URL-адресом (например, «https://rspamd.domain.tld/»). Используйте только для справки на панели управления суперадминистратора." +msgstr "" +"Расположение панели управления rspamd. Может быть как относительным URL-" +"адресом (например, «/rspamd»), так и полным URL-адресом (например, «https://" +"rspamd.domain.tld/»). Используйте только для справки на панели управления " +"суперадминистратора." #: rspamd/apps.py:18 msgid "Rspamd" @@ -3017,7 +3205,7 @@ msgstr "равно" msgid "is not" msgstr "не равно" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Тема" @@ -3118,7 +3306,9 @@ msgstr "Забыли пароль?" msgid "" "Your password has been set. You may go ahead and sign " "in now." -msgstr "Ваш пароль установлен. Вы можете войти в систему прямо сейчас." +msgstr "" +"Ваш пароль установлен. Вы можете войти в систему прямо сейчас." #: templates/registration/password_reset_confirm.html:8 msgid "Change password" @@ -3134,7 +3324,9 @@ 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" @@ -3154,7 +3346,12 @@ msgid "" "exists with the email you entered. You should receive them shortly.

" "

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

" -msgstr "

Мы отправили вам по электронной почте инструкции по установке пароля, если существует учетная запись с указанным вами адресом электронной почты. Вы должны получить их в ближайшее время.

Если вы не получили электронное письмо, убедитесь, что вы ввели свой основной адрес, и проверьте папку со спамом.

" +msgstr "" +"

Мы отправили вам по электронной почте инструкции по установке пароля, " +"если существует учетная запись с указанным вами адресом электронной почты. " +"Вы должны получить их в ближайшее время.

Если вы не получили " +"электронное письмо, убедитесь, что вы ввели свой основной адрес, и проверьте " +"папку со спамом.

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

Мы отправили вам по электронной почте msgid "" "To initiate the password reset process for your %(username)s Modoboa " "account, click the link below:" -msgstr "Чтобы начать процесс сброса пароля для вашей учетной записи %(username)s Modoboa, нажмите ссылку ниже:" +msgstr "" +"Чтобы начать процесс сброса пароля для вашей учетной записи %(username)s " +"Modoboa, нажмите ссылку ниже:" #: templates/registration/password_reset_email.html:10 #: templates/registration/password_reset_email_v2.html:10 msgid "" "If clicking the link above doesn't work, please copy and paste the URL in a " "new browser window instead." -msgstr "Если ссылка выше не работает, скопируйте и вставьте URL-адрес в новое окно браузера." +msgstr "" +"Если ссылка выше не работает, скопируйте и вставьте URL-адрес в новое окно " +"браузера." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3198,9 +3399,12 @@ 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 "Введите код из приложения двухфакторной аутентификации на вашем мобильном устройстве. Если вы потеряли устройство, вы можете ввести один из кодов восстановления." +"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" @@ -3243,19 +3447,19 @@ msgstr "Максимальный размер одного вложения (м msgid "SMTP settings" msgstr "Настройки SMTP" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "Адрес вашего SMTP-сервера" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "Режим безопасного подключения" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "Используйте безопасное соединение для доступа к SMTP-серверу" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "Порт вашего SMTP-сервера" @@ -3267,95 +3471,101 @@ msgstr "Требуется аутентификация" msgid "Server needs authentication" msgstr "Сервер требует авторизации" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Server settings" +msgid "Scheduling settings" +msgstr "Настройки сервера" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Отображение сообщений по умолчанию" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "Для отображения сообщения используется режим по умолчанию" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Разрешить показ HTML ссылок" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Разрешить/Запретить показ HTML ссылок" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "Максимальное количество сообщений на страницу" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Частота обновления листинга" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "Обновлять список каждые (в секундах)" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Ширина окна папок" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "Ширина окна списка папок" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Папки" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Корзина" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Папка для удаленных сообщений" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Папка отправленных" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Папка для копий отправленных сообщений" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Папка черновиков" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Папка для черновиков" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "Папка для спама" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "Папка, куда следует помещать спам" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "Написать сообщение" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "Редактор по умолчанию" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "Редактор по умолчанию для создания сообщения" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Тест подписи" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Пользовательская подпись" @@ -3367,43 +3577,69 @@ msgstr "Ответ сервера" msgid "Failed to remove attachment: " msgstr "Не удалось удалить вложение:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "написал:" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Дата" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "Исходное сообщение" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Не удалось получить разделитель уровней иерархии" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Входящие" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "Черновики" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "Спам" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Отправленные" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Корзина" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Вложения слишком велики (лимит: %s)" + +#~ msgid "User profile" +#~ msgstr "Профиль пользователя" + +#~ msgid "Default top redirection" +#~ msgstr "Порог перенаправления по умолчанию" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "Если приложение не указано. Используется перенаправление по умолчанию." diff --git a/modoboa/locale/si/LC_MESSAGES/django.po b/modoboa/locale/si/LC_MESSAGES/django.po index 8c4f91440..297b83d6d 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: හෙළබස, 2022\n" "Language-Team: Sinhala (https://www.transifex.com/tonio/teams/13749/si/)\n" @@ -44,14 +44,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -60,7 +60,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -68,13 +68,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -115,39 +114,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -239,141 +238,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -393,6 +402,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -415,8 +453,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -426,11 +464,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -482,35 +520,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -687,17 +696,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -866,11 +875,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1113,7 +1122,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1131,11 +1140,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1214,7 +1223,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1226,24 +1235,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1268,525 +1273,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2109,7 +2106,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2989,7 +2986,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3215,19 +3212,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3239,95 +3236,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3341,43 +3342,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "LDAP ගිණුම සෑදීමට අසමත් විය: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 99e063a04..c46b89fe5 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,14 +42,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -58,7 +58,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -66,13 +66,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -113,39 +112,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -237,141 +236,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -391,6 +400,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -413,8 +451,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -424,11 +462,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -480,35 +518,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -685,17 +694,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -864,11 +873,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1113,7 +1122,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1131,11 +1140,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1214,7 +1223,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1226,24 +1235,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1268,525 +1273,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2107,7 +2104,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2985,7 +2982,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3211,19 +3208,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3235,95 +3232,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3335,43 +3336,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 cdd60de2a..265cc60d8 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: R .. , 2020\n" "Language-Team: Slovak (Slovakia) (https://www.transifex.com/tonio/teams/" @@ -46,14 +46,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -62,7 +62,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -70,13 +70,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -117,39 +116,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -241,141 +240,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -395,6 +404,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -417,8 +455,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -428,11 +466,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -484,35 +522,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -689,17 +698,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -868,11 +877,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1117,7 +1126,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1135,11 +1144,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1218,7 +1227,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1230,24 +1239,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1272,525 +1277,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2123,7 +2120,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3003,7 +3000,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3229,19 +3226,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3253,95 +3250,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3355,43 +3356,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "Nepodarilo sa vytvoriť účet LDAP: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 38beca3fa..288e8e375 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2016-11-09 16:13+0000\n" "Last-Translator: Gregor \n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/tonio/modoboa/" @@ -43,14 +43,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -59,7 +59,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -67,13 +67,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -114,39 +113,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknow migration" msgid "Unknown status" @@ -240,141 +239,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 #, fuzzy #| msgid "IMAP migration" msgid "Administration" @@ -396,6 +405,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -418,8 +456,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -429,11 +467,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -485,35 +523,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -695,17 +704,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -892,11 +901,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1150,7 +1159,7 @@ msgstr "Selitev IMAP" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1168,11 +1177,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1255,7 +1264,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1267,24 +1276,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1313,539 +1318,531 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Naslov strežnika" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Vrata strežnika" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Naslov strežnika" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Vrata strežnika" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Uporabi zavarovano povezavo" -#: core/app_settings.py:221 +#: core/app_settings.py:209 #, 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 #, fuzzy #| msgid "Connection settings" msgid "LDAP authentication settings" msgstr "Nastavitve povezave" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 #, fuzzy #| msgid "Connection settings" msgid "LDAP synchronization settings" msgstr "Nastavitve povezave" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Server port" msgid "Secondary theme color" msgstr "Vrata strežnika" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 #, fuzzy #| msgid "Server address" msgid "Sender address" msgstr "Naslov strežnika" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2178,7 +2175,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3110,7 +3107,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3342,25 +3339,25 @@ msgstr "" msgid "SMTP settings" msgstr "IMAP nastavitve brez povezave" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 #, 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 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Uporabi zavarovano povezavo" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 #, fuzzy #| msgid "Listening port of your IMAP server" msgid "Listening port of your SMTP server" @@ -3378,95 +3375,101 @@ msgstr "Nastavitve povezave" msgid "Server needs authentication" msgstr "Nastavitve povezave" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Connection settings" +msgid "Scheduling settings" +msgstr "Nastavitve povezave" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3480,43 +3483,59 @@ msgstr "Naslov strežnika" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" diff --git a/modoboa/locale/sv/LC_MESSAGES/django.po b/modoboa/locale/sv/LC_MESSAGES/django.po index 5ebe583a0..ecef6f9c1 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2011-07-01 08:15+0000\n" "Last-Translator: Olle Gustafsson , " "2013,2015-2018,2020,2022-2023,2025\n" @@ -48,14 +48,14 @@ msgid "Cannot be greater than domain quota" msgstr "Kan inte vara större än domänkvoten" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "Åtkomst nekad." #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Detta fält är obligatoriskt" @@ -66,7 +66,7 @@ msgstr "" "Lista över administrerade domäner (endast återförsäljare och " "domänadministratörer)." -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "Inte tillåtet för denna roll." @@ -74,13 +74,12 @@ msgstr "Inte tillåtet för denna roll." msgid "Must be equal to mailbox full_address" msgstr "Måste vara lika med postlådans full_adress" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "Detta fält är obligatoriskt." -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "Lokal domän {} finns inte" @@ -121,40 +120,40 @@ msgstr "Du kan inte definiera en obegränsad kvot." msgid "User '%s' already exists" msgstr "Användare '%s' finns redan" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "Måste vara ett positivt heltal" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 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:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "Katalog hittades ej." -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 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:297 +#: admin/api/v2/serializers.py:298 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:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "Definiera minst ett auktoriserat nätverk/adress" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" "Den vänstra delen av en e-postadress kan inte vara längre än 64 tecken." -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "En brevlåda krävs för att skapa alias." -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "Okänd status" @@ -252,19 +251,29 @@ msgstr "Aktivera DNSBL-kontroller" msgid "Check every domain against major DNSBL providers" msgstr "Kontrollera varje domän mot stora DNSBL-leverantörer" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "Anpassad DNS-server" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 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:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "DKIM-nycklar lagringskatalog" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 +283,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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "Standard DKIM-nyckellängd" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 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:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "Standard domänkvota" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -294,11 +303,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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "Standardgräns för domänsändning" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." @@ -306,16 +315,16 @@ msgstr "" "Antal meddelanden som nyskapade domäner tillåts skicka per dag. Lämna tomt " "utan gräns." -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Brevlådor" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "Hantera brevlådor på filsystemet" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -323,11 +332,11 @@ 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:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "Standard brevlådekvota" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." @@ -335,11 +344,11 @@ 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "Standardgräns för postlådans sändning" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." @@ -347,61 +356,61 @@ msgstr "" "Antal meddelanden som nyskapade brevlådor tillåts skicka per dag. Lämna tomt " "utan gräns." -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "Automatisk kontoradering" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 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:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "Automatisk domän-/brevlådeskapande" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 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:230 +#: admin/app_settings.py:242 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:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "Skapa ett alias med den gamla adressen när en postlåda byts namn." -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "alias" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Administration" @@ -421,6 +430,35 @@ msgstr "Öppnad" msgid "Closed" msgstr "Stängd" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "MX {} listad av DNSBL-leverantör {}" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "Domänen har ingen MX-post" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "Domänen {} har ingen MX-post" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "Ogiltig MX-post: {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "MX-posten för domänen {0} är ogiltig: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] MX-problem för domän {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] DNSBL-problem för domänen {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "domän alias" @@ -443,8 +481,8 @@ msgstr "Du får inte importera domäner" msgid "You are not allowed to import domain aliases." msgstr "Du får inte importera domänalias." -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "Ingen DNS-post hittades för %s" @@ -454,11 +492,11 @@ msgstr "Ingen DNS-post hittades för %s" msgid "No %(type)s record for %(name)s" msgstr "Inga %(type)s poster för %(name)s" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "Inga fungerande namnservrar hittades" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "DNS uppslag timeout, det går inte att fråga %s för tillfället" @@ -512,35 +550,6 @@ msgstr "Misslyckades med att generera DKIM privat nyckel" msgid "Failed to generate DKIM public key" msgstr "Det gick inte att generera offentlig DKIM-nyckel" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "MX {} listad av DNSBL-leverantör {}" - -#: admin/management/commands/subcommands/_mx.py:174 -msgid "Domain has no MX record" -msgstr "Domänen har ingen MX-post" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "Domänen {} har ingen MX-post" - -#: admin/management/commands/subcommands/_mx.py:195 -msgid "Invalid MX record: {}" -msgstr "Ogiltig MX-post: {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "MX-posten för domänen {0} är ogiltig: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] MX-problem för domän {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] DNSBL-problem för domänen {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "Domän hittades ej." @@ -726,17 +735,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa upptäckte att domänen %(domain)s saknar en giltig MX-post:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "Ingen MX-post för %s" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Ogiltigt IP-adressformat för %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "Ingen AAAA-post för %s" @@ -947,11 +956,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "Visning" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "Antalet visade e-postmeddelanden per sida" @@ -1225,7 +1234,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" "Tillåt domänadministratörer att hantera användarkalendrar (läsa och skriva)" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Övrigt" @@ -1244,11 +1253,11 @@ msgstr "" msgid "Calendars" msgstr "Kalendrar" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "Server location is not set, please fix it." -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "Den uppladdade filen är för stor (max: {} byte)" @@ -1331,7 +1340,7 @@ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" "Misslyckades TFA-inställningar redigeringsförsök från '%s' som användare '%s'" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "Ogiltigt lösenordd" @@ -1343,24 +1352,20 @@ msgstr "2FA är nu aktiverat" msgid "Local" msgstr "Lokal" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Användarprofil" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Ogiltig syntax" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Ogiltigt antal omgångar" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Denna kod är ogiltig" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 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: {}" @@ -1387,35 +1392,35 @@ msgid "Calendar" msgstr "Kalender" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "Webmail" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Autentisering" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Autentiseringstyp" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Autentiserings backend" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Standard lösenords schema" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Krypteringsschema för brevlåde lösenord" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Antal omgångar" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1423,46 +1428,46 @@ 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:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Uppdatera lösenordsschema vid inloggning" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Standardlösenord" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Standardlösenord för automatiskt skapade konton." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Slumpmässig längd på lösenord" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Längd på slumpmässigt genererat lösenord" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Längd på slumpmässigt genererat lösenord" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Uppdatera lösenords service URL" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1472,107 +1477,107 @@ 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Meddelande om återställning av lösenord" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "Aktivera lösenordsåterställning via SMS" -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS provider" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Välj en leverantör för att skicka SMS för lösenordsåterställning" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "LDAP" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Server adress" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Server port" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "TCP port som används av LDAP servern" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "Aktivera sekundär server (reserv)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "Sekundär serveradress" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "Sekundär serverport" -#: core/app_settings.py:212 +#: core/app_settings.py:200 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Använd en säker anslutning" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Administratörsgrupper" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1580,47 +1585,47 @@ 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:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Grupptyp" -#: core/app_settings.py:250 +#: core/app_settings.py:238 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:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Grupper sökbas" -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Lösenordsattribut" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Attribut som används för att lagra användarlösenord" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP autentiseringsinställningar" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Autentiseringsmetod" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Välj autentiseringsmetod att använda" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1628,28 +1633,28 @@ 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:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Bind lösenord" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Användare sökbas" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Sökfilter" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1657,11 +1662,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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Anvädar DN mall" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1670,36 +1675,36 @@ 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP synkroniseringsinställningar" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "Aktivera export till LDAP" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" "Aktivera automatisk synkronisering mellan lokal databas och LDAP-katalog" -#: core/app_settings.py:389 +#: core/app_settings.py:377 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:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" "Radera LDAP-fjärrkonto när det lokala kontot raderas, annars inaktiveras det." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "DN-mall för kontot" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1708,51 +1713,51 @@ 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "Aktiver import från LDAP" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "Aktivera kontosynkronisering från LDAP-katalog till lokal databas" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Attribut för användarnamn" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Aktivera Dovecot LDAP-synkronisering" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "LDAP-autentiseringsinställningar tillämpas på Dovecot-konfigurationen." -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP-konfigurationsfil" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Kontrollpanel" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom message" msgid "Custom welcome message" msgstr "Anpassat meddelande" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." @@ -1761,142 +1766,142 @@ msgstr "" "Ett tillfälligt meddelande som kommer att visas på sidan för återställning " "av lösenord." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Användardefinierat RSS-flöde" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "" "Visa användardefinierat RSS-flöde för återförsäljare och domänadministratörer" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "" "Visa användardefinierat RSS-flöde för återförsäljare och domänadministratörer" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Dölj egenskaper widget" -#: core/app_settings.py:519 +#: core/app_settings.py:507 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:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "Sekundär e-post" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Notifikationer" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Avsändaradress" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "E-postadress som används till att skicka notifikationer." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Publikt API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "Aktivera kommunikation" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "Kontrollera automatiskt om en nyare version finns" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Kontrollera nya versioner" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "Skicka ett mejl när nya versioner hittas" -#: core/app_settings.py:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Mottagare" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Mottagare av e-postmeddelanden om nya versioner." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "Skicka statistik" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "Aktivera spårning av inaktiva konton" -#: core/app_settings.py:686 +#: core/app_settings.py:674 msgid "" "Allow the administrator to set a threshold (in days) beyond which an account " "is considered inactive if the user hasn't logged in" @@ -1904,11 +1909,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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Gräns för inaktiva konton" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1916,46 +1921,38 @@ msgstr "" "Ett konto som inte har loggat in innan denna gräns (antal dagar) kommer " "anses som inaktivt" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "Toppnotifikationer kontrollintervall" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "Intervall mellan två toppnotifikationskontroller (i sekunder)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maximal ålder för loggpost" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "Maximal ålder i dagar för en logg post" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Artiklar per sida" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Antal poster som visas per sida" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Standard topp omdirigering" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "Standard omdirigering när ingen applikation angetts" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2284,7 +2281,7 @@ msgid "Not resolved" msgstr "Ej löst" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "Ingen" @@ -3220,7 +3217,7 @@ msgstr "är" msgid "is not" msgstr "är inte" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Ämne" @@ -3462,19 +3459,19 @@ msgstr "Maximal bilagastorlek i byte (eller KB, MB, GB om det anges)" msgid "SMTP settings" msgstr "SMTP-inställningar" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "Adressen till din SMTP-server" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "Säkert anslutningsläge" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "Använd en säker anslutning för att komma åt SMTP-servern" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "Lyssningsport för din SMTP-server" @@ -3486,95 +3483,101 @@ msgstr "Autentisering krävs" msgid "Server needs authentication" msgstr "Servern behöver autentisering" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "Server settings" +msgid "Scheduling settings" +msgstr "Serverinställningar" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "Standardläge för meddelandevisning" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "Standardläget som används när ett meddelande visas" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "Aktivera visning av HTML-länkar" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "Aktivera/inaktivera HTML-länkvisning" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "Ställer in det maximala antalet meddelanden som visas på en sida" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "Listans uppdateringsfrekvens" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "Automatisk uppdateringsfrekvens (i sekunder)" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "Mappbehållarens bredd" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "Bredden på mapplistans behållare" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "Mappar" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "Papperskorgen mapp" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "Mapp dit raderade meddelanden hamnar" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "Skickat mapp" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "Katalog där en kopia av skickade meddelanden hamnar" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "Mapp för Utkast" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "Katalog där utkast sparas" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "Skräpmapp" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "Mapp dit skräpmeddelanden ska gå" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "Skriva meddelanden" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "Standard redigerare" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "Standardredigeraren som ska användas när du skriver ett meddelande" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "Signaturtext" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "Användardefinierad e-postsignatur" @@ -3588,49 +3591,74 @@ msgstr "Server adress" msgid "Failed to remove attachment: " msgstr "Det gick inte att ta bort bilagan:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Datum" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "All messages" msgid "Original message" msgstr "Alla meddelanden" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "Misslyckades med att hämta hierarkinavgränsaren" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "Inkorg" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "Utkast" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "Skräp" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "Skickat" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "Papperskorg" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Bilagan är för stor (gräns: %s)" +#~ msgid "User profile" +#~ msgstr "Användarprofil" + +#~ msgid "Default top redirection" +#~ msgstr "Standard topp omdirigering" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "Standard omdirigering när ingen applikation angetts" + #~ msgid "No alarm ID provided" #~ msgstr "Inget larm-ID angett" diff --git a/modoboa/locale/tr/LC_MESSAGES/django.po b/modoboa/locale/tr/LC_MESSAGES/django.po index 82b21dd61..88d8d2fda 100644 --- a/modoboa/locale/tr/LC_MESSAGES/django.po +++ b/modoboa/locale/tr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2021-12-24 20:48+0000\n" "Last-Translator: Mustafa OYMAK\n" "Language-Team: Turkish (http://www.transifex.com/tonio/modoboa/language/" @@ -44,16 +44,16 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 #, fuzzy #| msgid "Permission denied" msgid "Permission denied." msgstr "İzin reddedildi" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Bu alan gerekli" @@ -64,7 +64,7 @@ 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:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -72,15 +72,14 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 #, fuzzy #| msgid "This field is required" msgid "This field is required." msgstr "Bu alan gerekli" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -123,39 +122,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -263,145 +262,155 @@ msgstr "API erişimini etkinleştir" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom DNS server" msgstr "Özel RSS beslemesi" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" msgstr "" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 #, fuzzy #| msgid "Inactive account threshold" msgid "Automatic account removal" msgstr "Etkin olmayan hesap eşiği" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 #, fuzzy #| msgid "Administrator groups" msgid "Administration" @@ -425,6 +434,37 @@ msgstr "" msgid "Closed" msgstr "Kapat" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "Invalid code" +msgid "Invalid MX record: {}" +msgstr "Geçersiz kod" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -447,8 +487,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -458,11 +498,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -517,37 +557,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "Modoboa genel API'si ile iletişimi etkinleştir" -#: 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 -#, fuzzy -#| msgid "Invalid code" -msgid "Invalid MX record: {}" -msgstr "Geçersiz kod" - -#: 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:43 msgid "Domain not found." msgstr "" @@ -742,17 +751,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "New recovery codes" msgid "No AAAA record for %s" @@ -954,11 +963,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 #, fuzzy #| msgid "Number of displayed items per page" msgid "Number of displayed emails per page" @@ -1231,7 +1240,7 @@ msgstr "Alan adı Yöneticisi" 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:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Çeşitli" @@ -1249,11 +1258,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1338,7 +1347,7 @@ msgstr "2FA zaten etkin" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1352,24 +1361,20 @@ msgstr "2FA etkin değil" msgid "Local" msgstr "Yerel" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Kullanıcı profili" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "Geçersiz sözdizimi" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "Geçersiz tur sayısı" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "Bu kod geçersiz" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 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: {}" @@ -1398,35 +1403,35 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Kimlik Doğrulama" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Kimlik Doğrulama Türü" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "Kimlik doğrulama için kullanılan arka uç." -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Varsayılan parola şeması." -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Posta kutusunu şifrelemek için kullanılan şema" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "Çevrimler" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1434,45 +1439,45 @@ msgstr "" "Kullanılacak tur sayısı (Sadece sha256crypt ve sha512crypt kullanılır). 1000 " "ve 999999999 arasında olmalıdır." -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "Parola şemasını girişte güncelle" -#: core/app_settings.py:76 +#: core/app_settings.py:64 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:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Varsayılan parola" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Otomatik oluşturulan hesaplar için varsayılan parola." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Rastgele parola uzunluğu" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "Rastgele oluşturulmuş parolaların uzunluğu." -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "Rastgele oluşturulmuş parolaların uzunluğu." -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "Parola servisi URL sayfasını güncelle" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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 " @@ -1483,105 +1488,105 @@ msgstr "" "kimlik doğrulamasından sonra otomatik olarak oluşturulanlar gibi. (LDAP, " "SMTP)" -#: core/app_settings.py:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "Parola kurtarma duyurusu" -#: core/app_settings.py:128 +#: core/app_settings.py:116 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:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "SMS ile parola kurtarmayı etkinleştir." -#: core/app_settings.py:140 +#: core/app_settings.py:128 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:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "SMS sağlayıcı" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "Kurtarma parolası göndermek için bir SMS sağlayıcı seçin. " -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Sunucu adresi" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Sunucu portu" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "LDAP sunucusunun kullandığı TCP port numarası" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "İkincil sunucuyu etkinleştir (geri çekil)" -#: core/app_settings.py:191 +#: core/app_settings.py:179 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:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "İkincil sunucu adresi" -#: core/app_settings.py:202 +#: core/app_settings.py:190 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:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "İkincil sunucu portu" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "İkincil LDAP sunucusunun kullandığı TCP port numarası" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Güvenli bir bağlantı kullanın" -#: core/app_settings.py:221 +#: core/app_settings.py:209 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:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 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:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Yönetici grupları" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -1589,47 +1594,47 @@ 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:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Grup türü" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "Dizininizle kullanılacak LDAP grubu türü." -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "Grup arama tabanı." -#: core/app_settings.py:259 +#: core/app_settings.py:247 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:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Atanan parola" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Kullanıcı parolalarını saklamak için kullanılacak nitelik" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "LDAP kimilk doğrulama ayarları" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Kimlik doğrulama metodu" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Kullanılacak kimlik doğrulama yöntemini seçin" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "DN bağla" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -1637,28 +1642,28 @@ msgstr "" "LDAP sunucusuna bağlanırken kullanılacak isim. Anonim bir bağlantı için boş " "bırakın" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Parolayı bağla." -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 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:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "Kullanıcı arama tabanı" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 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:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Arama filtresi" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -1666,11 +1671,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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "Kullanıcı DN şablonu." -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -1679,24 +1684,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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "LDAP eşitleme ayarları" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "LDAP'a dışa aktarmayı etkinleştir." -#: core/app_settings.py:380 +#: core/app_settings.py:368 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:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "Yerel hesap silindiğinde uzak LDAP hesabını sil" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." @@ -1704,11 +1709,11 @@ msgstr "" "Yerel hesap silindiğinde uzak LDAP hesabını silin, aksi halde devre dışı " "bırakılır." -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "Hesap DN şablonu." -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, python-format msgid "" "The template used to construct an account's DN. It should contain one " @@ -1717,202 +1722,202 @@ 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "LDAP'tan içe aktarmayı etkinleştir" -#: core/app_settings.py:414 +#: core/app_settings.py:402 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:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "Atanan kullanıcı adı" -#: core/app_settings.py:446 +#: core/app_settings.py:434 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:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "Dovecot LDAP eşitlemesini etkinleştir" -#: core/app_settings.py:457 +#: core/app_settings.py:445 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:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "Dovecot LDAP yapılandırma dosyası" -#: core/app_settings.py:467 +#: core/app_settings.py:455 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:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "Gösterge Paneli" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom welcome message" msgstr "Özel RSS beslemesi" -#: core/app_settings.py:488 +#: core/app_settings.py:476 #, fuzzy #| msgid "" #| "A temporary message that will be displayed on the reset password page." msgid "A welcome message that will be displayed instead the default one" msgstr "Parola sıfırlandığında gösterilecek geçici bir mesaj." -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "Özel RSS beslemesi" -#: core/app_settings.py:497 +#: core/app_settings.py:485 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:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "Bayilere ve alan adı yöneticilerine özel RSS beslemesi görüntüleyin" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "Bayilere ve alan adı yöneticilerine özel RSS beslemesi görüntüleyin" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "Özellikler Aracı'nı gizle" -#: core/app_settings.py:519 +#: core/app_settings.py:507 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:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "İkincil e-posta" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Bildirimler" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Gönderici adresi" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Bildirimlerin gönderileceği e-posta adresi." -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Genel API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "İletişimi etkinleştir" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 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:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Yeni sürümleri kontrol et" -#: core/app_settings.py:640 +#: core/app_settings.py:628 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:644 +#: core/app_settings.py:632 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:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "Alıcı" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "Yeni sürüm bildirim iletilerinin alıcısı." -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "İstatistikleri gönder" -#: core/app_settings.py:664 +#: core/app_settings.py:652 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:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Etkin olmayan hesap eşiği" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "Etkin olmayan hesap eşiği" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" @@ -1920,47 +1925,38 @@ 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:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "En önemli bildirimler kontrol aralığı" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "İki üst bildirim kontrolü arasındaki aralık (saniye cinsinden)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maksimum günlük kaydı yaşı" -#: core/app_settings.py:719 +#: core/app_settings.py:707 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:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Sayfa başına öğe" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "Sayfa başına görüntülenen öğe sayısı" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "Varsayılan üst yönlendirme" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" -"Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden yönlendirme" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2299,7 +2295,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3259,7 +3255,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Konu" @@ -3518,23 +3514,23 @@ msgstr "" msgid "SMTP settings" msgstr "LDAP ayarları" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Güvenli bir bağlantı kullanın" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3549,105 +3545,111 @@ msgstr "Kimlik doğrulama metodu" msgid "Server needs authentication" msgstr "LDAP kimilk doğrulama ayarları" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "LDAP ayarları" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 #, 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 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "Message" msgid "Composing messages" msgstr "İleti" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default top redirection" msgid "Default editor" msgstr "Varsayılan üst yönlendirme" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 #, 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 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3663,45 +3665,72 @@ msgstr "Sunucu adresi" msgid "Failed to remove attachment: " msgstr "{} Parola güncelleme başarısız" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "Tarih" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "Message" msgid "Original message" msgstr "İleti" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Kullanıcı profili" + +#~ msgid "Default top redirection" +#~ msgstr "Varsayılan üst yönlendirme" + +#~ msgid "The default redirection used when no application is specified" +#~ msgstr "" +#~ "Hiçbir uygulama belirtilmediğinde kullanılan varsayılan yeniden " +#~ "yönlendirme" diff --git a/modoboa/locale/tr_TR/LC_MESSAGES/django.po b/modoboa/locale/tr_TR/LC_MESSAGES/django.po index 37b291f61..686c8ec15 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2018-11-22 19:31+0000\n" "Last-Translator: Ediz Duman \n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/" @@ -46,14 +46,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "Bu alan gereklidir" @@ -62,7 +62,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -70,13 +70,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -117,39 +116,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -241,141 +240,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "Yönetim" @@ -395,6 +404,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -417,8 +455,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -428,11 +466,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -484,35 +522,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -689,17 +698,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -894,11 +903,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1161,7 +1170,7 @@ msgstr "Yönetim" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "Çeşitli" @@ -1179,11 +1188,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1268,7 +1277,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1282,24 +1291,20 @@ msgstr "" msgid "Local" msgstr "Yerel" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "Kullanıcı profili" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1326,547 +1331,539 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "E-posta" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "Yetkilendirme" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "Yetkilendirme türü" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "Varsayılan parola şeması" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "Mailbox parolalarını şifrelemek için kullanılacak şema" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 #, fuzzy #| msgid "Update password scheme" msgid "Update password scheme at login" msgstr "Şifre şemasını güncelle" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "Varsayılan parola" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "Otomatik oluşturulan hesaplar için varsayılan parola." -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "Rastgele şifre uzunluğu" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 #, fuzzy #| msgid "Update password scheme" msgid "Update password service URL" msgstr "Şifre şemasını güncelle" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "Sunucu adresi" -#: core/app_settings.py:171 +#: core/app_settings.py:159 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:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "Sunucu portu" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "LDAP sunucu tarafından kullanılan TCP portu" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "Sunucu adresi" -#: core/app_settings.py:202 +#: core/app_settings.py:190 #, 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:209 +#: core/app_settings.py:197 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "Sunucu portu" -#: core/app_settings.py:212 +#: core/app_settings.py:200 #, 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "Güvenli bir bağlantı kullan" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "LDAP sunucu bir Active Directory ise" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "Yönetici grupları" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "Grup türü" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "Parola özelliği" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "Kullanıcı parolalarını saklamak için kullanılacak özellik" -#: core/app_settings.py:276 +#: core/app_settings.py:264 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "Yetkilendirme metodu" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "Yetkilendirme metodu" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "Kullanılacak yetkilendirme metodunu seçin" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "Arama filtresi" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "LDAP ayarları" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "Parola özelliği" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "gösterge Paneli" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Server port" msgid "Secondary theme color" msgstr "Sunucu portu" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "Bildirimler" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "Gönderici adresi" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "Bildirimlerin gönderileceği email adresi" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "Genel API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "Yeni versiyonları kontrol et" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "İstatistikleri gönder" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "Maksimum günlük kayıt yaşı" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "Sayfa başına öğe" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2197,7 +2194,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3109,7 +3106,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "Konu" @@ -3349,23 +3346,23 @@ msgstr "" msgid "SMTP settings" msgstr "LDAP ayarları" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "Güvenli bir bağlantı kullan" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3381,97 +3378,103 @@ msgstr "Yetkilendirme metodu" msgid "Server needs authentication" msgstr "Yetkilendirme metodu" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "LDAP ayarları" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default password" msgid "Default editor" msgstr "Varsayılan parola" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3485,43 +3488,62 @@ msgstr "Sunucu adresi" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" + +#~ msgid "User profile" +#~ msgstr "Kullanıcı profili" diff --git a/modoboa/locale/uk/LC_MESSAGES/django.po b/modoboa/locale/uk/LC_MESSAGES/django.po index bc02f2ef7..aec4aac94 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: Taras Havryliuk , 2021\n" "Language-Team: Ukrainian (https://www.transifex.com/tonio/teams/13749/uk/)\n" @@ -47,14 +47,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -63,7 +63,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -71,13 +71,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -118,39 +117,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -242,141 +241,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -396,6 +405,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -418,8 +456,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -429,11 +467,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -485,35 +523,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -690,17 +699,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -869,11 +878,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1118,7 +1127,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1136,11 +1145,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1219,7 +1228,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1231,24 +1240,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1273,525 +1278,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2124,7 +2121,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -3004,7 +3001,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3230,19 +3227,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3254,95 +3251,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3356,43 +3357,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "Не вдалося створити обліковий запис LDAP: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 bf3a72aa2..f7c95689e 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,14 +41,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -57,7 +57,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -65,13 +65,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -112,39 +111,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -236,141 +235,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -390,6 +399,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -412,8 +450,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -423,11 +461,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -479,35 +517,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -684,17 +693,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -863,11 +872,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1109,7 +1118,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1127,11 +1136,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1210,7 +1219,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1222,24 +1231,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1264,525 +1269,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2103,7 +2100,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2981,7 +2978,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3207,19 +3204,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3231,95 +3228,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3331,43 +3332,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 51434417e..082f9735b 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: 李 正 <364109980@qq.com>, 2021\n" "Language-Team: Chinese (China) (https://www.transifex.com/tonio/teams/13749/" @@ -45,14 +45,14 @@ msgid "Cannot be greater than domain quota" msgstr "" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "" @@ -61,7 +61,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "" @@ -69,13 +69,12 @@ msgstr "" msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "" @@ -116,39 +115,39 @@ msgstr "" msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 msgid "Unknown status" msgstr "" @@ -240,141 +239,151 @@ msgstr "" msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:116 -msgid "Custom DNS server" +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" msgstr "" -#: admin/app_settings.py:118 -msgid "Use a custom DNS server instead of local server configuration" -msgstr "" - -#: admin/app_settings.py:126 -msgid "DKIM keys storage directory" +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" msgstr "" #: admin/app_settings.py:128 +msgid "Custom DNS server" +msgstr "" + +#: admin/app_settings.py:130 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: admin/app_settings.py:138 +msgid "DKIM keys storage directory" +msgstr "" + +#: admin/app_settings.py:140 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:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 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:197 +#: admin/app_settings.py:209 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 msgid "Aliases" msgstr "" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "" @@ -394,6 +403,35 @@ msgstr "" msgid "Closed" msgstr "" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +msgid "Domain has no MX record" +msgstr "" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "" + +#: admin/dns_checker.py:159 +msgid "Invalid MX record: {}" +msgstr "" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "" + #: admin/handlers.py:179 msgid "domain alias" msgstr "" @@ -416,8 +454,8 @@ msgstr "" msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, python-format msgid "No DNS record found for %s" msgstr "" @@ -427,11 +465,11 @@ msgstr "" msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" @@ -483,35 +521,6 @@ msgstr "" 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:43 msgid "Domain not found." msgstr "" @@ -688,17 +697,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, python-format msgid "No AAAA record for %s" msgstr "" @@ -867,11 +876,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "" @@ -1113,7 +1122,7 @@ msgstr "" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "" @@ -1131,11 +1140,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1214,7 +1223,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 msgid "Invalid password" msgstr "" @@ -1226,24 +1235,20 @@ msgstr "" msgid "Local" msgstr "" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1268,525 +1273,517 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 msgid "Webmail" msgstr "" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:73 +#: core/app_settings.py:61 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 msgid "Enable special characters in randomly generated passwords." msgstr "" -#: core/app_settings.py:114 +#: core/app_settings.py:102 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:202 +#: core/app_settings.py:190 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:209 +#: core/app_settings.py:197 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:212 +#: core/app_settings.py:200 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:276 +#: core/app_settings.py:264 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 msgid "Account DN template" msgstr "" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, 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:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 msgid "Username attribute" msgstr "" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "" -#: core/app_settings.py:486 +#: core/app_settings.py:474 msgid "Custom welcome message" msgstr "" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:506 +#: core/app_settings.py:494 msgid "Display custom RSS feed to super admins" msgstr "" -#: core/app_settings.py:509 +#: core/app_settings.py:497 msgid "Display custom RSS feed also to super administrators" msgstr "" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 msgid "Secondary theme color" msgstr "" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:683 +#: core/app_settings.py:671 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2104,7 +2101,7 @@ msgid "Not resolved" msgstr "" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "" @@ -2984,7 +2981,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "" @@ -3210,19 +3207,19 @@ msgstr "" msgid "SMTP settings" msgstr "" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 msgid "Secured connection mode" msgstr "" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 msgid "Use a secured connection to access SMTP server" msgstr "" -#: webmail/app_settings.py:93 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "" @@ -3234,95 +3231,99 @@ msgstr "" msgid "Server needs authentication" msgstr "" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +msgid "Scheduling settings" +msgstr "" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 msgid "Folders" msgstr "" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 msgid "Trash folder" msgstr "" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 msgid "Folder where deleted messages go" msgstr "" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 msgid "Sent folder" msgstr "" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 msgid "Drafts folder" msgstr "" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 msgid "Junk folder" msgstr "" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 msgid "Folder where junk messages should go" msgstr "" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 msgid "Composing messages" msgstr "" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 msgid "Default editor" msgstr "" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "" @@ -3336,43 +3337,59 @@ msgstr "" msgid "Failed to remove attachment: " msgstr "无法创建LDAP帐户: {}" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 msgid "Original message" msgstr "" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 msgid "Drafts" msgstr "" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, 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 2c94f9fdb..bc70fb48f 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-12-02 16:07+0100\n" +"POT-Creation-Date: 2026-02-04 09:30+0100\n" "PO-Revision-Date: 2018-07-06 08:26+0000\n" "Last-Translator: akong \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/" @@ -48,14 +48,14 @@ msgid "Cannot be greater than domain quota" msgstr "不可以超過網域配額" #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364 -#: admin/api/v2/serializers.py:570 admin/models/alias.py:45 +#: admin/api/v2/serializers.py:571 admin/models/alias.py:45 msgid "Permission denied." msgstr "權限不足" #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90 -#: admin/api/v2/serializers.py:491 amavis/serializers.py:39 -#: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257 -#: core/api/v2/serializers.py:266 transport/backends.py:40 +#: admin/api/v2/serializers.py:492 amavis/serializers.py:39 +#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250 +#: core/api/v2/serializers.py:259 transport/backends.py:40 msgid "This field is required" msgstr "這個欄位是必填的" @@ -64,7 +64,7 @@ msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "管理員網域列表 (只有經銷商和網域管理員)。" -#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552 +#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553 msgid "Not allowed for this role." msgstr "不允許這個身份" @@ -72,13 +72,12 @@ msgstr "不允許這個身份" msgid "Must be equal to mailbox full_address" msgstr "必須跟信箱完整位址一樣" -#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604 -#: calendars/serializers.py:175 calendars/serializers.py:177 -#: pdfcredentials/api/v2/serializers.py:91 +#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605 +#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91 msgid "This field is required." msgstr "這個欄位是必填的" -#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621 +#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622 msgid "Local domain {} does not exist" msgstr "本機網域 {} 不存在" @@ -121,41 +120,41 @@ msgstr "您不可以定義無限制配額。" msgid "User '%s' already exists" msgstr "使用者 '%s' 已存在" -#: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261 +#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262 msgid "Must be a positive integer" msgstr "必須是正整數" -#: admin/api/v2/serializers.py:270 +#: admin/api/v2/serializers.py:271 msgid "openssl not found, please make sure it is installed." msgstr "openssl 找不到,請確認已安裝。" -#: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84 +#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84 msgid "Directory not found." msgstr "目錄不存在" -#: admin/api/v2/serializers.py:284 +#: admin/api/v2/serializers.py:285 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:297 +#: admin/api/v2/serializers.py:298 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:310 +#: admin/api/v2/serializers.py:311 msgid "Define at least one authorized network / address" msgstr "定義至少一個已驗證網路/位址" -#: admin/api/v2/serializers.py:587 +#: admin/api/v2/serializers.py:588 msgid "The left part of an email address can't be more than 64 characters." msgstr "" -#: admin/api/v2/serializers.py:609 +#: admin/api/v2/serializers.py:610 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "信箱是必要的" -#: admin/api/v2/serializers.py:782 +#: admin/api/v2/serializers.py:783 #, fuzzy #| msgid "Unknown" msgid "Unknown status" @@ -268,19 +267,29 @@ msgstr "啟用 DNSBL 檢查" msgid "Check every domain against major DNSBL providers" msgstr "針對每個 DNSBL 供應商來檢查每個網域" -#: admin/app_settings.py:116 +#: admin/app_settings.py:117 +msgid "Notify domain admins about DNS issues" +msgstr "" + +#: admin/app_settings.py:120 +msgid "" +"Send a notification by email to domain administrators when DNS issues are " +"encountered" +msgstr "" + +#: admin/app_settings.py:128 msgid "Custom DNS server" msgstr "" -#: admin/app_settings.py:118 +#: admin/app_settings.py:130 msgid "Use a custom DNS server instead of local server configuration" msgstr "" -#: admin/app_settings.py:126 +#: admin/app_settings.py:138 msgid "DKIM keys storage directory" msgstr "DKIM 金鑰儲存目錄" -#: admin/app_settings.py:128 +#: admin/app_settings.py:140 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 " @@ -289,56 +298,56 @@ msgstr "" "絕對路徑的目錄將會給 DKIM 私鑰儲存。確認這個目錄屬於 root 使用者並且外面的世" "界無法讀取。" -#: admin/app_settings.py:137 +#: admin/app_settings.py:149 msgid "Default DKIM key length" msgstr "預設 DKIM 金鑰長度" -#: admin/app_settings.py:139 +#: admin/app_settings.py:151 msgid "Default length in bits for newly generated DKIM keys." msgstr "預設長度是給新產生的 DKIM 金鑰用。" -#: admin/app_settings.py:146 +#: admin/app_settings.py:158 msgid "Default domain quota" msgstr "預設網域配額" -#: admin/app_settings.py:148 +#: admin/app_settings.py:160 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:156 +#: admin/app_settings.py:168 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "預設網域配額" -#: admin/app_settings.py:158 +#: admin/app_settings.py:170 msgid "" "Number of messages freshly created domains will be allowed to send per day. " "Leave empty for no limit." msgstr "" -#: admin/app_settings.py:170 limits/app_settings.py:61 +#: admin/app_settings.py:182 limits/app_settings.py:61 #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "信箱" -#: admin/app_settings.py:176 +#: admin/app_settings.py:188 msgid "Handle mailboxes on filesystem" msgstr "在檔案系統上處理信箱" -#: admin/app_settings.py:178 +#: admin/app_settings.py:190 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "當他要在 Modoboa 上取得更名或移除就會在檔案系統上更名或移除信箱" -#: admin/app_settings.py:186 admin/models/domain.py:36 +#: admin/app_settings.py:198 admin/models/domain.py:36 msgid "Default mailbox quota" msgstr "預設信箱配額" -#: admin/app_settings.py:188 +#: admin/app_settings.py:200 #, fuzzy #| msgid "" #| "Default mailbox quota (in MB) applied to freshly created domains with no " @@ -349,73 +358,73 @@ msgid "" msgstr "" "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。" -#: admin/app_settings.py:197 +#: admin/app_settings.py:209 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "預設信箱配額" -#: admin/app_settings.py:199 +#: admin/app_settings.py:211 msgid "" "Number of messages freshly created mailboxes will be allowed to send per " "day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:207 +#: admin/app_settings.py:219 msgid "Automatic account removal" msgstr "自動刪除帳號" -#: admin/app_settings.py:209 +#: admin/app_settings.py:221 msgid "When a mailbox is removed, also remove the associated account" msgstr "當信箱移除時,也會移除關聯的帳號" -#: admin/app_settings.py:218 +#: admin/app_settings.py:230 msgid "Automatic domain/mailbox creation" msgstr "自動建立網域/信箱" -#: admin/app_settings.py:221 +#: admin/app_settings.py:233 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "當帳號自動建立後會建立網域和一個信箱。" -#: admin/app_settings.py:230 +#: admin/app_settings.py:242 msgid "Create an alias when a mailbox is renamed" msgstr "當信箱更名時會建立別名" -#: admin/app_settings.py:233 +#: admin/app_settings.py:245 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "當信箱更名時建立別名並使用在舊的位址。" -#: admin/app_settings.py:245 +#: admin/app_settings.py:257 #, fuzzy #| msgid "alias" msgid "Aliases" msgstr "別名" -#: admin/app_settings.py:251 +#: admin/app_settings.py:263 msgid "Alias can target any domain" msgstr "" -#: admin/app_settings.py:253 +#: admin/app_settings.py:265 msgid "Allow aliases to target any domain, not just the local domains." msgstr "" -#: admin/app_settings.py:260 +#: admin/app_settings.py:272 msgid "Alias target block list" msgstr "" -#: admin/app_settings.py:262 +#: admin/app_settings.py:274 msgid "A list of domains that aliases cannot target (comma separated)." msgstr "" -#: admin/app_settings.py:270 +#: admin/app_settings.py:282 msgid "Alias target allow list" msgstr "" -#: admin/app_settings.py:272 +#: admin/app_settings.py:284 msgid "A list of domains that aliases can target (comma separated)." msgstr "" -#: admin/app_settings.py:326 core/api/v2/viewsets.py:174 +#: admin/app_settings.py:338 core/api/v2/viewsets.py:174 msgid "Administration" msgstr "管理員" @@ -437,6 +446,39 @@ msgstr "" msgid "Closed" msgstr "關閉" +#: admin/dns_checker.py:96 +msgid "MX {} listed by DNSBL provider {}" +msgstr "" + +#: admin/dns_checker.py:138 +#, fuzzy +#| msgid "Domain {} has no MX record" +msgid "Domain has no MX record" +msgstr "網域 {} 沒有 MX 紀錄" + +#: admin/dns_checker.py:141 +msgid "Domain {} has no MX record" +msgstr "網域 {} 沒有 MX 紀錄" + +#: admin/dns_checker.py:159 +#, fuzzy +#| msgid "MX records of {}" +msgid "Invalid MX record: {}" +msgstr "MX 紀錄 {}" + +#: admin/dns_checker.py:166 +#, python-brace-format +msgid "MX record for domain {0} is invalid: {1}" +msgstr "此網域的 MX 紀錄 {0} 是無效的: {1}" + +#: admin/dns_checker.py:177 +msgid "[modoboa] MX issue(s) for domain {}" +msgstr "[modoboa] 此網域的 MX 問題(s) {}" + +#: admin/dns_checker.py:224 +msgid "[modoboa] DNSBL issue(s) for domain {}" +msgstr "[modoboa] 此網域的 DNSBL 問題(s) {}" + #: admin/handlers.py:179 msgid "domain alias" msgstr "網域別名" @@ -459,8 +501,8 @@ msgstr "您未允許匯入網域" msgid "You are not allowed to import domain aliases." msgstr "您未允許匯入網域別名。" -#: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166 -#: admin/tests/test_mx.py:171 +#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152 +#: admin/tests/test_mx.py:157 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" @@ -472,11 +514,11 @@ msgstr "沒有找到 %s 的 DNS 紀錄" msgid "No %(type)s record for %(name)s" msgstr "沒有 %s 的 MX 紀錄" -#: admin/lib.py:234 admin/tests/test_mx.py:156 +#: admin/lib.py:234 admin/tests/test_mx.py:142 msgid "No working name servers found" msgstr "沒有找到執行中的名稱伺服器" -#: admin/lib.py:237 admin/tests/test_mx.py:160 +#: admin/lib.py:237 admin/tests/test_mx.py:146 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "DNS 解析逾時,無法查詢 %s 在這個時間點" @@ -531,39 +573,6 @@ msgstr "" msgid "Failed to generate DKIM public key" msgstr "開啟 Modoboa 公用 API 的通訊" -#: admin/management/commands/subcommands/_mx.py:133 -msgid "MX {} listed by DNSBL provider {}" -msgstr "" - -#: admin/management/commands/subcommands/_mx.py:174 -#, fuzzy -#| msgid "Domain {} has no MX record" -msgid "Domain has no MX record" -msgstr "網域 {} 沒有 MX 紀錄" - -#: admin/management/commands/subcommands/_mx.py:177 -msgid "Domain {} has no MX record" -msgstr "網域 {} 沒有 MX 紀錄" - -#: admin/management/commands/subcommands/_mx.py:195 -#, fuzzy -#| msgid "MX records of {}" -msgid "Invalid MX record: {}" -msgstr "MX 紀錄 {}" - -#: admin/management/commands/subcommands/_mx.py:202 -#, python-brace-format -msgid "MX record for domain {0} is invalid: {1}" -msgstr "此網域的 MX 紀錄 {0} 是無效的: {1}" - -#: admin/management/commands/subcommands/_mx.py:213 -msgid "[modoboa] MX issue(s) for domain {}" -msgstr "[modoboa] 此網域的 MX 問題(s) {}" - -#: admin/management/commands/subcommands/_mx.py:269 -msgid "[modoboa] DNSBL issue(s) for domain {}" -msgstr "[modoboa] 此網域的 DNSBL 問題(s) {}" - #: admin/models/alias.py:43 msgid "Domain not found." msgstr "網域不存在。" @@ -756,17 +765,17 @@ msgstr "" msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa 已偵測到網域 %(domain)s 沒有正確的 MX 紀錄:" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:141 #, python-format msgid "No MX record for %s" msgstr "沒有 %s 的 MX 紀錄" -#: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182 +#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s" -#: admin/tests/test_mx.py:199 +#: admin/tests/test_mx.py:185 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No AAAA record for %s" @@ -972,11 +981,11 @@ msgid "" "database)" msgstr "" -#: amavis/app_settings.py:236 webmail/app_settings.py:118 +#: amavis/app_settings.py:236 webmail/app_settings.py:155 msgid "Display" msgstr "顯示" -#: amavis/app_settings.py:243 webmail/app_settings.py:144 +#: amavis/app_settings.py:243 webmail/app_settings.py:181 msgid "Number of displayed emails per page" msgstr "每一頁顯示郵件數量" @@ -1263,7 +1272,7 @@ msgstr "網域管理員" msgid "Allow domain administrators to manage user calendars (read and write)" msgstr "允許這個管理者來存取使用者信箱" -#: calendars/app_settings.py:60 core/app_settings.py:676 +#: calendars/app_settings.py:60 core/app_settings.py:664 #: rspamd/app_settings.py:45 msgid "Miscellaneous" msgstr "雜項" @@ -1281,11 +1290,11 @@ msgstr "" msgid "Calendars" msgstr "" -#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38 +#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39 msgid "Server location is not set, please fix it." msgstr "" -#: calendars/viewsets.py:197 +#: calendars/viewsets.py:199 msgid "Uploaded file is too big (max: {} bytes)" msgstr "" @@ -1372,7 +1381,7 @@ msgstr "" msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'" msgstr "" -#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445 +#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438 #, fuzzy #| msgid "Old password" msgid "Invalid password" @@ -1386,24 +1395,20 @@ msgstr "" msgid "Local" msgstr "本機" -#: core/api/v2/serializers.py:194 core/app_settings.py:17 -msgid "User profile" -msgstr "使用者檔案" - -#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221 -#: core/api/v2/serializers.py:228 +#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214 +#: core/api/v2/serializers.py:221 msgid "Invalid syntax" msgstr "無效語法" -#: core/api/v2/serializers.py:233 +#: core/api/v2/serializers.py:226 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:433 core/forms.py:81 +#: core/api/v2/serializers.py:426 core/forms.py:81 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266 +#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" @@ -1436,37 +1441,37 @@ msgid "Calendar" msgstr "" #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217 -#: webmail/app_settings.py:258 webmail/app_settings.py:265 +#: webmail/app_settings.py:295 webmail/app_settings.py:302 #, fuzzy #| msgid "E-mail" msgid "Webmail" msgstr "網頁郵件" -#: core/app_settings.py:37 +#: core/app_settings.py:25 msgid "Authentication" msgstr "驗證" -#: core/app_settings.py:43 +#: core/app_settings.py:31 msgid "Authentication type" msgstr "驗證類型" -#: core/app_settings.py:45 +#: core/app_settings.py:33 msgid "The backend used for authentication" msgstr "此背景程式已用於驗證" -#: core/app_settings.py:52 +#: core/app_settings.py:40 msgid "Default password scheme" msgstr "預設密碼方案" -#: core/app_settings.py:54 +#: core/app_settings.py:42 msgid "Scheme used to crypt mailbox passwords" msgstr "方案已使用於加密信箱密碼" -#: core/app_settings.py:61 +#: core/app_settings.py:49 msgid "Rounds" msgstr "輪" -#: core/app_settings.py:63 +#: core/app_settings.py:51 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -1474,281 +1479,281 @@ msgstr "" "重複幾輪產生 (只能用於 sha256crypt 和 sha512crypt). 必須介於 1000 到 " "999999999, 包括." -#: core/app_settings.py:73 +#: core/app_settings.py:61 #, fuzzy #| msgid "Default password scheme" msgid "Update password scheme at login" msgstr "預設密碼方案" -#: core/app_settings.py:76 +#: core/app_settings.py:64 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:84 +#: core/app_settings.py:72 msgid "Default password" msgstr "預設密碼" -#: core/app_settings.py:86 +#: core/app_settings.py:74 msgid "Default password for automatically created accounts." msgstr "預設密碼是給自動產生帳號用。" -#: core/app_settings.py:93 +#: core/app_settings.py:81 msgid "Random password length" msgstr "隨機密碼長度" -#: core/app_settings.py:95 +#: core/app_settings.py:83 msgid "Length of randomly generated passwords." msgstr "隨機產生密碼的長度。" -#: core/app_settings.py:103 +#: core/app_settings.py:91 msgid "Allow special characters for random password" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:94 #, fuzzy #| msgid "Length of randomly generated passwords." msgid "Enable special characters in randomly generated passwords." msgstr "隨機產生密碼的長度。" -#: core/app_settings.py:114 +#: core/app_settings.py:102 #, fuzzy #| msgid "Default password scheme" msgid "Update password service URL" msgstr "預設密碼方案" -#: core/app_settings.py:116 +#: core/app_settings.py:104 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:126 +#: core/app_settings.py:114 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:116 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:125 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:140 +#: core/app_settings.py:128 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:136 msgid "SMS provider" msgstr "" -#: core/app_settings.py:151 +#: core/app_settings.py:139 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:163 +#: core/app_settings.py:151 msgid "LDAP" msgstr "" -#: core/app_settings.py:169 sievefilters/app_settings.py:18 +#: core/app_settings.py:157 sievefilters/app_settings.py:18 #: sievefilters/app_settings.py:51 webmail/app_settings.py:36 -#: webmail/app_settings.py:73 +#: webmail/app_settings.py:73 webmail/app_settings.py:119 msgid "Server address" msgstr "伺服器位址" -#: core/app_settings.py:171 +#: core/app_settings.py:159 msgid "The IP address or the DNS name of the LDAP server" msgstr "LDAP 伺服器的 IP 或 DNS 名稱" -#: core/app_settings.py:178 sievefilters/app_settings.py:25 +#: core/app_settings.py:166 sievefilters/app_settings.py:25 #: sievefilters/app_settings.py:67 webmail/app_settings.py:54 -#: webmail/app_settings.py:91 +#: webmail/app_settings.py:91 webmail/app_settings.py:137 msgid "Server port" msgstr "伺服器連接埠" -#: core/app_settings.py:180 +#: core/app_settings.py:168 msgid "The TCP port number used by the LDAP server" msgstr "LDAP 伺服器所使用的 TCP 連接埠" -#: core/app_settings.py:188 +#: core/app_settings.py:176 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:191 +#: core/app_settings.py:179 msgid "" "Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:199 +#: core/app_settings.py:187 #, fuzzy #| msgid "Server address" msgid "Secondary server address" msgstr "伺服器地址" -#: core/app_settings.py:202 +#: core/app_settings.py:190 #, 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:209 +#: core/app_settings.py:197 #, fuzzy #| msgid "Server port" msgid "Secondary server port" msgstr "伺服器連接埠" -#: core/app_settings.py:212 +#: core/app_settings.py:200 #, 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:219 sievefilters/app_settings.py:58 +#: core/app_settings.py:207 sievefilters/app_settings.py:58 #: webmail/app_settings.py:45 msgid "Use a secured connection" msgstr "使用安全的連線" -#: core/app_settings.py:221 +#: core/app_settings.py:209 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器" -#: core/app_settings.py:228 +#: core/app_settings.py:216 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:230 +#: core/app_settings.py:218 msgid "Tell if the LDAP server is an Active Directory one" msgstr "判斷 LDAP 伺服器是否是 Active Directory 伺服器" -#: core/app_settings.py:237 +#: core/app_settings.py:225 msgid "Administrator groups" msgstr "管理者群組" -#: core/app_settings.py:239 +#: core/app_settings.py:227 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "這些 LDAP 群組的成員將會建立為網域管理者。使用 ';' 字元來分開群組" -#: core/app_settings.py:248 +#: core/app_settings.py:236 msgid "Group type" msgstr "群組類型" -#: core/app_settings.py:250 +#: core/app_settings.py:238 msgid "The LDAP group type to use with your directory." msgstr "此 LDAP 群組類型會使用您的目錄" -#: core/app_settings.py:257 +#: core/app_settings.py:245 msgid "Groups search base" msgstr "群組搜尋基準" -#: core/app_settings.py:259 +#: core/app_settings.py:247 msgid "The distinguished name of the search base used to find groups" msgstr "搜尋基準使用醒目的名稱來找到群組" -#: core/app_settings.py:267 +#: core/app_settings.py:255 msgid "Password attribute" msgstr "密碼屬性" -#: core/app_settings.py:269 +#: core/app_settings.py:257 msgid "The attribute used to store user passwords" msgstr "此屬性使用在儲存使用者密碼" -#: core/app_settings.py:276 +#: core/app_settings.py:264 #, fuzzy #| msgid "Authentication method" msgid "LDAP authentication settings" msgstr "身份驗證方法" -#: core/app_settings.py:284 +#: core/app_settings.py:272 msgid "Authentication method" msgstr "身份驗證方法" -#: core/app_settings.py:287 +#: core/app_settings.py:275 msgid "Choose the authentication method to use" msgstr "選擇驗證模組來使用" -#: core/app_settings.py:294 core/app_settings.py:357 +#: core/app_settings.py:282 core/app_settings.py:345 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:296 core/app_settings.py:359 +#: core/app_settings.py:284 core/app_settings.py:347 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:305 core/app_settings.py:367 +#: core/app_settings.py:293 core/app_settings.py:355 msgid "Bind password" msgstr "Bind 密碼" -#: core/app_settings.py:307 core/app_settings.py:369 +#: core/app_settings.py:295 core/app_settings.py:357 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "此密碼使用於當綁定到 LDAP 伺服器 (有 'Bind DN')" -#: core/app_settings.py:317 core/app_settings.py:422 +#: core/app_settings.py:305 core/app_settings.py:410 msgid "Users search base" msgstr "使用者搜尋基準" -#: core/app_settings.py:319 core/app_settings.py:424 +#: core/app_settings.py:307 core/app_settings.py:412 msgid "The distinguished name of the search base used to find users" msgstr "搜尋基準使用醒目的名稱來找到使用者" -#: core/app_settings.py:328 core/app_settings.py:433 +#: core/app_settings.py:316 core/app_settings.py:421 msgid "Search filter" msgstr "搜尋過濾器" -#: core/app_settings.py:330 core/app_settings.py:435 +#: core/app_settings.py:318 core/app_settings.py:423 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:339 +#: core/app_settings.py:327 msgid "User DN template" msgstr "使用者 DN 範本" -#: core/app_settings.py:341 +#: core/app_settings.py:329 #, 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:350 +#: core/app_settings.py:338 #, fuzzy #| msgid "LDAP settings" msgid "LDAP synchronization settings" msgstr "LDAP 設定" -#: core/app_settings.py:378 +#: core/app_settings.py:366 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:380 +#: core/app_settings.py:368 msgid "" "Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:389 +#: core/app_settings.py:377 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:392 +#: core/app_settings.py:380 msgid "" "Delete remote LDAP account when local account is deleted, otherwise it will " "be disabled." msgstr "" -#: core/app_settings.py:401 +#: core/app_settings.py:389 #, fuzzy #| msgid "User DN template" msgid "Account DN template" msgstr "使用者 DN 範本" -#: core/app_settings.py:403 +#: core/app_settings.py:391 #, fuzzy, python-format #| msgid "" #| "The template used to construct a user's DN. It should contain one " @@ -1758,245 +1763,237 @@ msgid "" "placeholder (ie. %(user)s)" msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)" -#: core/app_settings.py:412 +#: core/app_settings.py:400 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:414 +#: core/app_settings.py:402 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:444 +#: core/app_settings.py:432 #, fuzzy #| msgid "Password attribute" msgid "Username attribute" msgstr "密碼屬性" -#: core/app_settings.py:446 +#: core/app_settings.py:434 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:455 +#: core/app_settings.py:443 #, fuzzy #| msgid "Enable communication" msgid "Enable Dovecot LDAP sync" msgstr "啟用通訊" -#: core/app_settings.py:457 +#: core/app_settings.py:445 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:465 +#: core/app_settings.py:453 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:467 +#: core/app_settings.py:455 msgid "" "Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:480 +#: core/app_settings.py:468 msgid "Dashboard" msgstr "儀表板" -#: core/app_settings.py:486 +#: core/app_settings.py:474 #, fuzzy #| msgid "spam messages" msgid "Custom welcome message" msgstr "垃圾郵件" -#: core/app_settings.py:488 +#: core/app_settings.py:476 msgid "A welcome message that will be displayed instead the default one" msgstr "" -#: core/app_settings.py:495 +#: core/app_settings.py:483 msgid "Custom RSS feed" msgstr "自訂 RSS 來源" -#: core/app_settings.py:497 +#: core/app_settings.py:485 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者" -#: core/app_settings.py:506 +#: core/app_settings.py:494 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed to super admins" msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者" -#: core/app_settings.py:509 +#: core/app_settings.py:497 #, fuzzy #| msgid "Display custom RSS feed to resellers and domain administrators" msgid "Display custom RSS feed also to super administrators" msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者" -#: core/app_settings.py:517 +#: core/app_settings.py:505 msgid "Hide features widget" msgstr "隱藏功能物件" -#: core/app_settings.py:519 +#: core/app_settings.py:507 msgid "Hide features widget for resellers and domain administrators" msgstr "隱藏功能物件給經銷商和網域管理者" -#: core/app_settings.py:531 +#: core/app_settings.py:519 msgid "Theme" msgstr "" -#: core/app_settings.py:537 +#: core/app_settings.py:525 msgid "Primary theme color" msgstr "" -#: core/app_settings.py:539 +#: core/app_settings.py:527 msgid "" "Primary color of the theme (hexadecimal code), used as the background color " "of the left menu for example" msgstr "" -#: core/app_settings.py:548 +#: core/app_settings.py:536 msgid "Primary theme color (lighter version)" msgstr "" -#: core/app_settings.py:551 core/app_settings.py:563 +#: core/app_settings.py:539 core/app_settings.py:551 msgid "Primary color of the theme (hexadecimal code)" msgstr "" -#: core/app_settings.py:560 +#: core/app_settings.py:548 msgid "Primary theme color (darker version)" msgstr "" -#: core/app_settings.py:571 +#: core/app_settings.py:559 #, fuzzy #| msgid "Secondary email" msgid "Secondary theme color" msgstr "次要電子郵件" -#: core/app_settings.py:573 +#: core/app_settings.py:561 msgid "" "Secondary color of the theme (hexadecimal code), used as the background " "color of some buttons for example" msgstr "" -#: core/app_settings.py:581 +#: core/app_settings.py:569 msgid "Labels theme color" msgstr "" -#: core/app_settings.py:583 +#: core/app_settings.py:571 msgid "Theme color for labels (hexadecimal code)" msgstr "" -#: core/app_settings.py:595 +#: core/app_settings.py:583 msgid "Notifications" msgstr "通知" -#: core/app_settings.py:601 +#: core/app_settings.py:589 msgid "Sender address" msgstr "伺服器位址" -#: core/app_settings.py:603 +#: core/app_settings.py:591 msgid "Email address used to send notifications." msgstr "郵件地址用於寄送通知。" -#: core/app_settings.py:614 +#: core/app_settings.py:602 msgid "Public API" msgstr "公用 API" -#: core/app_settings.py:620 +#: core/app_settings.py:608 msgid "Enable communication" msgstr "啟用通訊" -#: core/app_settings.py:622 core/app_settings.py:632 +#: core/app_settings.py:610 core/app_settings.py:620 msgid "Automatically checks if a newer version is available" msgstr "假如有新的版本就自動檢查" -#: core/app_settings.py:629 +#: core/app_settings.py:617 msgid "Check new versions" msgstr "檢查新的版本" -#: core/app_settings.py:640 +#: core/app_settings.py:628 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:644 +#: core/app_settings.py:632 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:651 sievefilters/constants.py:25 +#: core/app_settings.py:639 sievefilters/constants.py:25 msgid "Recipient" msgstr "" -#: core/app_settings.py:654 +#: core/app_settings.py:642 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:661 +#: core/app_settings.py:649 msgid "Send statistics" msgstr "寄送狀態" -#: core/app_settings.py:664 +#: core/app_settings.py:652 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "寄送狀態到 Modoboa 公用 API (計數器及已使用的外掛)" -#: core/app_settings.py:683 +#: core/app_settings.py:671 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "未啟用帳號上限" -#: core/app_settings.py:686 +#: core/app_settings.py:674 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:695 +#: core/app_settings.py:683 msgid "Inactive account threshold" msgstr "未啟用帳號上限" -#: core/app_settings.py:698 +#: core/app_settings.py:686 msgid "" "An account with a last login date greater than this threshold (in days) will " "be considered as inactive" msgstr "這個帳號最後一次登錄日期超過這個上限 (在幾天) 將考慮停用" -#: core/app_settings.py:707 +#: core/app_settings.py:695 msgid "Top notifications check interval" msgstr "檢查提醒間隔" -#: core/app_settings.py:710 +#: core/app_settings.py:698 msgid "Interval between two top notification checks (in seconds)" msgstr "兩次檢查提醒間隔 (在幾秒)" -#: core/app_settings.py:717 +#: core/app_settings.py:705 msgid "Maximum log record age" msgstr "最大日誌紀錄時間" -#: core/app_settings.py:719 +#: core/app_settings.py:707 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:727 +#: core/app_settings.py:715 msgid "Retention time in message history" msgstr "" -#: core/app_settings.py:730 +#: core/app_settings.py:718 msgid "Retention time (in days) of a message in the message history section" msgstr "" -#: core/app_settings.py:737 +#: core/app_settings.py:725 msgid "Items per page" msgstr "每頁的條目數量" -#: core/app_settings.py:739 +#: core/app_settings.py:727 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:746 -msgid "Default top redirection" -msgstr "" - -#: core/app_settings.py:748 -msgid "The default redirection used when no application is specified" -msgstr "" - #: core/checks.py:15 msgid "" "You have USE_TZ set to False, this may result in issues during transitions " @@ -2328,7 +2325,7 @@ msgid "Not resolved" msgstr "未定義" #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7 -#: webmail/constants.py:18 +#: webmail/constants.py:38 msgid "None" msgstr "沒有" @@ -3271,7 +3268,7 @@ msgstr "" msgid "is not" msgstr "" -#: sievefilters/constants.py:23 webmail/lib/imapemail.py:304 +#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302 msgid "Subject" msgstr "主旨" @@ -3521,23 +3518,23 @@ msgstr "最大附件大小的位元組 (假如有指定可以是 KB, MB, GB)" msgid "SMTP settings" msgstr "SMTP 設定" -#: webmail/app_settings.py:75 +#: webmail/app_settings.py:75 webmail/app_settings.py:121 msgid "Address of your SMTP server" msgstr "您的 SMTP 伺服器位址" -#: webmail/app_settings.py:82 +#: webmail/app_settings.py:82 webmail/app_settings.py:128 #, fuzzy #| msgid "Use a secured connection" msgid "Secured connection mode" msgstr "安全連線模式" -#: webmail/app_settings.py:84 +#: webmail/app_settings.py:84 webmail/app_settings.py:130 #, 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 +#: webmail/app_settings.py:93 webmail/app_settings.py:139 msgid "Listening port of your SMTP server" msgstr "您的 SMTP 伺服器的連接埠" @@ -3552,113 +3549,119 @@ msgstr "必須驗證" msgid "Server needs authentication" msgstr "伺服器需要驗證" -#: webmail/app_settings.py:124 +#: webmail/app_settings.py:113 +#, fuzzy +#| msgid "LDAP settings" +msgid "Scheduling settings" +msgstr "LDAP 設定" + +#: webmail/app_settings.py:161 msgid "Default message display mode" msgstr "預設訊息顯示模式" -#: webmail/app_settings.py:126 +#: webmail/app_settings.py:163 msgid "The default mode used when displaying a message" msgstr "當正在顯示訊息時會使用預設模式" -#: webmail/app_settings.py:133 +#: webmail/app_settings.py:170 msgid "Enable HTML links display" msgstr "啟用 HTMK 顯示連結" -#: webmail/app_settings.py:136 +#: webmail/app_settings.py:173 msgid "Enable/Disable HTML links display" msgstr "啟用/停用 HTMK 顯示連結" -#: webmail/app_settings.py:147 +#: webmail/app_settings.py:184 msgid "Sets the maximum number of messages displayed in a page" msgstr "設定最大每一頁顯示郵件數量" -#: webmail/app_settings.py:154 +#: webmail/app_settings.py:191 msgid "Listing refresh rate" msgstr "列出重整頻率" -#: webmail/app_settings.py:156 +#: webmail/app_settings.py:193 msgid "Automatic listing refresh rate (in secconds)" msgstr "" -#: webmail/app_settings.py:163 +#: webmail/app_settings.py:200 msgid "Folder container's width" msgstr "資料夾寬度" -#: webmail/app_settings.py:165 +#: webmail/app_settings.py:202 msgid "The width of the folder list container" msgstr "資料夾列表寬度" -#: webmail/app_settings.py:176 +#: webmail/app_settings.py:213 #, fuzzy #| msgid "Create aliases" msgid "Folders" msgstr "資料夾" -#: webmail/app_settings.py:182 +#: webmail/app_settings.py:219 #, fuzzy #| msgid "Create aliases" msgid "Trash folder" msgstr "垃圾筒" -#: webmail/app_settings.py:184 +#: webmail/app_settings.py:221 #, fuzzy #| msgid "rejected messages" msgid "Folder where deleted messages go" msgstr "已刪除郵件的資料夾" -#: webmail/app_settings.py:191 +#: webmail/app_settings.py:228 #, fuzzy #| msgid "Create aliases" msgid "Sent folder" msgstr "寄件夾" -#: webmail/app_settings.py:193 +#: webmail/app_settings.py:230 msgid "Folder where copies of sent messages go" msgstr "已寄出郵件的資料夾" -#: webmail/app_settings.py:200 +#: webmail/app_settings.py:237 #, fuzzy #| msgid "Create aliases" msgid "Drafts folder" msgstr "草稿" -#: webmail/app_settings.py:201 +#: webmail/app_settings.py:238 msgid "Folder where drafts go" msgstr "草稿郵件的資料夾" -#: webmail/app_settings.py:207 +#: webmail/app_settings.py:244 #, fuzzy #| msgid "Create aliases" msgid "Junk folder" msgstr "垃圾信資料夾" -#: webmail/app_settings.py:209 +#: webmail/app_settings.py:246 #, fuzzy #| msgid "rejected messages" msgid "Folder where junk messages should go" msgstr "垃圾郵件的資料夾" -#: webmail/app_settings.py:220 +#: webmail/app_settings.py:257 #, fuzzy #| msgid "sent messages" msgid "Composing messages" msgstr "編寫郵件" -#: webmail/app_settings.py:226 +#: webmail/app_settings.py:263 #, fuzzy #| msgid "Default subject" msgid "Default editor" msgstr "預設編輯器" -#: webmail/app_settings.py:228 +#: webmail/app_settings.py:265 msgid "The default editor to use when composing a message" msgstr "當編寫郵件時會使用預設編輯器" -#: webmail/app_settings.py:235 +#: webmail/app_settings.py:272 msgid "Signature text" msgstr "簽名文字" -#: webmail/app_settings.py:237 +#: webmail/app_settings.py:274 msgid "User defined email signature" msgstr "使用者定義郵件簽名" @@ -3673,47 +3676,66 @@ msgstr "伺服器位址" msgid "Failed to remove attachment: " msgstr "移除附件失敗:" -#: webmail/lib/imapemail.py:272 +#: webmail/lib/imapemail.py:270 msgid "wrote:" msgstr "" -#: webmail/lib/imapemail.py:306 +#: webmail/lib/imapemail.py:304 msgid "Date" msgstr "日期" -#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325 +#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323 #, fuzzy #| msgid "sent messages" msgid "Original message" msgstr "已發訊息" -#: webmail/lib/imaputils.py:221 +#: webmail/lib/imaputils.py:222 msgid "Failed to retrieve hierarchy delimiter" msgstr "無法檢查層次分隔" -#: webmail/lib/imaputils.py:472 +#: webmail/lib/imaputils.py:478 msgid "Inbox" msgstr "收件夾" -#: webmail/lib/imaputils.py:476 +#: webmail/lib/imaputils.py:482 #, fuzzy #| msgid "Create aliases" msgid "Drafts" msgstr "草稿" -#: webmail/lib/imaputils.py:481 +#: webmail/lib/imaputils.py:487 msgid "Junk" msgstr "垃圾信" -#: webmail/lib/imaputils.py:486 +#: webmail/lib/imaputils.py:492 msgid "Sent" msgstr "寄件夾" -#: webmail/lib/imaputils.py:491 +#: webmail/lib/imaputils.py:500 +msgid "Scheduled" +msgstr "" + +#: webmail/lib/imaputils.py:507 msgid "Trash" msgstr "垃圾筒" -#: webmail/viewsets.py:357 +#: webmail/serializers.py:220 +msgid "Moving scheduled messages is forbidden" +msgstr "" + +#: webmail/serializers.py:253 +msgid "Only datetime in the future is allowed" +msgstr "" + +#: webmail/serializers.py:258 +msgid "Provived datetime must be one minute in the future at least" +msgstr "" + +#: webmail/viewsets.py:359 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "附件太大 (限制: %s)" + +#~ msgid "User profile" +#~ msgstr "使用者檔案"