modoboa 2.6.4__py3-none-any.whl → 2.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- modoboa/admin/api/v2/serializers.py +1 -0
- modoboa/admin/app_settings.py +12 -0
- modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
- modoboa/admin/jobs.py +86 -0
- modoboa/admin/management/commands/modo.py +0 -2
- modoboa/admin/tests/test_mailbox_operations.py +4 -4
- modoboa/admin/tests/test_mx.py +68 -56
- modoboa/amavis/jobs.py +11 -0
- modoboa/amavis/tests/test_jobs.py +18 -0
- modoboa/amavis/tests/test_viewsets.py +2 -3
- modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
- modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
- modoboa/autoconfig/tests.py +2 -1
- modoboa/autoconfig/views.py +11 -3
- modoboa/autoreply/models.py +4 -4
- modoboa/calendars/backends/caldav_.py +17 -13
- modoboa/calendars/jobs.py +7 -0
- modoboa/calendars/mocks.py +4 -1
- modoboa/calendars/serializers.py +14 -9
- modoboa/calendars/tests.py +10 -9
- modoboa/calendars/viewsets.py +3 -1
- modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
- modoboa/contacts/models.py +1 -0
- modoboa/contacts/serializers.py +5 -2
- modoboa/contacts/tasks.py +9 -3
- modoboa/contacts/tests.py +32 -6
- modoboa/contacts/viewsets.py +7 -1
- modoboa/core/api/v2/serializers.py +0 -7
- modoboa/core/api/v2/tests.py +0 -10
- modoboa/core/app_settings.py +0 -22
- modoboa/core/commands/deploy.py +13 -0
- modoboa/core/commands/templates/cron_config.py.tpl +33 -0
- modoboa/core/commands/templates/settings.py.tpl +21 -0
- modoboa/core/jobs.py +34 -0
- modoboa/core/management/commands/load_initial_data.py +1 -1
- modoboa/core/password_hashers/base.py +4 -1
- modoboa/core/tests/test_core.py +0 -14
- modoboa/core/tests/test_jobs.py +40 -0
- modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-DO6DwfjE.js} +1 -1
- modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-CCuN9mGB.js} +1 -1
- modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
- modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
- modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
- modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
- modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
- modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
- modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-CTjrXYPf.js} +1 -1
- modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
- modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-BN13MNN_.js} +1 -1
- modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
- modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
- modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
- modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
- modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
- modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
- modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
- modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
- modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
- modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
- modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-DD7p3i6F.js} +1 -1
- modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-DoIoNYC4.js} +1 -1
- modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-CbiJF9z5.js} +1 -1
- modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-BXvznFYz.js} +3 -3
- modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
- modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
- modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
- modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
- modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
- modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
- modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-CyBl5wj2.js} +15 -15
- modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
- modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
- modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-C2txD49L.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-DHYITkn4.js} +1 -1
- modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
- modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
- modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
- modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-CrrEJpNI.js} +1 -1
- modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
- modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
- modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-DFKYkPAs.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
- modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
- modoboa/frontend_dist/assets/ProviderGeneralForm-DO-IpJMQ.js +1 -0
- modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
- modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
- modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
- modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
- modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
- modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
- modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
- modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
- modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
- modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-MDbeolOo.js} +1 -1
- modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
- modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
- modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
- modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-CBtX8JF-.js} +1 -1
- modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
- modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
- modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
- modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
- modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-Cn-vKB3s.js} +1 -1
- modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
- modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
- modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
- modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
- modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
- modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
- modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
- modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
- modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
- modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
- modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
- modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
- modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
- modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
- modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
- modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
- modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-83Qnr5iB.js} +1 -1
- modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
- modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Cqi1xt-q.js} +1 -1
- modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
- modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
- modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-f7wcr2AZ.js} +1 -1
- modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
- modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
- modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
- modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
- modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
- modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
- modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
- modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
- modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
- modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-KUsk6LHW.js} +1 -1
- modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-BW9cZW0P.js} +1 -1
- modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-Ge0hjIsH.js} +1 -1
- modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-BbFeFfsk.js} +1 -1
- modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-DtuzP_CS.js} +1 -1
- modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DMJlQTe0.js} +1 -1
- modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-Du64lcXT.js} +1 -1
- modoboa/frontend_dist/assets/domains.store-1U61jeCV.js +1 -0
- modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
- modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
- modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
- modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
- modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dv00bmw9.js} +1 -1
- modoboa/frontend_dist/assets/index-jui3edpn.js +1001 -0
- modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-OcfdXL_-.js} +1 -1
- modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
- modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-DOO7TRTJ.js} +1 -1
- modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-C0g-piJn.js} +1 -1
- modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-Dz2Gzei-.js} +1 -1
- modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-CLm32Weu.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DMIAQ7cd.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DLnFzCwV.js} +1 -1
- modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CrpE0b4w.js} +1 -1
- modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-B7cr7q9U.js} +1 -1
- modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-WF93n81Q.js} +1 -1
- modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-_0oOYChG.js} +1 -1
- modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
- modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
- modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
- modoboa/frontend_dist/index.html +2 -2
- modoboa/imap_migration/api/v2/serializers.py +13 -0
- modoboa/imap_migration/models.py +3 -3
- modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
- modoboa/imap_migration/tests.py +28 -0
- modoboa/lib/cryptutils.py +2 -2
- modoboa/lib/sysutils.py +1 -1
- modoboa/lib/tests/__init__.py +0 -1
- modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/br/LC_MESSAGES/django.po +753 -317
- modoboa/locale/cs/LC_MESSAGES/django.po +671 -309
- modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/cs_CZ/LC_MESSAGES/django.po +801 -378
- modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de/LC_MESSAGES/django.po +1116 -455
- modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de_DE/LC_MESSAGES/django.po +745 -318
- modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/el_GR/LC_MESSAGES/django.po +825 -393
- modoboa/locale/en/LC_MESSAGES/django.po +669 -309
- modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/es/LC_MESSAGES/django.po +810 -390
- modoboa/locale/es_MX/LC_MESSAGES/django.po +669 -309
- modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fi/LC_MESSAGES/django.po +756 -316
- modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fr/LC_MESSAGES/django.po +674 -313
- modoboa/locale/hu/LC_MESSAGES/django.po +669 -309
- modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/it/LC_MESSAGES/django.po +807 -380
- modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ja_JP/LC_MESSAGES/django.po +951 -419
- modoboa/locale/ka/LC_MESSAGES/django.po +669 -309
- modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/nl_NL/LC_MESSAGES/django.po +807 -387
- modoboa/locale/no/LC_MESSAGES/django.po +669 -309
- modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pl_PL/LC_MESSAGES/django.po +826 -396
- modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_BR/LC_MESSAGES/django.po +830 -392
- modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_PT/LC_MESSAGES/django.po +788 -371
- modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ro_RO/LC_MESSAGES/django.po +763 -316
- modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ru/LC_MESSAGES/django.po +1336 -1046
- modoboa/locale/si/LC_MESSAGES/django.po +669 -309
- modoboa/locale/sk/LC_MESSAGES/django.po +671 -309
- modoboa/locale/sk_SK/LC_MESSAGES/django.po +671 -309
- modoboa/locale/sl_SI/LC_MESSAGES/django.po +695 -315
- modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/sv/LC_MESSAGES/django.po +819 -387
- modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/tr/LC_MESSAGES/django.po +737 -315
- modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/tr_TR/LC_MESSAGES/django.po +711 -310
- modoboa/locale/uk/LC_MESSAGES/django.po +671 -309
- modoboa/locale/zh/LC_MESSAGES/django.po +668 -309
- modoboa/locale/zh_CN/LC_MESSAGES/django.po +668 -309
- modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/zh_TW/LC_MESSAGES/django.po +747 -316
- modoboa/maillog/jobs.py +11 -0
- modoboa/maillog/tests/test_views.py +5 -4
- modoboa/parameters/api/v2/tests.py +1 -1
- modoboa/policyd/management/commands/policy_daemon.py +5 -1
- modoboa/policyd/tests.py +4 -2
- modoboa/rspamd/tests.py +20 -0
- modoboa/templates/registration/twofactor_code_verify.html +1 -1
- modoboa/webmail/app_settings.py +37 -0
- modoboa/webmail/constants.py +21 -1
- modoboa/webmail/factories.py +19 -0
- modoboa/webmail/jobs.py +27 -0
- modoboa/webmail/lib/__init__.py +0 -2
- modoboa/webmail/lib/imapemail.py +9 -11
- modoboa/webmail/lib/imapheader.py +25 -13
- modoboa/webmail/lib/imaputils.py +51 -13
- modoboa/webmail/lib/sendmail.py +88 -105
- modoboa/webmail/lib/utils.py +109 -0
- modoboa/webmail/migrations/0001_initial.py +90 -0
- modoboa/webmail/migrations/__init__.py +0 -0
- modoboa/webmail/mocks.py +12 -3
- modoboa/webmail/models.py +102 -0
- modoboa/webmail/serializers.py +84 -4
- modoboa/webmail/tests/data.py +21 -0
- modoboa/webmail/tests/test_lib_imaputils.py +33 -0
- modoboa/webmail/tests/test_viewsets.py +108 -0
- modoboa/webmail/urls.py +5 -0
- modoboa/webmail/viewsets.py +39 -9
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/RECORD +271 -254
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
- modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
- modoboa/core/management/commands/cleanlogs.py +0 -53
- modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
- modoboa/frontend_dist/assets/AccountPasswordSubForm-DpADntAL.js +0 -1
- modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +0 -1
- modoboa/frontend_dist/assets/AddressBook-CrFqzlzZ.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-BbCt7YxX.js +0 -1
- modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +0 -1
- modoboa/frontend_dist/assets/AliasRecipientForm-jjj5yJJw.js +0 -1
- modoboa/frontend_dist/assets/AuditTrailView-sWnED3E9.js +0 -1
- modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
- modoboa/frontend_dist/assets/ChoiceField-RDT6XcnX.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
- modoboa/frontend_dist/assets/ConfirmDialog-Du7aqKbR.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-CjtILq0_.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-DFNwusDZ.js +0 -1
- modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +0 -1
- modoboa/frontend_dist/assets/EmailField-DmPc4pyP.js +0 -1
- modoboa/frontend_dist/assets/EmailView-BE3vYZtJ.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
- modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +0 -1
- modoboa/frontend_dist/assets/InformationView-eB2ayeLD.js +0 -1
- modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
- modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +0 -5
- modoboa/frontend_dist/assets/MenuItems-dl38msRA.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-BZ7NUOwo.js +0 -1
- modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
- modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
- modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
- modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
- modoboa/frontend_dist/assets/QuarantineView-BOXSobRz.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
- modoboa/frontend_dist/assets/ResourcesForm-D0YBapCG.js +0 -1
- modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
- modoboa/frontend_dist/assets/SettingsView-DIvKGRBY.css +0 -1
- modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +0 -6
- modoboa/frontend_dist/assets/StatisticsView-CyY_CNcI.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
- modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
- modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
- modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +0 -1
- modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +0 -1
- modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +0 -1
- modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +0 -1
- modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +0 -1
- modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +0 -1
- modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +0 -1
- modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +0 -1
- modoboa/frontend_dist/assets/VExpansionPanels-BeMgiS7A.js +0 -1
- modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +0 -1
- modoboa/frontend_dist/assets/VForm-DkphQD3e.js +0 -1
- modoboa/frontend_dist/assets/VInput-CbqehdOu.js +0 -1
- modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +0 -1
- modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
- modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +0 -1
- modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
- modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +0 -1
- modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +0 -1
- modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +0 -1
- modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
- modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +0 -1
- modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +0 -1
- modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
- modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
- modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +0 -1
- modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +0 -1
- modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
- modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
- modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +0 -1
- modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +0 -1
- modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
- modoboa/frontend_dist/assets/filter-DHKXX97M.js +0 -1
- modoboa/frontend_dist/assets/global.store-DYMmGKpn.js +0 -1
- modoboa/frontend_dist/assets/importExport-C-adpHJX.js +0 -1
- modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
- modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
- modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
- modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +0 -1
- modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +0 -1
- {modoboa-2.6.4.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
|
@@ -11,7 +11,7 @@ msgid ""
|
|
|
11
11
|
msgstr ""
|
|
12
12
|
"Project-Id-Version: PACKAGE VERSION\n"
|
|
13
13
|
"Report-Msgid-Bugs-To: \n"
|
|
14
|
-
"POT-Creation-Date:
|
|
14
|
+
"POT-Creation-Date: 2026-02-04 09:30+0100\n"
|
|
15
15
|
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
|
|
16
16
|
"Last-Translator: 李 正 <364109980@qq.com>, 2021\n"
|
|
17
17
|
"Language-Team: Chinese (China) (https://www.transifex.com/tonio/teams/13749/"
|
|
@@ -45,14 +45,14 @@ msgid "Cannot be greater than domain quota"
|
|
|
45
45
|
msgstr ""
|
|
46
46
|
|
|
47
47
|
#: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
|
|
48
|
-
#: admin/api/v2/serializers.py:
|
|
48
|
+
#: admin/api/v2/serializers.py:571 admin/models/alias.py:45
|
|
49
49
|
msgid "Permission denied."
|
|
50
50
|
msgstr ""
|
|
51
51
|
|
|
52
52
|
#: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
|
|
53
|
-
#: admin/api/v2/serializers.py:
|
|
54
|
-
#: core/api/v2/serializers.py:
|
|
55
|
-
#: transport/backends.py:40
|
|
53
|
+
#: admin/api/v2/serializers.py:492 amavis/serializers.py:39
|
|
54
|
+
#: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
|
|
55
|
+
#: core/api/v2/serializers.py:259 transport/backends.py:40
|
|
56
56
|
msgid "This field is required"
|
|
57
57
|
msgstr ""
|
|
58
58
|
|
|
@@ -61,7 +61,7 @@ msgid ""
|
|
|
61
61
|
"List of administered domains (resellers and domain administrators only)."
|
|
62
62
|
msgstr ""
|
|
63
63
|
|
|
64
|
-
#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:
|
|
64
|
+
#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
|
|
65
65
|
msgid "Not allowed for this role."
|
|
66
66
|
msgstr ""
|
|
67
67
|
|
|
@@ -69,13 +69,12 @@ msgstr ""
|
|
|
69
69
|
msgid "Must be equal to mailbox full_address"
|
|
70
70
|
msgstr ""
|
|
71
71
|
|
|
72
|
-
#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:
|
|
73
|
-
#: calendars/serializers.py:
|
|
74
|
-
#: pdfcredentials/api/v2/serializers.py:91
|
|
72
|
+
#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
|
|
73
|
+
#: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
|
|
75
74
|
msgid "This field is required."
|
|
76
75
|
msgstr ""
|
|
77
76
|
|
|
78
|
-
#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:
|
|
77
|
+
#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
|
|
79
78
|
msgid "Local domain {} does not exist"
|
|
80
79
|
msgstr ""
|
|
81
80
|
|
|
@@ -83,7 +82,7 @@ msgstr ""
|
|
|
83
82
|
msgid "A list of recipient"
|
|
84
83
|
msgstr ""
|
|
85
84
|
|
|
86
|
-
#: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:
|
|
85
|
+
#: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:313
|
|
87
86
|
msgid "This alias already exists"
|
|
88
87
|
msgstr ""
|
|
89
88
|
|
|
@@ -116,47 +115,47 @@ msgstr ""
|
|
|
116
115
|
msgid "User '%s' already exists"
|
|
117
116
|
msgstr ""
|
|
118
117
|
|
|
119
|
-
#: admin/api/v2/serializers.py:
|
|
118
|
+
#: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
|
|
120
119
|
msgid "Must be a positive integer"
|
|
121
120
|
msgstr ""
|
|
122
121
|
|
|
123
|
-
#: admin/api/v2/serializers.py:
|
|
122
|
+
#: admin/api/v2/serializers.py:271
|
|
124
123
|
msgid "openssl not found, please make sure it is installed."
|
|
125
124
|
msgstr ""
|
|
126
125
|
|
|
127
|
-
#: admin/api/v2/serializers.py:
|
|
126
|
+
#: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
|
|
128
127
|
msgid "Directory not found."
|
|
129
128
|
msgstr ""
|
|
130
129
|
|
|
131
|
-
#: admin/api/v2/serializers.py:
|
|
130
|
+
#: admin/api/v2/serializers.py:285
|
|
132
131
|
msgid "This field only allows valid IP addresses (or networks)"
|
|
133
132
|
msgstr ""
|
|
134
133
|
|
|
135
|
-
#: admin/api/v2/serializers.py:
|
|
134
|
+
#: admin/api/v2/serializers.py:298
|
|
136
135
|
msgid "Please disable imap migration before disabling this option."
|
|
137
136
|
msgstr ""
|
|
138
137
|
|
|
139
|
-
#: admin/api/v2/serializers.py:
|
|
138
|
+
#: admin/api/v2/serializers.py:311
|
|
140
139
|
msgid "Define at least one authorized network / address"
|
|
141
140
|
msgstr ""
|
|
142
141
|
|
|
143
|
-
#: admin/api/v2/serializers.py:
|
|
142
|
+
#: admin/api/v2/serializers.py:588
|
|
144
143
|
msgid "The left part of an email address can't be more than 64 characters."
|
|
145
144
|
msgstr ""
|
|
146
145
|
|
|
147
|
-
#: admin/api/v2/serializers.py:
|
|
146
|
+
#: admin/api/v2/serializers.py:610
|
|
148
147
|
msgid "A mailbox is required to create aliases."
|
|
149
148
|
msgstr ""
|
|
150
149
|
|
|
151
|
-
#: admin/api/v2/serializers.py:
|
|
150
|
+
#: admin/api/v2/serializers.py:783
|
|
152
151
|
msgid "Unknown status"
|
|
153
152
|
msgstr ""
|
|
154
153
|
|
|
155
|
-
#: admin/api/v2/viewsets.py:
|
|
154
|
+
#: admin/api/v2/viewsets.py:95
|
|
156
155
|
msgid "You don't have access to this domain"
|
|
157
156
|
msgstr ""
|
|
158
157
|
|
|
159
|
-
#: admin/api/v2/viewsets.py:
|
|
158
|
+
#: admin/api/v2/viewsets.py:98
|
|
160
159
|
msgid "You can't delete your own domain"
|
|
161
160
|
msgstr ""
|
|
162
161
|
|
|
@@ -240,113 +239,151 @@ msgstr ""
|
|
|
240
239
|
msgid "Check every domain against major DNSBL providers"
|
|
241
240
|
msgstr ""
|
|
242
241
|
|
|
243
|
-
#: admin/app_settings.py:
|
|
242
|
+
#: admin/app_settings.py:117
|
|
243
|
+
msgid "Notify domain admins about DNS issues"
|
|
244
|
+
msgstr ""
|
|
245
|
+
|
|
246
|
+
#: admin/app_settings.py:120
|
|
247
|
+
msgid ""
|
|
248
|
+
"Send a notification by email to domain administrators when DNS issues are "
|
|
249
|
+
"encountered"
|
|
250
|
+
msgstr ""
|
|
251
|
+
|
|
252
|
+
#: admin/app_settings.py:128
|
|
244
253
|
msgid "Custom DNS server"
|
|
245
254
|
msgstr ""
|
|
246
255
|
|
|
247
|
-
#: admin/app_settings.py:
|
|
256
|
+
#: admin/app_settings.py:130
|
|
248
257
|
msgid "Use a custom DNS server instead of local server configuration"
|
|
249
258
|
msgstr ""
|
|
250
259
|
|
|
251
|
-
#: admin/app_settings.py:
|
|
260
|
+
#: admin/app_settings.py:138
|
|
252
261
|
msgid "DKIM keys storage directory"
|
|
253
262
|
msgstr ""
|
|
254
263
|
|
|
255
|
-
#: admin/app_settings.py:
|
|
264
|
+
#: admin/app_settings.py:140
|
|
256
265
|
msgid ""
|
|
257
266
|
"Absolute path of the directory where DKIM private keys will be stored. Make "
|
|
258
267
|
"sure this directory belongs to root user and is not readable by the outside "
|
|
259
268
|
"world."
|
|
260
269
|
msgstr ""
|
|
261
270
|
|
|
262
|
-
#: admin/app_settings.py:
|
|
271
|
+
#: admin/app_settings.py:149
|
|
263
272
|
msgid "Default DKIM key length"
|
|
264
273
|
msgstr ""
|
|
265
274
|
|
|
266
|
-
#: admin/app_settings.py:
|
|
275
|
+
#: admin/app_settings.py:151
|
|
267
276
|
msgid "Default length in bits for newly generated DKIM keys."
|
|
268
277
|
msgstr ""
|
|
269
278
|
|
|
270
|
-
#: admin/app_settings.py:
|
|
279
|
+
#: admin/app_settings.py:158
|
|
271
280
|
msgid "Default domain quota"
|
|
272
281
|
msgstr ""
|
|
273
282
|
|
|
274
|
-
#: admin/app_settings.py:
|
|
283
|
+
#: admin/app_settings.py:160
|
|
275
284
|
msgid ""
|
|
276
285
|
"Default quota (in MB) applied to freshly created domains with no value "
|
|
277
286
|
"specified. A value of 0 means no quota."
|
|
278
287
|
msgstr ""
|
|
279
288
|
|
|
280
|
-
#: admin/app_settings.py:
|
|
289
|
+
#: admin/app_settings.py:168
|
|
281
290
|
msgid "Default domain sending limit"
|
|
282
291
|
msgstr ""
|
|
283
292
|
|
|
284
|
-
#: admin/app_settings.py:
|
|
293
|
+
#: admin/app_settings.py:170
|
|
285
294
|
msgid ""
|
|
286
295
|
"Number of messages freshly created domains will be allowed to send per day. "
|
|
287
296
|
"Leave empty for no limit."
|
|
288
297
|
msgstr ""
|
|
289
298
|
|
|
290
|
-
#: admin/app_settings.py:
|
|
299
|
+
#: admin/app_settings.py:182 limits/app_settings.py:61
|
|
291
300
|
#: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
|
|
292
301
|
msgid "Mailboxes"
|
|
293
302
|
msgstr ""
|
|
294
303
|
|
|
295
|
-
#: admin/app_settings.py:
|
|
304
|
+
#: admin/app_settings.py:188
|
|
296
305
|
msgid "Handle mailboxes on filesystem"
|
|
297
306
|
msgstr ""
|
|
298
307
|
|
|
299
|
-
#: admin/app_settings.py:
|
|
308
|
+
#: admin/app_settings.py:190
|
|
300
309
|
msgid ""
|
|
301
310
|
"Rename or remove mailboxes on the filesystem when they get renamed or "
|
|
302
311
|
"removed within Modoboa"
|
|
303
312
|
msgstr ""
|
|
304
313
|
|
|
305
|
-
#: admin/app_settings.py:
|
|
314
|
+
#: admin/app_settings.py:198 admin/models/domain.py:36
|
|
306
315
|
msgid "Default mailbox quota"
|
|
307
316
|
msgstr ""
|
|
308
317
|
|
|
309
|
-
#: admin/app_settings.py:
|
|
318
|
+
#: admin/app_settings.py:200
|
|
310
319
|
msgid ""
|
|
311
320
|
"Default mailbox quota (in MB) applied to freshly created domains with no "
|
|
312
321
|
"value specified. A value of 0 means no quota."
|
|
313
322
|
msgstr ""
|
|
314
323
|
|
|
315
|
-
#: admin/app_settings.py:
|
|
324
|
+
#: admin/app_settings.py:209
|
|
316
325
|
msgid "Default mailbox sending limit"
|
|
317
326
|
msgstr ""
|
|
318
327
|
|
|
319
|
-
#: admin/app_settings.py:
|
|
328
|
+
#: admin/app_settings.py:211
|
|
320
329
|
msgid ""
|
|
321
330
|
"Number of messages freshly created mailboxes will be allowed to send per "
|
|
322
331
|
"day. Leave empty for no limit."
|
|
323
332
|
msgstr ""
|
|
324
333
|
|
|
325
|
-
#: admin/app_settings.py:
|
|
334
|
+
#: admin/app_settings.py:219
|
|
326
335
|
msgid "Automatic account removal"
|
|
327
336
|
msgstr ""
|
|
328
337
|
|
|
329
|
-
#: admin/app_settings.py:
|
|
338
|
+
#: admin/app_settings.py:221
|
|
330
339
|
msgid "When a mailbox is removed, also remove the associated account"
|
|
331
340
|
msgstr ""
|
|
332
341
|
|
|
333
|
-
#: admin/app_settings.py:
|
|
342
|
+
#: admin/app_settings.py:230
|
|
334
343
|
msgid "Automatic domain/mailbox creation"
|
|
335
344
|
msgstr ""
|
|
336
345
|
|
|
337
|
-
#: admin/app_settings.py:
|
|
346
|
+
#: admin/app_settings.py:233
|
|
338
347
|
msgid "Create a domain and a mailbox when an account is automatically created."
|
|
339
348
|
msgstr ""
|
|
340
349
|
|
|
341
|
-
#: admin/app_settings.py:
|
|
350
|
+
#: admin/app_settings.py:242
|
|
342
351
|
msgid "Create an alias when a mailbox is renamed"
|
|
343
352
|
msgstr ""
|
|
344
353
|
|
|
345
|
-
#: admin/app_settings.py:
|
|
354
|
+
#: admin/app_settings.py:245
|
|
346
355
|
msgid "Create an alias using the old address when a mailbox is renamed."
|
|
347
356
|
msgstr ""
|
|
348
357
|
|
|
349
|
-
#: admin/app_settings.py:
|
|
358
|
+
#: admin/app_settings.py:257
|
|
359
|
+
msgid "Aliases"
|
|
360
|
+
msgstr ""
|
|
361
|
+
|
|
362
|
+
#: admin/app_settings.py:263
|
|
363
|
+
msgid "Alias can target any domain"
|
|
364
|
+
msgstr ""
|
|
365
|
+
|
|
366
|
+
#: admin/app_settings.py:265
|
|
367
|
+
msgid "Allow aliases to target any domain, not just the local domains."
|
|
368
|
+
msgstr ""
|
|
369
|
+
|
|
370
|
+
#: admin/app_settings.py:272
|
|
371
|
+
msgid "Alias target block list"
|
|
372
|
+
msgstr ""
|
|
373
|
+
|
|
374
|
+
#: admin/app_settings.py:274
|
|
375
|
+
msgid "A list of domains that aliases cannot target (comma separated)."
|
|
376
|
+
msgstr ""
|
|
377
|
+
|
|
378
|
+
#: admin/app_settings.py:282
|
|
379
|
+
msgid "Alias target allow list"
|
|
380
|
+
msgstr ""
|
|
381
|
+
|
|
382
|
+
#: admin/app_settings.py:284
|
|
383
|
+
msgid "A list of domains that aliases can target (comma separated)."
|
|
384
|
+
msgstr ""
|
|
385
|
+
|
|
386
|
+
#: admin/app_settings.py:338 core/api/v2/viewsets.py:174
|
|
350
387
|
msgid "Administration"
|
|
351
388
|
msgstr ""
|
|
352
389
|
|
|
@@ -366,6 +403,35 @@ msgstr ""
|
|
|
366
403
|
msgid "Closed"
|
|
367
404
|
msgstr ""
|
|
368
405
|
|
|
406
|
+
#: admin/dns_checker.py:96
|
|
407
|
+
msgid "MX {} listed by DNSBL provider {}"
|
|
408
|
+
msgstr ""
|
|
409
|
+
|
|
410
|
+
#: admin/dns_checker.py:138
|
|
411
|
+
msgid "Domain has no MX record"
|
|
412
|
+
msgstr ""
|
|
413
|
+
|
|
414
|
+
#: admin/dns_checker.py:141
|
|
415
|
+
msgid "Domain {} has no MX record"
|
|
416
|
+
msgstr ""
|
|
417
|
+
|
|
418
|
+
#: admin/dns_checker.py:159
|
|
419
|
+
msgid "Invalid MX record: {}"
|
|
420
|
+
msgstr ""
|
|
421
|
+
|
|
422
|
+
#: admin/dns_checker.py:166
|
|
423
|
+
#, python-brace-format
|
|
424
|
+
msgid "MX record for domain {0} is invalid: {1}"
|
|
425
|
+
msgstr ""
|
|
426
|
+
|
|
427
|
+
#: admin/dns_checker.py:177
|
|
428
|
+
msgid "[modoboa] MX issue(s) for domain {}"
|
|
429
|
+
msgstr ""
|
|
430
|
+
|
|
431
|
+
#: admin/dns_checker.py:224
|
|
432
|
+
msgid "[modoboa] DNSBL issue(s) for domain {}"
|
|
433
|
+
msgstr ""
|
|
434
|
+
|
|
369
435
|
#: admin/handlers.py:179
|
|
370
436
|
msgid "domain alias"
|
|
371
437
|
msgstr ""
|
|
@@ -375,58 +441,54 @@ msgstr ""
|
|
|
375
441
|
msgid "Account import failed (%s): domain does not exist"
|
|
376
442
|
msgstr ""
|
|
377
443
|
|
|
378
|
-
#: admin/handlers.py:
|
|
379
|
-
msgid "Mailbox {} already exists"
|
|
380
|
-
msgstr ""
|
|
381
|
-
|
|
382
|
-
#: admin/handlers.py:251
|
|
444
|
+
#: admin/handlers.py:246
|
|
383
445
|
#, python-format
|
|
384
446
|
msgid "Account import failed (%s): wrong quota value"
|
|
385
447
|
msgstr ""
|
|
386
448
|
|
|
387
|
-
#: admin/lib.py:
|
|
449
|
+
#: admin/lib.py:126
|
|
388
450
|
msgid "You are not allowed to import domains"
|
|
389
451
|
msgstr ""
|
|
390
452
|
|
|
391
|
-
#: admin/lib.py:
|
|
453
|
+
#: admin/lib.py:135
|
|
392
454
|
msgid "You are not allowed to import domain aliases."
|
|
393
455
|
msgstr ""
|
|
394
456
|
|
|
395
|
-
#: admin/lib.py:
|
|
396
|
-
#: admin/tests/test_mx.py:
|
|
457
|
+
#: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
|
|
458
|
+
#: admin/tests/test_mx.py:157
|
|
397
459
|
#, python-format
|
|
398
460
|
msgid "No DNS record found for %s"
|
|
399
461
|
msgstr ""
|
|
400
462
|
|
|
401
|
-
#: admin/lib.py:
|
|
463
|
+
#: admin/lib.py:230
|
|
402
464
|
#, python-format
|
|
403
465
|
msgid "No %(type)s record for %(name)s"
|
|
404
466
|
msgstr ""
|
|
405
467
|
|
|
406
|
-
#: admin/lib.py:
|
|
468
|
+
#: admin/lib.py:234 admin/tests/test_mx.py:142
|
|
407
469
|
msgid "No working name servers found"
|
|
408
470
|
msgstr ""
|
|
409
471
|
|
|
410
|
-
#: admin/lib.py:
|
|
472
|
+
#: admin/lib.py:237 admin/tests/test_mx.py:146
|
|
411
473
|
#, python-format
|
|
412
474
|
msgid "DNS resolution timeout, unable to query %s at the moment"
|
|
413
475
|
msgstr ""
|
|
414
476
|
|
|
415
|
-
#: admin/lib.py:
|
|
477
|
+
#: admin/lib.py:241
|
|
416
478
|
msgid "DNS name is too long: {}"
|
|
417
479
|
msgstr ""
|
|
418
480
|
|
|
419
|
-
#: admin/lib.py:
|
|
481
|
+
#: admin/lib.py:272
|
|
420
482
|
#, python-brace-format
|
|
421
483
|
msgid "Invalid IP address format for {domain}; {addr}"
|
|
422
484
|
msgstr ""
|
|
423
485
|
|
|
424
|
-
#: admin/lib.py:
|
|
486
|
+
#: admin/lib.py:365
|
|
425
487
|
#, python-format
|
|
426
488
|
msgid "Object already exists: %s"
|
|
427
489
|
msgstr ""
|
|
428
490
|
|
|
429
|
-
#: admin/lib.py:
|
|
491
|
+
#: admin/lib.py:369
|
|
430
492
|
#, python-format
|
|
431
493
|
msgid "%d objects imported successfully"
|
|
432
494
|
msgstr ""
|
|
@@ -459,77 +521,52 @@ msgstr ""
|
|
|
459
521
|
msgid "Failed to generate DKIM public key"
|
|
460
522
|
msgstr ""
|
|
461
523
|
|
|
462
|
-
#: admin/
|
|
463
|
-
msgid "MX {} listed by DNSBL provider {}"
|
|
464
|
-
msgstr ""
|
|
465
|
-
|
|
466
|
-
#: admin/management/commands/subcommands/_mx.py:174
|
|
467
|
-
msgid "Domain has no MX record"
|
|
468
|
-
msgstr ""
|
|
469
|
-
|
|
470
|
-
#: admin/management/commands/subcommands/_mx.py:177
|
|
471
|
-
msgid "Domain {} has no MX record"
|
|
472
|
-
msgstr ""
|
|
473
|
-
|
|
474
|
-
#: admin/management/commands/subcommands/_mx.py:195
|
|
475
|
-
msgid "Invalid MX record: {}"
|
|
476
|
-
msgstr ""
|
|
477
|
-
|
|
478
|
-
#: admin/management/commands/subcommands/_mx.py:202
|
|
479
|
-
#, python-brace-format
|
|
480
|
-
msgid "MX record for domain {0} is invalid: {1}"
|
|
481
|
-
msgstr ""
|
|
482
|
-
|
|
483
|
-
#: admin/management/commands/subcommands/_mx.py:213
|
|
484
|
-
msgid "[modoboa] MX issue(s) for domain {}"
|
|
485
|
-
msgstr ""
|
|
486
|
-
|
|
487
|
-
#: admin/management/commands/subcommands/_mx.py:269
|
|
488
|
-
msgid "[modoboa] DNSBL issue(s) for domain {}"
|
|
489
|
-
msgstr ""
|
|
490
|
-
|
|
491
|
-
#: admin/models/alias.py:42
|
|
524
|
+
#: admin/models/alias.py:43
|
|
492
525
|
msgid "Domain not found."
|
|
493
526
|
msgstr ""
|
|
494
527
|
|
|
495
|
-
#: admin/models/alias.py:
|
|
528
|
+
#: admin/models/alias.py:117 admin/models/mailbox.py:85
|
|
496
529
|
msgid "address"
|
|
497
530
|
msgstr ""
|
|
498
531
|
|
|
499
|
-
#: admin/models/alias.py:
|
|
532
|
+
#: admin/models/alias.py:119
|
|
500
533
|
msgid "The alias address."
|
|
501
534
|
msgstr ""
|
|
502
535
|
|
|
503
|
-
#: admin/models/alias.py:
|
|
536
|
+
#: admin/models/alias.py:123 admin/models/domain.py:45
|
|
504
537
|
#: admin/models/domain_alias.py:45 autoreply/models.py:25
|
|
505
538
|
msgid "enabled"
|
|
506
539
|
msgstr ""
|
|
507
540
|
|
|
508
|
-
#: admin/models/alias.py:
|
|
541
|
+
#: admin/models/alias.py:124 admin/models/domain_alias.py:46
|
|
509
542
|
msgid "Check to activate this alias"
|
|
510
543
|
msgstr ""
|
|
511
544
|
|
|
512
|
-
#: admin/models/alias.py:
|
|
545
|
+
#: admin/models/alias.py:128
|
|
513
546
|
msgid "Description"
|
|
514
547
|
msgstr ""
|
|
515
548
|
|
|
516
|
-
#: admin/models/alias.py:
|
|
549
|
+
#: admin/models/alias.py:129
|
|
517
550
|
msgid "Expire at"
|
|
518
551
|
msgstr ""
|
|
519
552
|
|
|
520
|
-
#: admin/models/alias.py:
|
|
553
|
+
#: admin/models/alias.py:170
|
|
521
554
|
msgid "alias"
|
|
522
555
|
msgstr ""
|
|
523
556
|
|
|
524
|
-
#: admin/models/alias.py:
|
|
557
|
+
#: admin/models/alias.py:203
|
|
525
558
|
msgid "Invalid address"
|
|
526
559
|
msgstr ""
|
|
527
560
|
|
|
528
|
-
#: admin/models/alias.py:
|
|
561
|
+
#: admin/models/alias.py:206
|
|
562
|
+
msgid "Target domain not allowed"
|
|
563
|
+
msgstr ""
|
|
564
|
+
|
|
565
|
+
#: admin/models/alias.py:224
|
|
529
566
|
msgid "Local recipient {}@{} not found"
|
|
530
567
|
msgstr ""
|
|
531
568
|
|
|
532
|
-
#: admin/models/alias.py:
|
|
569
|
+
#: admin/models/alias.py:273
|
|
533
570
|
msgid "Invalid line: {}"
|
|
534
571
|
msgstr ""
|
|
535
572
|
|
|
@@ -637,6 +674,10 @@ msgstr ""
|
|
|
637
674
|
msgid "Domain does not exist"
|
|
638
675
|
msgstr ""
|
|
639
676
|
|
|
677
|
+
#: admin/models/mailbox.py:342
|
|
678
|
+
msgid "Mailbox {} already exists"
|
|
679
|
+
msgstr ""
|
|
680
|
+
|
|
640
681
|
#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
|
|
641
682
|
#, python-format
|
|
642
683
|
msgid ""
|
|
@@ -656,21 +697,331 @@ msgstr ""
|
|
|
656
697
|
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
|
|
657
698
|
msgstr ""
|
|
658
699
|
|
|
659
|
-
#: admin/tests/test_mx.py:
|
|
700
|
+
#: admin/tests/test_mx.py:141
|
|
660
701
|
#, python-format
|
|
661
702
|
msgid "No MX record for %s"
|
|
662
703
|
msgstr ""
|
|
663
704
|
|
|
664
|
-
#: admin/tests/test_mx.py:
|
|
705
|
+
#: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
|
|
665
706
|
#, python-format
|
|
666
707
|
msgid "Invalid IP address format for %(domain)s; %(addr)s"
|
|
667
708
|
msgstr ""
|
|
668
709
|
|
|
669
|
-
#: admin/tests/test_mx.py:
|
|
710
|
+
#: admin/tests/test_mx.py:185
|
|
670
711
|
#, python-format
|
|
671
712
|
msgid "No AAAA record for %s"
|
|
672
713
|
msgstr ""
|
|
673
714
|
|
|
715
|
+
#: amavis/app_settings.py:11
|
|
716
|
+
msgid "Amavis settings"
|
|
717
|
+
msgstr ""
|
|
718
|
+
|
|
719
|
+
#: amavis/app_settings.py:17
|
|
720
|
+
msgid "Localpart is case sensitive"
|
|
721
|
+
msgstr ""
|
|
722
|
+
|
|
723
|
+
#: amavis/app_settings.py:19
|
|
724
|
+
msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive"
|
|
725
|
+
msgstr ""
|
|
726
|
+
|
|
727
|
+
#: amavis/app_settings.py:27
|
|
728
|
+
msgid "Recipient delimiter"
|
|
729
|
+
msgstr ""
|
|
730
|
+
|
|
731
|
+
#: amavis/app_settings.py:29
|
|
732
|
+
msgid "Value should match amavisd.conf variable $recipient_delimiter"
|
|
733
|
+
msgstr ""
|
|
734
|
+
|
|
735
|
+
#: amavis/app_settings.py:41
|
|
736
|
+
msgid "Quarantine settings"
|
|
737
|
+
msgstr ""
|
|
738
|
+
|
|
739
|
+
#: amavis/app_settings.py:47
|
|
740
|
+
msgid "Maximum message age"
|
|
741
|
+
msgstr ""
|
|
742
|
+
|
|
743
|
+
#: amavis/app_settings.py:49
|
|
744
|
+
msgid "Quarantine messages maximum age (in days) before deletion"
|
|
745
|
+
msgstr ""
|
|
746
|
+
|
|
747
|
+
#: amavis/app_settings.py:60
|
|
748
|
+
msgid "Message releasing"
|
|
749
|
+
msgstr ""
|
|
750
|
+
|
|
751
|
+
#: amavis/app_settings.py:66
|
|
752
|
+
msgid "Remove released messages"
|
|
753
|
+
msgstr ""
|
|
754
|
+
|
|
755
|
+
#: amavis/app_settings.py:68
|
|
756
|
+
msgid "Remove messages marked as released while cleaning up the database"
|
|
757
|
+
msgstr ""
|
|
758
|
+
|
|
759
|
+
#: amavis/app_settings.py:76
|
|
760
|
+
msgid "Amavis connection mode"
|
|
761
|
+
msgstr ""
|
|
762
|
+
|
|
763
|
+
#: amavis/app_settings.py:78
|
|
764
|
+
msgid "Mode used to access the PDP server"
|
|
765
|
+
msgstr ""
|
|
766
|
+
|
|
767
|
+
#: amavis/app_settings.py:85
|
|
768
|
+
msgid "PDP server address"
|
|
769
|
+
msgstr ""
|
|
770
|
+
|
|
771
|
+
#: amavis/app_settings.py:87
|
|
772
|
+
msgid "PDP server address (if inet mode)"
|
|
773
|
+
msgstr ""
|
|
774
|
+
|
|
775
|
+
#: amavis/app_settings.py:95
|
|
776
|
+
msgid "PDP server port"
|
|
777
|
+
msgstr ""
|
|
778
|
+
|
|
779
|
+
#: amavis/app_settings.py:97
|
|
780
|
+
msgid "PDP server port (if inet mode)"
|
|
781
|
+
msgstr ""
|
|
782
|
+
|
|
783
|
+
#: amavis/app_settings.py:105
|
|
784
|
+
msgid "PDP server socket"
|
|
785
|
+
msgstr ""
|
|
786
|
+
|
|
787
|
+
#: amavis/app_settings.py:107
|
|
788
|
+
msgid "Path to the PDP server socket (if unix mode)"
|
|
789
|
+
msgstr ""
|
|
790
|
+
|
|
791
|
+
#: amavis/app_settings.py:115
|
|
792
|
+
msgid "Allow direct release"
|
|
793
|
+
msgstr ""
|
|
794
|
+
|
|
795
|
+
#: amavis/app_settings.py:117
|
|
796
|
+
msgid "Allow users to directly release their messages"
|
|
797
|
+
msgstr ""
|
|
798
|
+
|
|
799
|
+
#: amavis/app_settings.py:124
|
|
800
|
+
msgid "Enable self-service mode"
|
|
801
|
+
msgstr ""
|
|
802
|
+
|
|
803
|
+
#: amavis/app_settings.py:126
|
|
804
|
+
msgid "Activate the 'self-service' mode"
|
|
805
|
+
msgstr ""
|
|
806
|
+
|
|
807
|
+
#: amavis/app_settings.py:133
|
|
808
|
+
msgid "Notifications sender"
|
|
809
|
+
msgstr ""
|
|
810
|
+
|
|
811
|
+
#: amavis/app_settings.py:135
|
|
812
|
+
msgid "The e-mail address used to send notitications"
|
|
813
|
+
msgstr ""
|
|
814
|
+
|
|
815
|
+
#: amavis/app_settings.py:146
|
|
816
|
+
msgid "Manual learning"
|
|
817
|
+
msgstr ""
|
|
818
|
+
|
|
819
|
+
#: amavis/app_settings.py:152
|
|
820
|
+
msgid "Enable manual learning"
|
|
821
|
+
msgstr ""
|
|
822
|
+
|
|
823
|
+
#: amavis/app_settings.py:154
|
|
824
|
+
msgid "Allow super administrators to manually train Spamassassin"
|
|
825
|
+
msgstr ""
|
|
826
|
+
|
|
827
|
+
#: amavis/app_settings.py:161
|
|
828
|
+
msgid "Is Spamassassin local?"
|
|
829
|
+
msgstr ""
|
|
830
|
+
|
|
831
|
+
#: amavis/app_settings.py:163
|
|
832
|
+
msgid "Tell if Spamassassin is running on the same server than modoboa"
|
|
833
|
+
msgstr ""
|
|
834
|
+
|
|
835
|
+
#: amavis/app_settings.py:171
|
|
836
|
+
msgid "Default user"
|
|
837
|
+
msgstr ""
|
|
838
|
+
|
|
839
|
+
#: amavis/app_settings.py:173
|
|
840
|
+
msgid "Name of the user owning the default bayesian database"
|
|
841
|
+
msgstr ""
|
|
842
|
+
|
|
843
|
+
#: amavis/app_settings.py:181
|
|
844
|
+
msgid "Spamd address"
|
|
845
|
+
msgstr ""
|
|
846
|
+
|
|
847
|
+
#: amavis/app_settings.py:183
|
|
848
|
+
msgid "The IP address where spamd can be reached"
|
|
849
|
+
msgstr ""
|
|
850
|
+
|
|
851
|
+
#: amavis/app_settings.py:191
|
|
852
|
+
msgid "Spamd port"
|
|
853
|
+
msgstr ""
|
|
854
|
+
|
|
855
|
+
#: amavis/app_settings.py:193
|
|
856
|
+
msgid "The TCP port spamd is listening on"
|
|
857
|
+
msgstr ""
|
|
858
|
+
|
|
859
|
+
#: amavis/app_settings.py:202
|
|
860
|
+
msgid "Enable per-domain manual learning"
|
|
861
|
+
msgstr ""
|
|
862
|
+
|
|
863
|
+
#: amavis/app_settings.py:205
|
|
864
|
+
msgid ""
|
|
865
|
+
"Allow domain administrators to train Spamassassin (within dedicated per-"
|
|
866
|
+
"domain databases)"
|
|
867
|
+
msgstr ""
|
|
868
|
+
|
|
869
|
+
#: amavis/app_settings.py:215
|
|
870
|
+
msgid "Enable per-user manual learning"
|
|
871
|
+
msgstr ""
|
|
872
|
+
|
|
873
|
+
#: amavis/app_settings.py:218
|
|
874
|
+
msgid ""
|
|
875
|
+
"Allow simple users to personally train Spamassassin (within a dedicated "
|
|
876
|
+
"database)"
|
|
877
|
+
msgstr ""
|
|
878
|
+
|
|
879
|
+
#: amavis/app_settings.py:236 webmail/app_settings.py:155
|
|
880
|
+
msgid "Display"
|
|
881
|
+
msgstr ""
|
|
882
|
+
|
|
883
|
+
#: amavis/app_settings.py:243 webmail/app_settings.py:181
|
|
884
|
+
msgid "Number of displayed emails per page"
|
|
885
|
+
msgstr ""
|
|
886
|
+
|
|
887
|
+
#: amavis/app_settings.py:246
|
|
888
|
+
msgid "Set the maximum number of messages displayed in a page"
|
|
889
|
+
msgstr ""
|
|
890
|
+
|
|
891
|
+
#: amavis/app_settings.py:266 amavis/app_settings.py:273
|
|
892
|
+
msgid "Amavis"
|
|
893
|
+
msgstr ""
|
|
894
|
+
|
|
895
|
+
#: amavis/checks/settings_checks.py:8
|
|
896
|
+
msgid ""
|
|
897
|
+
"AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used "
|
|
898
|
+
"by the Amavis database."
|
|
899
|
+
msgstr ""
|
|
900
|
+
|
|
901
|
+
#: amavis/checks/settings_checks.py:12
|
|
902
|
+
msgid ""
|
|
903
|
+
"Check your database character encoding and set/update "
|
|
904
|
+
"AMAVIS_DEFAULT_DATABASE_ENCODING."
|
|
905
|
+
msgstr ""
|
|
906
|
+
|
|
907
|
+
#: amavis/checks/settings_checks.py:19
|
|
908
|
+
msgid "Modoboa Amavis has not been tested using the selected database engine."
|
|
909
|
+
msgstr ""
|
|
910
|
+
|
|
911
|
+
#: amavis/checks/settings_checks.py:20
|
|
912
|
+
msgid "Try using PostgreSQL, MySQL or MariaDB."
|
|
913
|
+
msgstr ""
|
|
914
|
+
|
|
915
|
+
#: amavis/handlers.py:141
|
|
916
|
+
msgid "Pending requests"
|
|
917
|
+
msgstr ""
|
|
918
|
+
|
|
919
|
+
#: amavis/lib.py:59
|
|
920
|
+
#, python-format
|
|
921
|
+
msgid "Connection to amavis failed: %s"
|
|
922
|
+
msgstr ""
|
|
923
|
+
|
|
924
|
+
#: amavis/lib.py:133
|
|
925
|
+
msgid "Failed to find {} binary"
|
|
926
|
+
msgstr ""
|
|
927
|
+
|
|
928
|
+
#: amavis/lib.py:148
|
|
929
|
+
msgid "No recipient found"
|
|
930
|
+
msgstr ""
|
|
931
|
+
|
|
932
|
+
#: amavis/lib.py:159
|
|
933
|
+
msgid "Local domain not found"
|
|
934
|
+
msgstr ""
|
|
935
|
+
|
|
936
|
+
#: amavis/management/commands/amnotify.py:59
|
|
937
|
+
msgid "[modoboa] Pending release requests"
|
|
938
|
+
msgstr ""
|
|
939
|
+
|
|
940
|
+
#: amavis/models.py:101
|
|
941
|
+
msgid "Virus filter"
|
|
942
|
+
msgstr ""
|
|
943
|
+
|
|
944
|
+
#: amavis/models.py:105 amavis/models.py:119 amavis/models.py:133
|
|
945
|
+
msgid "yes"
|
|
946
|
+
msgstr ""
|
|
947
|
+
|
|
948
|
+
#: amavis/models.py:106 amavis/models.py:120 amavis/models.py:134
|
|
949
|
+
msgid "no"
|
|
950
|
+
msgstr ""
|
|
951
|
+
|
|
952
|
+
#: amavis/models.py:107 amavis/models.py:121 amavis/models.py:135
|
|
953
|
+
msgid "default"
|
|
954
|
+
msgstr ""
|
|
955
|
+
|
|
956
|
+
#: amavis/models.py:111
|
|
957
|
+
msgid "Bypass virus checks or not. Choose 'default' to use global settings."
|
|
958
|
+
msgstr ""
|
|
959
|
+
|
|
960
|
+
#: amavis/models.py:115
|
|
961
|
+
msgid "Spam filter"
|
|
962
|
+
msgstr ""
|
|
963
|
+
|
|
964
|
+
#: amavis/models.py:125
|
|
965
|
+
msgid "Bypass spam checks or not. Choose 'default' to use global settings."
|
|
966
|
+
msgstr ""
|
|
967
|
+
|
|
968
|
+
#: amavis/models.py:129
|
|
969
|
+
msgid "Banned filter"
|
|
970
|
+
msgstr ""
|
|
971
|
+
|
|
972
|
+
#: amavis/models.py:139
|
|
973
|
+
msgid "Bypass banned checks or not. Choose 'default' to use global settings."
|
|
974
|
+
msgstr ""
|
|
975
|
+
|
|
976
|
+
#: amavis/models.py:170
|
|
977
|
+
msgid "Spam marker"
|
|
978
|
+
msgstr ""
|
|
979
|
+
|
|
980
|
+
#: amavis/models.py:176
|
|
981
|
+
msgid ""
|
|
982
|
+
"Modify spam subject using the specified text. Choose 'default' to use global "
|
|
983
|
+
"settings."
|
|
984
|
+
msgstr ""
|
|
985
|
+
|
|
986
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:3
|
|
987
|
+
#, python-format
|
|
988
|
+
msgid "%(counter)s release request is pending for action."
|
|
989
|
+
msgid_plural "%(counter)s release requests are pending for action."
|
|
990
|
+
msgstr[0] ""
|
|
991
|
+
|
|
992
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:8
|
|
993
|
+
msgid "Sketch:"
|
|
994
|
+
msgstr ""
|
|
995
|
+
|
|
996
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:10
|
|
997
|
+
msgid "From:"
|
|
998
|
+
msgstr ""
|
|
999
|
+
|
|
1000
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:11
|
|
1001
|
+
msgid "To:"
|
|
1002
|
+
msgstr ""
|
|
1003
|
+
|
|
1004
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:12
|
|
1005
|
+
msgid "Date:"
|
|
1006
|
+
msgstr ""
|
|
1007
|
+
|
|
1008
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:13
|
|
1009
|
+
msgid "Subject:"
|
|
1010
|
+
msgstr ""
|
|
1011
|
+
|
|
1012
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:14
|
|
1013
|
+
msgid "Act on this message:"
|
|
1014
|
+
msgstr ""
|
|
1015
|
+
|
|
1016
|
+
#: amavis/templates/amavis/notifications/pending_requests.html:16
|
|
1017
|
+
#, python-format
|
|
1018
|
+
msgid "Please visit %(listingurl)s for a full listing."
|
|
1019
|
+
msgstr ""
|
|
1020
|
+
|
|
1021
|
+
#: amavis/viewsets.py:122
|
|
1022
|
+
msgid "Invalid request"
|
|
1023
|
+
msgstr ""
|
|
1024
|
+
|
|
674
1025
|
#: autoreply/api/v2/serializers.py:27
|
|
675
1026
|
msgid "Value can't be less than 1 day"
|
|
676
1027
|
msgstr ""
|
|
@@ -771,7 +1122,7 @@ msgstr ""
|
|
|
771
1122
|
msgid "Allow domain administrators to manage user calendars (read and write)"
|
|
772
1123
|
msgstr ""
|
|
773
1124
|
|
|
774
|
-
#: calendars/app_settings.py:60 core/app_settings.py:
|
|
1125
|
+
#: calendars/app_settings.py:60 core/app_settings.py:664
|
|
775
1126
|
#: rspamd/app_settings.py:45
|
|
776
1127
|
msgid "Miscellaneous"
|
|
777
1128
|
msgstr ""
|
|
@@ -785,15 +1136,15 @@ msgid ""
|
|
|
785
1136
|
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
|
|
786
1137
|
msgstr ""
|
|
787
1138
|
|
|
788
|
-
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:
|
|
1139
|
+
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:205
|
|
789
1140
|
msgid "Calendars"
|
|
790
1141
|
msgstr ""
|
|
791
1142
|
|
|
792
|
-
#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:
|
|
1143
|
+
#: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
|
|
793
1144
|
msgid "Server location is not set, please fix it."
|
|
794
1145
|
msgstr ""
|
|
795
1146
|
|
|
796
|
-
#: calendars/viewsets.py:
|
|
1147
|
+
#: calendars/viewsets.py:199
|
|
797
1148
|
msgid "Uploaded file is too big (max: {} bytes)"
|
|
798
1149
|
msgstr ""
|
|
799
1150
|
|
|
@@ -819,7 +1170,7 @@ msgstr ""
|
|
|
819
1170
|
msgid "Interval in seconds between 2 synchronization requests"
|
|
820
1171
|
msgstr ""
|
|
821
1172
|
|
|
822
|
-
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:
|
|
1173
|
+
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:195
|
|
823
1174
|
msgid "Contacts"
|
|
824
1175
|
msgstr ""
|
|
825
1176
|
|
|
@@ -867,12 +1218,12 @@ msgstr ""
|
|
|
867
1218
|
msgid "2FA is already enabled"
|
|
868
1219
|
msgstr ""
|
|
869
1220
|
|
|
870
|
-
#: core/api/v1/serializers.py:
|
|
1221
|
+
#: core/api/v1/serializers.py:87
|
|
871
1222
|
#, python-format
|
|
872
1223
|
msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
|
|
873
1224
|
msgstr ""
|
|
874
1225
|
|
|
875
|
-
#: core/api/v1/serializers.py:
|
|
1226
|
+
#: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
|
|
876
1227
|
msgid "Invalid password"
|
|
877
1228
|
msgstr ""
|
|
878
1229
|
|
|
@@ -884,24 +1235,20 @@ msgstr ""
|
|
|
884
1235
|
msgid "Local"
|
|
885
1236
|
msgstr ""
|
|
886
1237
|
|
|
887
|
-
#: core/api/v2/serializers.py:
|
|
888
|
-
|
|
889
|
-
msgstr ""
|
|
890
|
-
|
|
891
|
-
#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
|
|
892
|
-
#: core/api/v2/serializers.py:228
|
|
1238
|
+
#: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
|
|
1239
|
+
#: core/api/v2/serializers.py:221
|
|
893
1240
|
msgid "Invalid syntax"
|
|
894
1241
|
msgstr ""
|
|
895
1242
|
|
|
896
|
-
#: core/api/v2/serializers.py:
|
|
1243
|
+
#: core/api/v2/serializers.py:226
|
|
897
1244
|
msgid "Invalid rounds number"
|
|
898
1245
|
msgstr ""
|
|
899
1246
|
|
|
900
|
-
#: core/api/v2/serializers.py:
|
|
1247
|
+
#: core/api/v2/serializers.py:426 core/forms.py:81
|
|
901
1248
|
msgid "This code is invalid"
|
|
902
1249
|
msgstr ""
|
|
903
1250
|
|
|
904
|
-
#: core/api/v2/serializers.py:
|
|
1251
|
+
#: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
|
|
905
1252
|
msgid "Please use the following code to recover your Modoboa password: {}"
|
|
906
1253
|
msgstr ""
|
|
907
1254
|
|
|
@@ -909,534 +1256,534 @@ msgstr ""
|
|
|
909
1256
|
msgid "Administration console"
|
|
910
1257
|
msgstr ""
|
|
911
1258
|
|
|
912
|
-
#: core/api/v2/viewsets.py:
|
|
913
|
-
msgid "
|
|
1259
|
+
#: core/api/v2/viewsets.py:184 dmarc/models.py:11
|
|
1260
|
+
msgid "Quarantine"
|
|
1261
|
+
msgstr ""
|
|
1262
|
+
|
|
1263
|
+
#: core/api/v2/viewsets.py:186
|
|
1264
|
+
msgid "Amavis quarantine"
|
|
914
1265
|
msgstr ""
|
|
915
1266
|
|
|
916
1267
|
#: core/api/v2/viewsets.py:197
|
|
1268
|
+
msgid "Address book"
|
|
1269
|
+
msgstr ""
|
|
1270
|
+
|
|
1271
|
+
#: core/api/v2/viewsets.py:207
|
|
917
1272
|
msgid "Calendar"
|
|
918
1273
|
msgstr ""
|
|
919
1274
|
|
|
920
|
-
#: core/api/v2/viewsets.py:
|
|
921
|
-
#: webmail/app_settings.py:
|
|
1275
|
+
#: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
|
|
1276
|
+
#: webmail/app_settings.py:295 webmail/app_settings.py:302
|
|
922
1277
|
msgid "Webmail"
|
|
923
1278
|
msgstr ""
|
|
924
1279
|
|
|
925
|
-
#: core/app_settings.py:
|
|
1280
|
+
#: core/app_settings.py:25
|
|
926
1281
|
msgid "Authentication"
|
|
927
1282
|
msgstr ""
|
|
928
1283
|
|
|
929
|
-
#: core/app_settings.py:
|
|
1284
|
+
#: core/app_settings.py:31
|
|
930
1285
|
msgid "Authentication type"
|
|
931
1286
|
msgstr ""
|
|
932
1287
|
|
|
933
|
-
#: core/app_settings.py:
|
|
1288
|
+
#: core/app_settings.py:33
|
|
934
1289
|
msgid "The backend used for authentication"
|
|
935
1290
|
msgstr ""
|
|
936
1291
|
|
|
937
|
-
#: core/app_settings.py:
|
|
1292
|
+
#: core/app_settings.py:40
|
|
938
1293
|
msgid "Default password scheme"
|
|
939
1294
|
msgstr ""
|
|
940
1295
|
|
|
941
|
-
#: core/app_settings.py:
|
|
1296
|
+
#: core/app_settings.py:42
|
|
942
1297
|
msgid "Scheme used to crypt mailbox passwords"
|
|
943
1298
|
msgstr ""
|
|
944
1299
|
|
|
945
|
-
#: core/app_settings.py:
|
|
1300
|
+
#: core/app_settings.py:49
|
|
946
1301
|
msgid "Rounds"
|
|
947
1302
|
msgstr ""
|
|
948
1303
|
|
|
949
|
-
#: core/app_settings.py:
|
|
1304
|
+
#: core/app_settings.py:51
|
|
950
1305
|
msgid ""
|
|
951
1306
|
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
|
|
952
1307
|
"between 1000 and 999999999, inclusive."
|
|
953
1308
|
msgstr ""
|
|
954
1309
|
|
|
955
|
-
#: core/app_settings.py:
|
|
1310
|
+
#: core/app_settings.py:61
|
|
956
1311
|
msgid "Update password scheme at login"
|
|
957
1312
|
msgstr ""
|
|
958
1313
|
|
|
959
|
-
#: core/app_settings.py:
|
|
1314
|
+
#: core/app_settings.py:64
|
|
960
1315
|
msgid "Update user password at login to use the default password scheme"
|
|
961
1316
|
msgstr ""
|
|
962
1317
|
|
|
963
|
-
#: core/app_settings.py:
|
|
1318
|
+
#: core/app_settings.py:72
|
|
964
1319
|
msgid "Default password"
|
|
965
1320
|
msgstr ""
|
|
966
1321
|
|
|
967
|
-
#: core/app_settings.py:
|
|
1322
|
+
#: core/app_settings.py:74
|
|
968
1323
|
msgid "Default password for automatically created accounts."
|
|
969
1324
|
msgstr ""
|
|
970
1325
|
|
|
971
|
-
#: core/app_settings.py:
|
|
1326
|
+
#: core/app_settings.py:81
|
|
972
1327
|
msgid "Random password length"
|
|
973
1328
|
msgstr ""
|
|
974
1329
|
|
|
975
|
-
#: core/app_settings.py:
|
|
1330
|
+
#: core/app_settings.py:83
|
|
976
1331
|
msgid "Length of randomly generated passwords."
|
|
977
1332
|
msgstr ""
|
|
978
1333
|
|
|
979
|
-
#: core/app_settings.py:
|
|
1334
|
+
#: core/app_settings.py:91
|
|
980
1335
|
msgid "Allow special characters for random password"
|
|
981
1336
|
msgstr ""
|
|
982
1337
|
|
|
983
|
-
#: core/app_settings.py:
|
|
1338
|
+
#: core/app_settings.py:94
|
|
984
1339
|
msgid "Enable special characters in randomly generated passwords."
|
|
985
1340
|
msgstr ""
|
|
986
1341
|
|
|
987
|
-
#: core/app_settings.py:
|
|
1342
|
+
#: core/app_settings.py:102
|
|
988
1343
|
msgid "Update password service URL"
|
|
989
1344
|
msgstr ""
|
|
990
1345
|
|
|
991
|
-
#: core/app_settings.py:
|
|
1346
|
+
#: core/app_settings.py:104
|
|
992
1347
|
msgid ""
|
|
993
1348
|
"The URL of an external page where users will be able to update their "
|
|
994
1349
|
"password. It applies only to non local users, ie. those automatically "
|
|
995
1350
|
"created after a successful external authentication (LDAP, SMTP)."
|
|
996
1351
|
msgstr ""
|
|
997
1352
|
|
|
998
|
-
#: core/app_settings.py:
|
|
1353
|
+
#: core/app_settings.py:114
|
|
999
1354
|
msgid "Password recovery announcement"
|
|
1000
1355
|
msgstr ""
|
|
1001
1356
|
|
|
1002
|
-
#: core/app_settings.py:
|
|
1357
|
+
#: core/app_settings.py:116
|
|
1003
1358
|
msgid "A temporary message that will be displayed on the reset password page."
|
|
1004
1359
|
msgstr ""
|
|
1005
1360
|
|
|
1006
|
-
#: core/app_settings.py:
|
|
1361
|
+
#: core/app_settings.py:125
|
|
1007
1362
|
msgid "Enable password recovery by SMS"
|
|
1008
1363
|
msgstr ""
|
|
1009
1364
|
|
|
1010
|
-
#: core/app_settings.py:
|
|
1365
|
+
#: core/app_settings.py:128
|
|
1011
1366
|
msgid "Enable password recovery by SMS for users who filled a phone number."
|
|
1012
1367
|
msgstr ""
|
|
1013
1368
|
|
|
1014
|
-
#: core/app_settings.py:
|
|
1369
|
+
#: core/app_settings.py:136
|
|
1015
1370
|
msgid "SMS provider"
|
|
1016
1371
|
msgstr ""
|
|
1017
1372
|
|
|
1018
|
-
#: core/app_settings.py:
|
|
1373
|
+
#: core/app_settings.py:139
|
|
1019
1374
|
msgid "Choose a provider to send password recovery SMS"
|
|
1020
1375
|
msgstr ""
|
|
1021
1376
|
|
|
1022
|
-
#: core/app_settings.py:
|
|
1377
|
+
#: core/app_settings.py:151
|
|
1023
1378
|
msgid "LDAP"
|
|
1024
1379
|
msgstr ""
|
|
1025
1380
|
|
|
1026
|
-
#: core/app_settings.py:
|
|
1381
|
+
#: core/app_settings.py:157 sievefilters/app_settings.py:18
|
|
1027
1382
|
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
|
|
1028
|
-
#: webmail/app_settings.py:73
|
|
1383
|
+
#: webmail/app_settings.py:73 webmail/app_settings.py:119
|
|
1029
1384
|
msgid "Server address"
|
|
1030
1385
|
msgstr ""
|
|
1031
1386
|
|
|
1032
|
-
#: core/app_settings.py:
|
|
1387
|
+
#: core/app_settings.py:159
|
|
1033
1388
|
msgid "The IP address or the DNS name of the LDAP server"
|
|
1034
1389
|
msgstr ""
|
|
1035
1390
|
|
|
1036
|
-
#: core/app_settings.py:
|
|
1391
|
+
#: core/app_settings.py:166 sievefilters/app_settings.py:25
|
|
1037
1392
|
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
|
|
1038
|
-
#: webmail/app_settings.py:91
|
|
1393
|
+
#: webmail/app_settings.py:91 webmail/app_settings.py:137
|
|
1039
1394
|
msgid "Server port"
|
|
1040
1395
|
msgstr ""
|
|
1041
1396
|
|
|
1042
|
-
#: core/app_settings.py:
|
|
1397
|
+
#: core/app_settings.py:168
|
|
1043
1398
|
msgid "The TCP port number used by the LDAP server"
|
|
1044
1399
|
msgstr ""
|
|
1045
1400
|
|
|
1046
|
-
#: core/app_settings.py:
|
|
1401
|
+
#: core/app_settings.py:176
|
|
1047
1402
|
msgid "Enable secondary server (fallback)"
|
|
1048
1403
|
msgstr ""
|
|
1049
1404
|
|
|
1050
|
-
#: core/app_settings.py:
|
|
1405
|
+
#: core/app_settings.py:179
|
|
1051
1406
|
msgid ""
|
|
1052
1407
|
"Enable a secondary LDAP server which will be used if the primary one fails"
|
|
1053
1408
|
msgstr ""
|
|
1054
1409
|
|
|
1055
|
-
#: core/app_settings.py:
|
|
1410
|
+
#: core/app_settings.py:187
|
|
1056
1411
|
msgid "Secondary server address"
|
|
1057
1412
|
msgstr ""
|
|
1058
1413
|
|
|
1059
|
-
#: core/app_settings.py:
|
|
1414
|
+
#: core/app_settings.py:190
|
|
1060
1415
|
msgid "The IP address or the DNS name of the seondary LDAP server"
|
|
1061
1416
|
msgstr ""
|
|
1062
1417
|
|
|
1063
|
-
#: core/app_settings.py:
|
|
1418
|
+
#: core/app_settings.py:197
|
|
1064
1419
|
msgid "Secondary server port"
|
|
1065
1420
|
msgstr ""
|
|
1066
1421
|
|
|
1067
|
-
#: core/app_settings.py:
|
|
1422
|
+
#: core/app_settings.py:200
|
|
1068
1423
|
msgid "The TCP port number used by the LDAP secondary server"
|
|
1069
1424
|
msgstr ""
|
|
1070
1425
|
|
|
1071
|
-
#: core/app_settings.py:
|
|
1426
|
+
#: core/app_settings.py:207 sievefilters/app_settings.py:58
|
|
1072
1427
|
#: webmail/app_settings.py:45
|
|
1073
1428
|
msgid "Use a secured connection"
|
|
1074
1429
|
msgstr ""
|
|
1075
1430
|
|
|
1076
|
-
#: core/app_settings.py:
|
|
1431
|
+
#: core/app_settings.py:209
|
|
1077
1432
|
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
|
|
1078
1433
|
msgstr ""
|
|
1079
1434
|
|
|
1080
|
-
#: core/app_settings.py:
|
|
1435
|
+
#: core/app_settings.py:216
|
|
1081
1436
|
msgid "Active Directory"
|
|
1082
1437
|
msgstr ""
|
|
1083
1438
|
|
|
1084
|
-
#: core/app_settings.py:
|
|
1439
|
+
#: core/app_settings.py:218
|
|
1085
1440
|
msgid "Tell if the LDAP server is an Active Directory one"
|
|
1086
1441
|
msgstr ""
|
|
1087
1442
|
|
|
1088
|
-
#: core/app_settings.py:
|
|
1443
|
+
#: core/app_settings.py:225
|
|
1089
1444
|
msgid "Administrator groups"
|
|
1090
1445
|
msgstr ""
|
|
1091
1446
|
|
|
1092
|
-
#: core/app_settings.py:
|
|
1447
|
+
#: core/app_settings.py:227
|
|
1093
1448
|
msgid ""
|
|
1094
1449
|
"Members of those LDAP Posix groups will be created as domain administrators. "
|
|
1095
1450
|
"Use ';' characters to separate groups."
|
|
1096
1451
|
msgstr ""
|
|
1097
1452
|
|
|
1098
|
-
#: core/app_settings.py:
|
|
1453
|
+
#: core/app_settings.py:236
|
|
1099
1454
|
msgid "Group type"
|
|
1100
1455
|
msgstr ""
|
|
1101
1456
|
|
|
1102
|
-
#: core/app_settings.py:
|
|
1457
|
+
#: core/app_settings.py:238
|
|
1103
1458
|
msgid "The LDAP group type to use with your directory."
|
|
1104
1459
|
msgstr ""
|
|
1105
1460
|
|
|
1106
|
-
#: core/app_settings.py:
|
|
1461
|
+
#: core/app_settings.py:245
|
|
1107
1462
|
msgid "Groups search base"
|
|
1108
1463
|
msgstr ""
|
|
1109
1464
|
|
|
1110
|
-
#: core/app_settings.py:
|
|
1465
|
+
#: core/app_settings.py:247
|
|
1111
1466
|
msgid "The distinguished name of the search base used to find groups"
|
|
1112
1467
|
msgstr ""
|
|
1113
1468
|
|
|
1114
|
-
#: core/app_settings.py:
|
|
1469
|
+
#: core/app_settings.py:255
|
|
1115
1470
|
msgid "Password attribute"
|
|
1116
1471
|
msgstr ""
|
|
1117
1472
|
|
|
1118
|
-
#: core/app_settings.py:
|
|
1473
|
+
#: core/app_settings.py:257
|
|
1119
1474
|
msgid "The attribute used to store user passwords"
|
|
1120
1475
|
msgstr ""
|
|
1121
1476
|
|
|
1122
|
-
#: core/app_settings.py:
|
|
1477
|
+
#: core/app_settings.py:264
|
|
1123
1478
|
msgid "LDAP authentication settings"
|
|
1124
1479
|
msgstr ""
|
|
1125
1480
|
|
|
1126
|
-
#: core/app_settings.py:
|
|
1481
|
+
#: core/app_settings.py:272
|
|
1127
1482
|
msgid "Authentication method"
|
|
1128
1483
|
msgstr ""
|
|
1129
1484
|
|
|
1130
|
-
#: core/app_settings.py:
|
|
1485
|
+
#: core/app_settings.py:275
|
|
1131
1486
|
msgid "Choose the authentication method to use"
|
|
1132
1487
|
msgstr ""
|
|
1133
1488
|
|
|
1134
|
-
#: core/app_settings.py:
|
|
1489
|
+
#: core/app_settings.py:282 core/app_settings.py:345
|
|
1135
1490
|
msgid "Bind DN"
|
|
1136
1491
|
msgstr ""
|
|
1137
1492
|
|
|
1138
|
-
#: core/app_settings.py:
|
|
1493
|
+
#: core/app_settings.py:284 core/app_settings.py:347
|
|
1139
1494
|
msgid ""
|
|
1140
1495
|
"The distinguished name to use when binding to the LDAP server. Leave empty "
|
|
1141
1496
|
"for an anonymous bind"
|
|
1142
1497
|
msgstr ""
|
|
1143
1498
|
|
|
1144
|
-
#: core/app_settings.py:
|
|
1499
|
+
#: core/app_settings.py:293 core/app_settings.py:355
|
|
1145
1500
|
msgid "Bind password"
|
|
1146
1501
|
msgstr ""
|
|
1147
1502
|
|
|
1148
|
-
#: core/app_settings.py:
|
|
1503
|
+
#: core/app_settings.py:295 core/app_settings.py:357
|
|
1149
1504
|
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
|
|
1150
1505
|
msgstr ""
|
|
1151
1506
|
|
|
1152
|
-
#: core/app_settings.py:
|
|
1507
|
+
#: core/app_settings.py:305 core/app_settings.py:410
|
|
1153
1508
|
msgid "Users search base"
|
|
1154
1509
|
msgstr ""
|
|
1155
1510
|
|
|
1156
|
-
#: core/app_settings.py:
|
|
1511
|
+
#: core/app_settings.py:307 core/app_settings.py:412
|
|
1157
1512
|
msgid "The distinguished name of the search base used to find users"
|
|
1158
1513
|
msgstr ""
|
|
1159
1514
|
|
|
1160
|
-
#: core/app_settings.py:
|
|
1515
|
+
#: core/app_settings.py:316 core/app_settings.py:421
|
|
1161
1516
|
msgid "Search filter"
|
|
1162
1517
|
msgstr ""
|
|
1163
1518
|
|
|
1164
|
-
#: core/app_settings.py:
|
|
1519
|
+
#: core/app_settings.py:318 core/app_settings.py:423
|
|
1165
1520
|
msgid ""
|
|
1166
1521
|
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
|
|
1167
1522
|
"valid, it must be enclosed in parentheses."
|
|
1168
1523
|
msgstr ""
|
|
1169
1524
|
|
|
1170
|
-
#: core/app_settings.py:
|
|
1525
|
+
#: core/app_settings.py:327
|
|
1171
1526
|
msgid "User DN template"
|
|
1172
1527
|
msgstr ""
|
|
1173
1528
|
|
|
1174
|
-
#: core/app_settings.py:
|
|
1529
|
+
#: core/app_settings.py:329
|
|
1175
1530
|
#, python-format
|
|
1176
1531
|
msgid ""
|
|
1177
1532
|
"The template used to construct a user's DN. It should contain one "
|
|
1178
1533
|
"placeholder (ie. %(user)s)"
|
|
1179
1534
|
msgstr ""
|
|
1180
1535
|
|
|
1181
|
-
#: core/app_settings.py:
|
|
1536
|
+
#: core/app_settings.py:338
|
|
1182
1537
|
msgid "LDAP synchronization settings"
|
|
1183
1538
|
msgstr ""
|
|
1184
1539
|
|
|
1185
|
-
#: core/app_settings.py:
|
|
1540
|
+
#: core/app_settings.py:366
|
|
1186
1541
|
msgid "Enable export to LDAP"
|
|
1187
1542
|
msgstr ""
|
|
1188
1543
|
|
|
1189
|
-
#: core/app_settings.py:
|
|
1544
|
+
#: core/app_settings.py:368
|
|
1190
1545
|
msgid ""
|
|
1191
1546
|
"Enable automatic synchronization between local database and LDAP directory"
|
|
1192
1547
|
msgstr ""
|
|
1193
1548
|
|
|
1194
|
-
#: core/app_settings.py:
|
|
1549
|
+
#: core/app_settings.py:377
|
|
1195
1550
|
msgid "Delete remote LDAP account when local account is deleted"
|
|
1196
1551
|
msgstr ""
|
|
1197
1552
|
|
|
1198
|
-
#: core/app_settings.py:
|
|
1553
|
+
#: core/app_settings.py:380
|
|
1199
1554
|
msgid ""
|
|
1200
1555
|
"Delete remote LDAP account when local account is deleted, otherwise it will "
|
|
1201
1556
|
"be disabled."
|
|
1202
1557
|
msgstr ""
|
|
1203
1558
|
|
|
1204
|
-
#: core/app_settings.py:
|
|
1559
|
+
#: core/app_settings.py:389
|
|
1205
1560
|
msgid "Account DN template"
|
|
1206
1561
|
msgstr ""
|
|
1207
1562
|
|
|
1208
|
-
#: core/app_settings.py:
|
|
1563
|
+
#: core/app_settings.py:391
|
|
1209
1564
|
#, python-format
|
|
1210
1565
|
msgid ""
|
|
1211
1566
|
"The template used to construct an account's DN. It should contain one "
|
|
1212
1567
|
"placeholder (ie. %(user)s)"
|
|
1213
1568
|
msgstr ""
|
|
1214
1569
|
|
|
1215
|
-
#: core/app_settings.py:
|
|
1570
|
+
#: core/app_settings.py:400
|
|
1216
1571
|
msgid "Enable import from LDAP"
|
|
1217
1572
|
msgstr ""
|
|
1218
1573
|
|
|
1219
|
-
#: core/app_settings.py:
|
|
1574
|
+
#: core/app_settings.py:402
|
|
1220
1575
|
msgid "Enable account synchronization from LDAP directory to local database"
|
|
1221
1576
|
msgstr ""
|
|
1222
1577
|
|
|
1223
|
-
#: core/app_settings.py:
|
|
1578
|
+
#: core/app_settings.py:432
|
|
1224
1579
|
msgid "Username attribute"
|
|
1225
1580
|
msgstr ""
|
|
1226
1581
|
|
|
1227
|
-
#: core/app_settings.py:
|
|
1582
|
+
#: core/app_settings.py:434
|
|
1228
1583
|
msgid "The name of the LDAP attribute where the username can be found."
|
|
1229
1584
|
msgstr ""
|
|
1230
1585
|
|
|
1231
|
-
#: core/app_settings.py:
|
|
1586
|
+
#: core/app_settings.py:443
|
|
1232
1587
|
msgid "Enable Dovecot LDAP sync"
|
|
1233
1588
|
msgstr ""
|
|
1234
1589
|
|
|
1235
|
-
#: core/app_settings.py:
|
|
1590
|
+
#: core/app_settings.py:445
|
|
1236
1591
|
msgid "LDAP authentication settings will be applied to Dovecot configuration."
|
|
1237
1592
|
msgstr ""
|
|
1238
1593
|
|
|
1239
|
-
#: core/app_settings.py:
|
|
1594
|
+
#: core/app_settings.py:453
|
|
1240
1595
|
msgid "Dovecot LDAP config file"
|
|
1241
1596
|
msgstr ""
|
|
1242
1597
|
|
|
1243
|
-
#: core/app_settings.py:
|
|
1598
|
+
#: core/app_settings.py:455
|
|
1244
1599
|
msgid ""
|
|
1245
1600
|
"Location of the configuration file which contains Dovecot LDAP settings."
|
|
1246
1601
|
msgstr ""
|
|
1247
1602
|
|
|
1248
|
-
#: core/app_settings.py:
|
|
1603
|
+
#: core/app_settings.py:468
|
|
1249
1604
|
msgid "Dashboard"
|
|
1250
1605
|
msgstr ""
|
|
1251
1606
|
|
|
1252
|
-
#: core/app_settings.py:
|
|
1607
|
+
#: core/app_settings.py:474
|
|
1253
1608
|
msgid "Custom welcome message"
|
|
1254
1609
|
msgstr ""
|
|
1255
1610
|
|
|
1256
|
-
#: core/app_settings.py:
|
|
1611
|
+
#: core/app_settings.py:476
|
|
1257
1612
|
msgid "A welcome message that will be displayed instead the default one"
|
|
1258
1613
|
msgstr ""
|
|
1259
1614
|
|
|
1260
|
-
#: core/app_settings.py:
|
|
1615
|
+
#: core/app_settings.py:483
|
|
1261
1616
|
msgid "Custom RSS feed"
|
|
1262
1617
|
msgstr ""
|
|
1263
1618
|
|
|
1264
|
-
#: core/app_settings.py:
|
|
1619
|
+
#: core/app_settings.py:485
|
|
1265
1620
|
msgid "Display custom RSS feed to resellers and domain administrators"
|
|
1266
1621
|
msgstr ""
|
|
1267
1622
|
|
|
1268
|
-
#: core/app_settings.py:
|
|
1623
|
+
#: core/app_settings.py:494
|
|
1269
1624
|
msgid "Display custom RSS feed to super admins"
|
|
1270
1625
|
msgstr ""
|
|
1271
1626
|
|
|
1272
|
-
#: core/app_settings.py:
|
|
1627
|
+
#: core/app_settings.py:497
|
|
1273
1628
|
msgid "Display custom RSS feed also to super administrators"
|
|
1274
1629
|
msgstr ""
|
|
1275
1630
|
|
|
1276
|
-
#: core/app_settings.py:
|
|
1631
|
+
#: core/app_settings.py:505
|
|
1277
1632
|
msgid "Hide features widget"
|
|
1278
1633
|
msgstr ""
|
|
1279
1634
|
|
|
1280
|
-
#: core/app_settings.py:
|
|
1635
|
+
#: core/app_settings.py:507
|
|
1281
1636
|
msgid "Hide features widget for resellers and domain administrators"
|
|
1282
1637
|
msgstr ""
|
|
1283
1638
|
|
|
1284
|
-
#: core/app_settings.py:
|
|
1639
|
+
#: core/app_settings.py:519
|
|
1285
1640
|
msgid "Theme"
|
|
1286
1641
|
msgstr ""
|
|
1287
1642
|
|
|
1288
|
-
#: core/app_settings.py:
|
|
1643
|
+
#: core/app_settings.py:525
|
|
1289
1644
|
msgid "Primary theme color"
|
|
1290
1645
|
msgstr ""
|
|
1291
1646
|
|
|
1292
|
-
#: core/app_settings.py:
|
|
1647
|
+
#: core/app_settings.py:527
|
|
1293
1648
|
msgid ""
|
|
1294
1649
|
"Primary color of the theme (hexadecimal code), used as the background color "
|
|
1295
1650
|
"of the left menu for example"
|
|
1296
1651
|
msgstr ""
|
|
1297
1652
|
|
|
1298
|
-
#: core/app_settings.py:
|
|
1653
|
+
#: core/app_settings.py:536
|
|
1299
1654
|
msgid "Primary theme color (lighter version)"
|
|
1300
1655
|
msgstr ""
|
|
1301
1656
|
|
|
1302
|
-
#: core/app_settings.py:
|
|
1657
|
+
#: core/app_settings.py:539 core/app_settings.py:551
|
|
1303
1658
|
msgid "Primary color of the theme (hexadecimal code)"
|
|
1304
1659
|
msgstr ""
|
|
1305
1660
|
|
|
1306
|
-
#: core/app_settings.py:
|
|
1661
|
+
#: core/app_settings.py:548
|
|
1307
1662
|
msgid "Primary theme color (darker version)"
|
|
1308
1663
|
msgstr ""
|
|
1309
1664
|
|
|
1310
|
-
#: core/app_settings.py:
|
|
1665
|
+
#: core/app_settings.py:559
|
|
1311
1666
|
msgid "Secondary theme color"
|
|
1312
1667
|
msgstr ""
|
|
1313
1668
|
|
|
1314
|
-
#: core/app_settings.py:
|
|
1669
|
+
#: core/app_settings.py:561
|
|
1315
1670
|
msgid ""
|
|
1316
1671
|
"Secondary color of the theme (hexadecimal code), used as the background "
|
|
1317
1672
|
"color of some buttons for example"
|
|
1318
1673
|
msgstr ""
|
|
1319
1674
|
|
|
1320
|
-
#: core/app_settings.py:
|
|
1675
|
+
#: core/app_settings.py:569
|
|
1321
1676
|
msgid "Labels theme color"
|
|
1322
1677
|
msgstr ""
|
|
1323
1678
|
|
|
1324
|
-
#: core/app_settings.py:
|
|
1679
|
+
#: core/app_settings.py:571
|
|
1325
1680
|
msgid "Theme color for labels (hexadecimal code)"
|
|
1326
1681
|
msgstr ""
|
|
1327
1682
|
|
|
1328
|
-
#: core/app_settings.py:
|
|
1683
|
+
#: core/app_settings.py:583
|
|
1329
1684
|
msgid "Notifications"
|
|
1330
1685
|
msgstr ""
|
|
1331
1686
|
|
|
1332
|
-
#: core/app_settings.py:
|
|
1687
|
+
#: core/app_settings.py:589
|
|
1333
1688
|
msgid "Sender address"
|
|
1334
1689
|
msgstr ""
|
|
1335
1690
|
|
|
1336
|
-
#: core/app_settings.py:
|
|
1691
|
+
#: core/app_settings.py:591
|
|
1337
1692
|
msgid "Email address used to send notifications."
|
|
1338
1693
|
msgstr ""
|
|
1339
1694
|
|
|
1340
|
-
#: core/app_settings.py:
|
|
1695
|
+
#: core/app_settings.py:602
|
|
1341
1696
|
msgid "Public API"
|
|
1342
1697
|
msgstr ""
|
|
1343
1698
|
|
|
1344
|
-
#: core/app_settings.py:
|
|
1699
|
+
#: core/app_settings.py:608
|
|
1345
1700
|
msgid "Enable communication"
|
|
1346
1701
|
msgstr ""
|
|
1347
1702
|
|
|
1348
|
-
#: core/app_settings.py:
|
|
1703
|
+
#: core/app_settings.py:610 core/app_settings.py:620
|
|
1349
1704
|
msgid "Automatically checks if a newer version is available"
|
|
1350
1705
|
msgstr ""
|
|
1351
1706
|
|
|
1352
|
-
#: core/app_settings.py:
|
|
1707
|
+
#: core/app_settings.py:617
|
|
1353
1708
|
msgid "Check new versions"
|
|
1354
1709
|
msgstr ""
|
|
1355
1710
|
|
|
1356
|
-
#: core/app_settings.py:
|
|
1711
|
+
#: core/app_settings.py:628
|
|
1357
1712
|
msgid "Send an email when new versions are found"
|
|
1358
1713
|
msgstr ""
|
|
1359
1714
|
|
|
1360
|
-
#: core/app_settings.py:
|
|
1715
|
+
#: core/app_settings.py:632
|
|
1361
1716
|
msgid "Send an email to notify admins about new versions"
|
|
1362
1717
|
msgstr ""
|
|
1363
1718
|
|
|
1364
|
-
#: core/app_settings.py:
|
|
1719
|
+
#: core/app_settings.py:639 sievefilters/constants.py:25
|
|
1365
1720
|
msgid "Recipient"
|
|
1366
1721
|
msgstr ""
|
|
1367
1722
|
|
|
1368
|
-
#: core/app_settings.py:
|
|
1723
|
+
#: core/app_settings.py:642
|
|
1369
1724
|
msgid "Recipient of new versions notification emails."
|
|
1370
1725
|
msgstr ""
|
|
1371
1726
|
|
|
1372
|
-
#: core/app_settings.py:
|
|
1727
|
+
#: core/app_settings.py:649
|
|
1373
1728
|
msgid "Send statistics"
|
|
1374
1729
|
msgstr ""
|
|
1375
1730
|
|
|
1376
|
-
#: core/app_settings.py:
|
|
1731
|
+
#: core/app_settings.py:652
|
|
1377
1732
|
msgid "Send statistics to Modoboa public API (counters and used extensions)"
|
|
1378
1733
|
msgstr ""
|
|
1379
1734
|
|
|
1380
|
-
#: core/app_settings.py:
|
|
1735
|
+
#: core/app_settings.py:671
|
|
1381
1736
|
msgid "Enable inactive account tracking"
|
|
1382
1737
|
msgstr ""
|
|
1383
1738
|
|
|
1384
|
-
#: core/app_settings.py:
|
|
1739
|
+
#: core/app_settings.py:674
|
|
1385
1740
|
msgid ""
|
|
1386
1741
|
"Allow the administrator to set a threshold (in days) beyond which an account "
|
|
1387
1742
|
"is considered inactive if the user hasn't logged in"
|
|
1388
1743
|
msgstr ""
|
|
1389
1744
|
|
|
1390
|
-
#: core/app_settings.py:
|
|
1745
|
+
#: core/app_settings.py:683
|
|
1391
1746
|
msgid "Inactive account threshold"
|
|
1392
1747
|
msgstr ""
|
|
1393
1748
|
|
|
1394
|
-
#: core/app_settings.py:
|
|
1749
|
+
#: core/app_settings.py:686
|
|
1395
1750
|
msgid ""
|
|
1396
1751
|
"An account with a last login date greater than this threshold (in days) will "
|
|
1397
1752
|
"be considered as inactive"
|
|
1398
1753
|
msgstr ""
|
|
1399
1754
|
|
|
1400
|
-
#: core/app_settings.py:
|
|
1755
|
+
#: core/app_settings.py:695
|
|
1401
1756
|
msgid "Top notifications check interval"
|
|
1402
1757
|
msgstr ""
|
|
1403
1758
|
|
|
1404
|
-
#: core/app_settings.py:
|
|
1759
|
+
#: core/app_settings.py:698
|
|
1405
1760
|
msgid "Interval between two top notification checks (in seconds)"
|
|
1406
1761
|
msgstr ""
|
|
1407
1762
|
|
|
1408
|
-
#: core/app_settings.py:
|
|
1763
|
+
#: core/app_settings.py:705
|
|
1409
1764
|
msgid "Maximum log record age"
|
|
1410
1765
|
msgstr ""
|
|
1411
1766
|
|
|
1412
|
-
#: core/app_settings.py:
|
|
1767
|
+
#: core/app_settings.py:707
|
|
1413
1768
|
msgid "The maximum age in days of a log record"
|
|
1414
1769
|
msgstr ""
|
|
1415
1770
|
|
|
1416
|
-
#: core/app_settings.py:
|
|
1771
|
+
#: core/app_settings.py:715
|
|
1417
1772
|
msgid "Retention time in message history"
|
|
1418
1773
|
msgstr ""
|
|
1419
1774
|
|
|
1420
|
-
#: core/app_settings.py:
|
|
1775
|
+
#: core/app_settings.py:718
|
|
1421
1776
|
msgid "Retention time (in days) of a message in the message history section"
|
|
1422
1777
|
msgstr ""
|
|
1423
1778
|
|
|
1424
|
-
#: core/app_settings.py:
|
|
1779
|
+
#: core/app_settings.py:725
|
|
1425
1780
|
msgid "Items per page"
|
|
1426
1781
|
msgstr ""
|
|
1427
1782
|
|
|
1428
|
-
#: core/app_settings.py:
|
|
1783
|
+
#: core/app_settings.py:727
|
|
1429
1784
|
msgid "Number of displayed items per page"
|
|
1430
1785
|
msgstr ""
|
|
1431
1786
|
|
|
1432
|
-
#: core/app_settings.py:746
|
|
1433
|
-
msgid "Default top redirection"
|
|
1434
|
-
msgstr ""
|
|
1435
|
-
|
|
1436
|
-
#: core/app_settings.py:748
|
|
1437
|
-
msgid "The default redirection used when no application is specified"
|
|
1438
|
-
msgstr ""
|
|
1439
|
-
|
|
1440
1787
|
#: core/checks.py:15
|
|
1441
1788
|
msgid ""
|
|
1442
1789
|
"You have USE_TZ set to False, this may result in issues during transitions "
|
|
@@ -1562,7 +1909,7 @@ msgstr ""
|
|
|
1562
1909
|
msgid "One or more updates are available"
|
|
1563
1910
|
msgstr ""
|
|
1564
1911
|
|
|
1565
|
-
#: core/handlers.py:
|
|
1912
|
+
#: core/handlers.py:140
|
|
1566
1913
|
#, python-format
|
|
1567
1914
|
msgid "You are still using a deprecated password scheme (%s)"
|
|
1568
1915
|
msgstr ""
|
|
@@ -1714,22 +2061,22 @@ msgstr[0] ""
|
|
|
1714
2061
|
msgid "The core part of Modoboa"
|
|
1715
2062
|
msgstr ""
|
|
1716
2063
|
|
|
1717
|
-
#: core/views/auth.py:
|
|
2064
|
+
#: core/views/auth.py:82
|
|
1718
2065
|
#, python-format
|
|
1719
2066
|
msgid "User '%s' successfully logged in"
|
|
1720
2067
|
msgstr ""
|
|
1721
2068
|
|
|
1722
|
-
#: core/views/auth.py:
|
|
2069
|
+
#: core/views/auth.py:128
|
|
1723
2070
|
#, python-format
|
|
1724
2071
|
msgid "Password scheme mismatch. Updating %s password"
|
|
1725
2072
|
msgstr ""
|
|
1726
2073
|
|
|
1727
|
-
#: core/views/auth.py:
|
|
2074
|
+
#: core/views/auth.py:135
|
|
1728
2075
|
#, python-format
|
|
1729
2076
|
msgid "Password hash parameter missmatch. Updating %s password"
|
|
1730
2077
|
msgstr ""
|
|
1731
2078
|
|
|
1732
|
-
#: core/views/auth.py:
|
|
2079
|
+
#: core/views/auth.py:173
|
|
1733
2080
|
msgid "User '{}' successfully logged out"
|
|
1734
2081
|
msgstr ""
|
|
1735
2082
|
|
|
@@ -1754,14 +2101,10 @@ msgid "Not resolved"
|
|
|
1754
2101
|
msgstr ""
|
|
1755
2102
|
|
|
1756
2103
|
#: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
|
|
1757
|
-
#: webmail/constants.py:
|
|
2104
|
+
#: webmail/constants.py:38
|
|
1758
2105
|
msgid "None"
|
|
1759
2106
|
msgstr ""
|
|
1760
2107
|
|
|
1761
|
-
#: dmarc/models.py:11
|
|
1762
|
-
msgid "Quarantine"
|
|
1763
|
-
msgstr ""
|
|
1764
|
-
|
|
1765
2108
|
#: dmarc/models.py:12
|
|
1766
2109
|
msgid "Reject"
|
|
1767
2110
|
msgstr ""
|
|
@@ -1886,7 +2229,11 @@ msgstr ""
|
|
|
1886
2229
|
msgid "Public key mismatchs"
|
|
1887
2230
|
msgstr ""
|
|
1888
2231
|
|
|
1889
|
-
#: imap_migration/api/v2/serializers.py:
|
|
2232
|
+
#: imap_migration/api/v2/serializers.py:66
|
|
2233
|
+
msgid "Migrated domain with name {} already exists"
|
|
2234
|
+
msgstr ""
|
|
2235
|
+
|
|
2236
|
+
#: imap_migration/api/v2/serializers.py:130
|
|
1890
2237
|
msgid "Access denied"
|
|
1891
2238
|
msgstr ""
|
|
1892
2239
|
|
|
@@ -2561,7 +2908,7 @@ msgstr ""
|
|
|
2561
2908
|
msgid "Rspamd"
|
|
2562
2909
|
msgstr ""
|
|
2563
2910
|
|
|
2564
|
-
#: sievefilters/api/v2/viewsets.py:
|
|
2911
|
+
#: sievefilters/api/v2/viewsets.py:203
|
|
2565
2912
|
#, python-format
|
|
2566
2913
|
msgid "Filter %s already exists"
|
|
2567
2914
|
msgstr ""
|
|
@@ -2634,7 +2981,7 @@ msgstr ""
|
|
|
2634
2981
|
msgid "is not"
|
|
2635
2982
|
msgstr ""
|
|
2636
2983
|
|
|
2637
|
-
#: sievefilters/constants.py:23 webmail/lib/imapemail.py:
|
|
2984
|
+
#: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
|
|
2638
2985
|
msgid "Subject"
|
|
2639
2986
|
msgstr ""
|
|
2640
2987
|
|
|
@@ -2860,19 +3207,19 @@ msgstr ""
|
|
|
2860
3207
|
msgid "SMTP settings"
|
|
2861
3208
|
msgstr ""
|
|
2862
3209
|
|
|
2863
|
-
#: webmail/app_settings.py:75
|
|
3210
|
+
#: webmail/app_settings.py:75 webmail/app_settings.py:121
|
|
2864
3211
|
msgid "Address of your SMTP server"
|
|
2865
3212
|
msgstr ""
|
|
2866
3213
|
|
|
2867
|
-
#: webmail/app_settings.py:82
|
|
3214
|
+
#: webmail/app_settings.py:82 webmail/app_settings.py:128
|
|
2868
3215
|
msgid "Secured connection mode"
|
|
2869
3216
|
msgstr ""
|
|
2870
3217
|
|
|
2871
|
-
#: webmail/app_settings.py:84
|
|
3218
|
+
#: webmail/app_settings.py:84 webmail/app_settings.py:130
|
|
2872
3219
|
msgid "Use a secured connection to access SMTP server"
|
|
2873
3220
|
msgstr ""
|
|
2874
3221
|
|
|
2875
|
-
#: webmail/app_settings.py:93
|
|
3222
|
+
#: webmail/app_settings.py:93 webmail/app_settings.py:139
|
|
2876
3223
|
msgid "Listening port of your SMTP server"
|
|
2877
3224
|
msgstr ""
|
|
2878
3225
|
|
|
@@ -2884,103 +3231,99 @@ msgstr ""
|
|
|
2884
3231
|
msgid "Server needs authentication"
|
|
2885
3232
|
msgstr ""
|
|
2886
3233
|
|
|
2887
|
-
#: webmail/app_settings.py:
|
|
2888
|
-
msgid "
|
|
3234
|
+
#: webmail/app_settings.py:113
|
|
3235
|
+
msgid "Scheduling settings"
|
|
2889
3236
|
msgstr ""
|
|
2890
3237
|
|
|
2891
|
-
#: webmail/app_settings.py:
|
|
3238
|
+
#: webmail/app_settings.py:161
|
|
2892
3239
|
msgid "Default message display mode"
|
|
2893
3240
|
msgstr ""
|
|
2894
3241
|
|
|
2895
|
-
#: webmail/app_settings.py:
|
|
3242
|
+
#: webmail/app_settings.py:163
|
|
2896
3243
|
msgid "The default mode used when displaying a message"
|
|
2897
3244
|
msgstr ""
|
|
2898
3245
|
|
|
2899
|
-
#: webmail/app_settings.py:
|
|
3246
|
+
#: webmail/app_settings.py:170
|
|
2900
3247
|
msgid "Enable HTML links display"
|
|
2901
3248
|
msgstr ""
|
|
2902
3249
|
|
|
2903
|
-
#: webmail/app_settings.py:
|
|
3250
|
+
#: webmail/app_settings.py:173
|
|
2904
3251
|
msgid "Enable/Disable HTML links display"
|
|
2905
3252
|
msgstr ""
|
|
2906
3253
|
|
|
2907
|
-
#: webmail/app_settings.py:
|
|
2908
|
-
msgid "Number of displayed emails per page"
|
|
2909
|
-
msgstr ""
|
|
2910
|
-
|
|
2911
|
-
#: webmail/app_settings.py:147
|
|
3254
|
+
#: webmail/app_settings.py:184
|
|
2912
3255
|
msgid "Sets the maximum number of messages displayed in a page"
|
|
2913
3256
|
msgstr ""
|
|
2914
3257
|
|
|
2915
|
-
#: webmail/app_settings.py:
|
|
3258
|
+
#: webmail/app_settings.py:191
|
|
2916
3259
|
msgid "Listing refresh rate"
|
|
2917
3260
|
msgstr ""
|
|
2918
3261
|
|
|
2919
|
-
#: webmail/app_settings.py:
|
|
3262
|
+
#: webmail/app_settings.py:193
|
|
2920
3263
|
msgid "Automatic listing refresh rate (in secconds)"
|
|
2921
3264
|
msgstr ""
|
|
2922
3265
|
|
|
2923
|
-
#: webmail/app_settings.py:
|
|
3266
|
+
#: webmail/app_settings.py:200
|
|
2924
3267
|
msgid "Folder container's width"
|
|
2925
3268
|
msgstr ""
|
|
2926
3269
|
|
|
2927
|
-
#: webmail/app_settings.py:
|
|
3270
|
+
#: webmail/app_settings.py:202
|
|
2928
3271
|
msgid "The width of the folder list container"
|
|
2929
3272
|
msgstr ""
|
|
2930
3273
|
|
|
2931
|
-
#: webmail/app_settings.py:
|
|
3274
|
+
#: webmail/app_settings.py:213
|
|
2932
3275
|
msgid "Folders"
|
|
2933
3276
|
msgstr ""
|
|
2934
3277
|
|
|
2935
|
-
#: webmail/app_settings.py:
|
|
3278
|
+
#: webmail/app_settings.py:219
|
|
2936
3279
|
msgid "Trash folder"
|
|
2937
3280
|
msgstr ""
|
|
2938
3281
|
|
|
2939
|
-
#: webmail/app_settings.py:
|
|
3282
|
+
#: webmail/app_settings.py:221
|
|
2940
3283
|
msgid "Folder where deleted messages go"
|
|
2941
3284
|
msgstr ""
|
|
2942
3285
|
|
|
2943
|
-
#: webmail/app_settings.py:
|
|
3286
|
+
#: webmail/app_settings.py:228
|
|
2944
3287
|
msgid "Sent folder"
|
|
2945
3288
|
msgstr ""
|
|
2946
3289
|
|
|
2947
|
-
#: webmail/app_settings.py:
|
|
3290
|
+
#: webmail/app_settings.py:230
|
|
2948
3291
|
msgid "Folder where copies of sent messages go"
|
|
2949
3292
|
msgstr ""
|
|
2950
3293
|
|
|
2951
|
-
#: webmail/app_settings.py:
|
|
3294
|
+
#: webmail/app_settings.py:237
|
|
2952
3295
|
msgid "Drafts folder"
|
|
2953
3296
|
msgstr ""
|
|
2954
3297
|
|
|
2955
|
-
#: webmail/app_settings.py:
|
|
3298
|
+
#: webmail/app_settings.py:238
|
|
2956
3299
|
msgid "Folder where drafts go"
|
|
2957
3300
|
msgstr ""
|
|
2958
3301
|
|
|
2959
|
-
#: webmail/app_settings.py:
|
|
3302
|
+
#: webmail/app_settings.py:244
|
|
2960
3303
|
msgid "Junk folder"
|
|
2961
3304
|
msgstr ""
|
|
2962
3305
|
|
|
2963
|
-
#: webmail/app_settings.py:
|
|
3306
|
+
#: webmail/app_settings.py:246
|
|
2964
3307
|
msgid "Folder where junk messages should go"
|
|
2965
3308
|
msgstr ""
|
|
2966
3309
|
|
|
2967
|
-
#: webmail/app_settings.py:
|
|
3310
|
+
#: webmail/app_settings.py:257
|
|
2968
3311
|
msgid "Composing messages"
|
|
2969
3312
|
msgstr ""
|
|
2970
3313
|
|
|
2971
|
-
#: webmail/app_settings.py:
|
|
3314
|
+
#: webmail/app_settings.py:263
|
|
2972
3315
|
msgid "Default editor"
|
|
2973
3316
|
msgstr ""
|
|
2974
3317
|
|
|
2975
|
-
#: webmail/app_settings.py:
|
|
3318
|
+
#: webmail/app_settings.py:265
|
|
2976
3319
|
msgid "The default editor to use when composing a message"
|
|
2977
3320
|
msgstr ""
|
|
2978
3321
|
|
|
2979
|
-
#: webmail/app_settings.py:
|
|
3322
|
+
#: webmail/app_settings.py:272
|
|
2980
3323
|
msgid "Signature text"
|
|
2981
3324
|
msgstr ""
|
|
2982
3325
|
|
|
2983
|
-
#: webmail/app_settings.py:
|
|
3326
|
+
#: webmail/app_settings.py:274
|
|
2984
3327
|
msgid "User defined email signature"
|
|
2985
3328
|
msgstr ""
|
|
2986
3329
|
|
|
@@ -2994,43 +3337,59 @@ msgstr ""
|
|
|
2994
3337
|
msgid "Failed to remove attachment: "
|
|
2995
3338
|
msgstr "无法创建LDAP帐户: {}"
|
|
2996
3339
|
|
|
2997
|
-
#: webmail/lib/imapemail.py:
|
|
3340
|
+
#: webmail/lib/imapemail.py:270
|
|
2998
3341
|
msgid "wrote:"
|
|
2999
3342
|
msgstr ""
|
|
3000
3343
|
|
|
3001
|
-
#: webmail/lib/imapemail.py:
|
|
3344
|
+
#: webmail/lib/imapemail.py:304
|
|
3002
3345
|
msgid "Date"
|
|
3003
3346
|
msgstr ""
|
|
3004
3347
|
|
|
3005
|
-
#: webmail/lib/imapemail.py:
|
|
3348
|
+
#: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
|
|
3006
3349
|
msgid "Original message"
|
|
3007
3350
|
msgstr ""
|
|
3008
3351
|
|
|
3009
|
-
#: webmail/lib/imaputils.py:
|
|
3352
|
+
#: webmail/lib/imaputils.py:222
|
|
3010
3353
|
msgid "Failed to retrieve hierarchy delimiter"
|
|
3011
3354
|
msgstr ""
|
|
3012
3355
|
|
|
3013
|
-
#: webmail/lib/imaputils.py:
|
|
3356
|
+
#: webmail/lib/imaputils.py:478
|
|
3014
3357
|
msgid "Inbox"
|
|
3015
3358
|
msgstr ""
|
|
3016
3359
|
|
|
3017
|
-
#: webmail/lib/imaputils.py:
|
|
3360
|
+
#: webmail/lib/imaputils.py:482
|
|
3018
3361
|
msgid "Drafts"
|
|
3019
3362
|
msgstr ""
|
|
3020
3363
|
|
|
3021
|
-
#: webmail/lib/imaputils.py:
|
|
3364
|
+
#: webmail/lib/imaputils.py:487
|
|
3022
3365
|
msgid "Junk"
|
|
3023
3366
|
msgstr ""
|
|
3024
3367
|
|
|
3025
|
-
#: webmail/lib/imaputils.py:
|
|
3368
|
+
#: webmail/lib/imaputils.py:492
|
|
3026
3369
|
msgid "Sent"
|
|
3027
3370
|
msgstr ""
|
|
3028
3371
|
|
|
3029
|
-
#: webmail/lib/imaputils.py:
|
|
3372
|
+
#: webmail/lib/imaputils.py:500
|
|
3373
|
+
msgid "Scheduled"
|
|
3374
|
+
msgstr ""
|
|
3375
|
+
|
|
3376
|
+
#: webmail/lib/imaputils.py:507
|
|
3030
3377
|
msgid "Trash"
|
|
3031
3378
|
msgstr ""
|
|
3032
3379
|
|
|
3033
|
-
#: webmail/
|
|
3380
|
+
#: webmail/serializers.py:220
|
|
3381
|
+
msgid "Moving scheduled messages is forbidden"
|
|
3382
|
+
msgstr ""
|
|
3383
|
+
|
|
3384
|
+
#: webmail/serializers.py:253
|
|
3385
|
+
msgid "Only datetime in the future is allowed"
|
|
3386
|
+
msgstr ""
|
|
3387
|
+
|
|
3388
|
+
#: webmail/serializers.py:258
|
|
3389
|
+
msgid "Provived datetime must be one minute in the future at least"
|
|
3390
|
+
msgstr ""
|
|
3391
|
+
|
|
3392
|
+
#: webmail/viewsets.py:359
|
|
3034
3393
|
#, python-format
|
|
3035
3394
|
msgid "Attachment is too big (limit: %s)"
|
|
3036
3395
|
msgstr ""
|