modoboa 2.4.11__py3-none-any.whl → 2.5.1__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 +14 -0
- modoboa/amavis/__init__.py +3 -0
- modoboa/amavis/app_settings.py +276 -0
- modoboa/amavis/apps.py +18 -0
- modoboa/amavis/checks/__init__.py +2 -0
- modoboa/amavis/checks/settings_checks.py +59 -0
- modoboa/amavis/dbrouter.py +35 -0
- modoboa/amavis/factories.py +164 -0
- modoboa/amavis/handlers.py +146 -0
- modoboa/amavis/lib.py +381 -0
- modoboa/amavis/management/__init__.py +0 -0
- modoboa/amavis/management/commands/__init__.py +0 -0
- modoboa/amavis/management/commands/amnotify.py +99 -0
- modoboa/amavis/management/commands/qcleanup.py +84 -0
- modoboa/amavis/migrations/0001_initial.py +340 -0
- modoboa/amavis/migrations/__init__.py +0 -0
- modoboa/amavis/models.py +226 -0
- modoboa/amavis/serializers.py +139 -0
- modoboa/amavis/sql_connector.py +240 -0
- modoboa/amavis/sql_email.py +66 -0
- modoboa/amavis/tasks.py +33 -0
- modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
- modoboa/amavis/tests/__init__.py +0 -0
- modoboa/amavis/tests/sa-learn +3 -0
- modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
- modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
- modoboa/amavis/tests/spamc +3 -0
- modoboa/amavis/tests/test_checks.py +25 -0
- modoboa/amavis/tests/test_handlers.py +214 -0
- modoboa/amavis/tests/test_lib.py +90 -0
- modoboa/amavis/tests/test_management_commands.py +45 -0
- modoboa/amavis/tests/test_sql_email.py +67 -0
- modoboa/amavis/tests/test_utils.py +19 -0
- modoboa/amavis/tests/test_viewsets.py +319 -0
- modoboa/amavis/urls.py +11 -0
- modoboa/amavis/utils.py +105 -0
- modoboa/amavis/viewsets.py +265 -0
- modoboa/core/api/v1/serializers.py +7 -5
- modoboa/core/api/v2/serializers.py +4 -2
- modoboa/core/api/v2/tests.py +16 -4
- modoboa/core/api/v2/urls.py +5 -5
- modoboa/core/api/v2/views.py +6 -2
- modoboa/core/api/v2/viewsets.py +24 -3
- modoboa/core/commands/deploy.py +3 -0
- modoboa/core/commands/templates/settings.py.tpl +12 -11
- modoboa/core/handlers.py +6 -2
- modoboa/core/management/commands/add_allowed_hosts.py +33 -0
- modoboa/core/management/commands/load_initial_data.py +10 -0
- modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
- modoboa/core/tests/test_core.py +24 -0
- modoboa/core/utils.py +3 -0
- modoboa/frontend_dist/assets/AccountAliasForm-C0oHHyZL.js +1 -0
- modoboa/frontend_dist/assets/AccountEditView-lgSJ2Se8.js +1 -0
- modoboa/frontend_dist/assets/AccountLayout-U386K8zy.js +1 -0
- modoboa/frontend_dist/assets/AccountPasswordSubForm-YsaE_cDx.js +1 -0
- modoboa/frontend_dist/assets/AccountView-1jfKFDwb.js +1 -0
- modoboa/frontend_dist/assets/AddressBook-CwN64Zls.js +1 -0
- modoboa/frontend_dist/assets/AdminLayout-Cxm1lggg.js +1 -0
- modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
- modoboa/frontend_dist/assets/AlarmsView-Bcjsicac.js +1 -0
- modoboa/frontend_dist/assets/AliasEditView-k3rVt1tG.js +1 -0
- modoboa/frontend_dist/assets/{AliasRecipientForm-IOae6sjF.js → AliasRecipientForm-IehUzKok.js} +1 -1
- modoboa/frontend_dist/assets/AliasView-DMzA10eD.js +1 -0
- modoboa/frontend_dist/assets/AuditTrailView-5dnGX5El.js +1 -0
- modoboa/frontend_dist/assets/CalendarView-DZONeDA9.js +1 -0
- modoboa/frontend_dist/assets/{ChoiceField-DJ_c78Cm.js → ChoiceField-DnwXRkht.js} +1 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-kghmfNuE.js +1 -0
- modoboa/frontend_dist/assets/ComposeEmailView-DLv3wk1k.js +1 -0
- modoboa/frontend_dist/assets/ConfirmDialog-CcPrCKuI.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-Dvwmicnc.css → ConnectedLayout-Bxh21hcH.css} +1 -1
- modoboa/frontend_dist/assets/ConnectedLayout-CWlBK7Hf.js +1 -0
- modoboa/frontend_dist/assets/CreationForm-CW4lxnPg.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-DXVZMbMo.js +1 -0
- modoboa/frontend_dist/assets/DomainAdminList-C3jcDDc3.js +1 -0
- modoboa/frontend_dist/assets/DomainEditView-ph8AaElX.js +1 -0
- modoboa/frontend_dist/assets/{DomainTransportForm-C2xo0Yd7.js → DomainTransportForm-NCz6Bl-h.js} +1 -1
- modoboa/frontend_dist/assets/DomainView-BgMSSuU-.js +5 -0
- modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
- modoboa/frontend_dist/assets/DomainsView-CEEU9btK.js +1 -0
- modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
- modoboa/frontend_dist/assets/EmailField-DeqDPm5j.js +1 -0
- modoboa/frontend_dist/assets/EmailView-DczVhVO0.js +1 -0
- modoboa/frontend_dist/assets/EmptyLayout-BXgcfMLH.js +1 -0
- modoboa/frontend_dist/assets/FiltersView-nJj_gSCx.js +1 -0
- modoboa/frontend_dist/assets/ForwardEmailView-Bgv3JQb6.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-CJ9umKeO.js → HtmlEditor-BWRdelVw.js} +1 -1
- modoboa/frontend_dist/assets/{IdentitiesView-0ziuQ5s-.css → IdentitiesView-DPrrRMS5.css} +1 -1
- modoboa/frontend_dist/assets/IdentitiesView-Dld9IloZ.js +1 -0
- modoboa/frontend_dist/assets/InformationView-BBWKSX8D.js +1 -0
- modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
- modoboa/frontend_dist/assets/{LoadingData-CYwX3Jpn.js → LoadingData-G57nJ_JV.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-E01qkKn0.js → LoginCallbackView-DjyE2SG_.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-Cy4uFV9h.js → LoginView-CqCCXYLo.js} +1 -1
- modoboa/frontend_dist/assets/{MailboxView-B-aI4XBq.css → MailboxView-CfStlWhk.css} +1 -1
- modoboa/frontend_dist/assets/MailboxView-DRrs9eLO.js +1 -0
- modoboa/frontend_dist/assets/MenuItems-BqIZW5av.js +1 -0
- modoboa/frontend_dist/assets/MessageView-D_6tx_gd.js +1 -0
- modoboa/frontend_dist/assets/MessagesView-BH7JIR03.js +1 -0
- modoboa/frontend_dist/assets/MigrationsView-Cv_So9T-.js +1 -0
- modoboa/frontend_dist/assets/{ParametersForm-BZM0QSvg.js → ParametersForm-3qXttTuQ.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-3Ns04cpQ.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-B5B5Dt6K.js +1 -0
- modoboa/frontend_dist/assets/ProviderEditView-zh7CY832.js +1 -0
- modoboa/frontend_dist/assets/ProviderGeneralForm-BQU7t3ma.js +1 -0
- modoboa/frontend_dist/assets/ProvidersView-CoF_ZkZA.js +1 -0
- modoboa/frontend_dist/assets/QuarantineLayout-CYBsrbJM.js +1 -0
- modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
- modoboa/frontend_dist/assets/QuarantineView-DNvpoycb.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-D1XTcglu.js +1 -0
- modoboa/frontend_dist/assets/ResourcesForm-BW8rUGgZ.js +1 -0
- modoboa/frontend_dist/assets/SelfServiceLayout-DfDHiYeX.js +1 -0
- modoboa/frontend_dist/assets/{SettingsView-BxLJBFY0.js → SettingsView-gQiJ2NVb.js} +2 -2
- modoboa/frontend_dist/assets/StatisticsView-DYalet_q.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart-BZ2htbFk.js +1 -0
- modoboa/frontend_dist/assets/UserLayout-zUtHi-z-.js +1 -0
- modoboa/frontend_dist/assets/VAlert-4r6LxKtg.js +1 -0
- modoboa/frontend_dist/assets/VApp-CX_C7AUN.js +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-DNKmBvyZ.js +1 -0
- modoboa/frontend_dist/assets/VAvatar-DbuoZWmf.js +1 -0
- modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
- modoboa/frontend_dist/assets/VBadge-Bv2nvUmC.js +1 -0
- modoboa/frontend_dist/assets/VCard-DzjUT5OP.js +1 -0
- modoboa/frontend_dist/assets/VCheckbox-dr7UFjl4.js +1 -0
- modoboa/frontend_dist/assets/{VCheckboxBtn-Dt810gWf.js → VCheckboxBtn-CpFdBnTv.js} +1 -1
- modoboa/frontend_dist/assets/VChip-CaQvfmkw.js +1 -0
- modoboa/frontend_dist/assets/VColorPicker-ByGpCW5O.js +1 -0
- modoboa/frontend_dist/assets/{VContainer-DvTbsotR.js → VContainer-74Dnn8Ux.js} +1 -1
- modoboa/frontend_dist/assets/VDataTable-CL7yHvG7.js +1 -0
- modoboa/frontend_dist/assets/VDataTableServer-BqvNcIdw.js +1 -0
- modoboa/frontend_dist/assets/VDataTableVirtual--KsOP8i6.js +1 -0
- modoboa/frontend_dist/assets/{VDialog-Bk6EWNhz.js → VDialog-DmTGCGR0.js} +1 -1
- modoboa/frontend_dist/assets/VExpansionPanels-B7sSTCwd.js +1 -0
- modoboa/frontend_dist/assets/VFileInput-SULIc6F3.js +1 -0
- modoboa/frontend_dist/assets/VForm-DsRLc-sa.js +1 -0
- modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
- modoboa/frontend_dist/assets/VInput-DVKUObZe.js +1 -0
- modoboa/frontend_dist/assets/VMenu-nv0XOgg0.js +1 -0
- modoboa/frontend_dist/assets/VPicker-DnDSWJHJ.js +1 -0
- modoboa/frontend_dist/assets/VProgressCircular-qK6p5X_Y.js +1 -0
- modoboa/frontend_dist/assets/VRadioGroup-CbiPLy0t.js +1 -0
- modoboa/frontend_dist/assets/{VRow-BF35mT1S.js → VRow-DJ0NB63-.js} +1 -1
- modoboa/frontend_dist/assets/VSelect-CxCFMHyF.js +1 -0
- modoboa/frontend_dist/assets/VSelectionControl-C-6A4us5.js +1 -0
- modoboa/frontend_dist/assets/VSheet-DI6SxLnG.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-CoJVmx8k.js +1 -0
- modoboa/frontend_dist/assets/VSwitch-DPnjPQuU.js +1 -0
- modoboa/frontend_dist/assets/VTable-ldTxgQPW.js +1 -0
- modoboa/frontend_dist/assets/VTabs-aS8WSL9I.js +1 -0
- modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
- modoboa/frontend_dist/assets/VTextField-DKbr4H5w.js +1 -0
- modoboa/frontend_dist/assets/VTextarea-BttkFsM4.js +1 -0
- modoboa/frontend_dist/assets/VToolbar-BxX3W2kR.js +1 -0
- modoboa/frontend_dist/assets/VWindowItem-Cvqvdegd.js +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-BT2k6U7q.js +1 -0
- modoboa/frontend_dist/assets/accounts-CC2F0a0c.js +1 -0
- modoboa/frontend_dist/assets/{admin-o-HRGnmT.js → admin-CHCHFGI6.js} +1 -1
- modoboa/frontend_dist/assets/{aliases-DDVeehyg.js → aliases-C9bUD4Ws.js} +1 -1
- modoboa/frontend_dist/assets/amavis-BhzV4rgf.js +1 -0
- modoboa/frontend_dist/assets/amavis-DCVJxuui.js +1 -0
- modoboa/frontend_dist/assets/{contacts-C84DY-Q1.js → contacts-Dxz6eWpf.js} +1 -1
- modoboa/frontend_dist/assets/{domains-Bgn4ixHL.js → domains-C2cornvL.js} +1 -1
- modoboa/frontend_dist/assets/{domains.store-DTE-V7Y1.js → domains.store-BLKRipG8.js} +1 -1
- modoboa/frontend_dist/assets/{filter-CnffiQAW.js → filter-rmxrcjKk.js} +1 -1
- modoboa/frontend_dist/assets/forwardRefs-CpzzjgpX.js +1 -0
- modoboa/frontend_dist/assets/global.store-DndbMXYb.js +1 -0
- modoboa/frontend_dist/assets/{importExport-BlQYb0NO.js → importExport-C3uqrcok.js} +1 -1
- modoboa/frontend_dist/assets/index-LhNzkzAh.js +984 -0
- modoboa/frontend_dist/assets/layout-DbjDe3Wl.js +1 -0
- modoboa/frontend_dist/assets/{layout.store-DkjrAoXt.js → layout.store-Vq5mvIp7.js} +1 -1
- modoboa/frontend_dist/assets/{logos-q8SEyAa4.js → logos-Bvcy0usu.js} +1 -1
- modoboa/frontend_dist/assets/{logs-B7IJ7LBa.js → logs-BuItINky.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-A6iBEYQq.js → parameters-C8IYEP7q.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-BiXS4_6w.js → parameters.store-1cwSP2JP.js} +1 -1
- modoboa/frontend_dist/assets/permissions-DQjAcO9S.js +1 -0
- modoboa/frontend_dist/assets/{ssrBoot-AzTdjPjk.js → ssrBoot-BxIQ9ccA.js} +1 -1
- modoboa/frontend_dist/assets/{tag-BnSYRTcD.js → tag-3cfI1_f7.js} +1 -1
- modoboa/frontend_dist/assets/transports-D4Jk4-AP.js +1 -0
- modoboa/frontend_dist/assets/{webmail-CSH_3l6R.js → webmail-B2IUjaxM.js} +1 -1
- modoboa/frontend_dist/index.html +1 -1
- modoboa/lib/email_utils.py +2 -2
- modoboa/lib/permissions.py +7 -0
- modoboa/lib/test_runners.py +29 -0
- modoboa/lib/tests/__init__.py +5 -1
- modoboa/locale/br/LC_MESSAGES/django.po +87 -75
- modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
- modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
- modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de/LC_MESSAGES/django.po +339 -651
- modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
- modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
- modoboa/locale/en/LC_MESSAGES/django.po +82 -74
- modoboa/locale/es/LC_MESSAGES/django.po +158 -131
- modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
- modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
- modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
- modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
- modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/it/LC_MESSAGES/django.po +148 -122
- modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ja_JP/LC_MESSAGES/django.po +80 -72
- modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
- modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
- modoboa/locale/no/LC_MESSAGES/django.po +82 -74
- modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
- modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
- modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
- modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
- modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
- modoboa/locale/si/LC_MESSAGES/django.po +82 -74
- modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
- modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
- modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
- modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
- modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
- modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
- modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
- modoboa/parameters/api/v2/tests.py +2 -2
- modoboa/parameters/api/v2/viewsets.py +2 -0
- modoboa/policyd/tests.py +2 -0
- modoboa/urls_api_v2.py +6 -0
- modoboa/webmail/lib/imaputils.py +2 -2
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/METADATA +6 -4
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/RECORD +235 -185
- modoboa/frontend_dist/assets/AccountAliasForm-BV6KvTu6.js +0 -1
- modoboa/frontend_dist/assets/AccountEditView-DDOFyfBD.js +0 -1
- modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +0 -1
- modoboa/frontend_dist/assets/AccountPasswordSubForm-D9S6LaeH.js +0 -1
- modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +0 -1
- modoboa/frontend_dist/assets/AddressBook-DCJxL8SU.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +0 -1
- modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
- modoboa/frontend_dist/assets/AlarmsView-C0bqC4PA.js +0 -1
- modoboa/frontend_dist/assets/AliasEditView-DVoWoCGY.js +0 -1
- modoboa/frontend_dist/assets/AliasView-DrONZXOh.js +0 -1
- modoboa/frontend_dist/assets/AuditTrailView-OTkoZaMU.js +0 -1
- modoboa/frontend_dist/assets/CalendarView-CqF4_Ui9.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-DO5_GB3e.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +0 -1
- modoboa/frontend_dist/assets/ConfirmDialog-BBcgdAnO.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +0 -1
- modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +0 -1
- modoboa/frontend_dist/assets/DomainEditView-CQjKwYxl.js +0 -1
- modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +0 -5
- modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +0 -1
- modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
- modoboa/frontend_dist/assets/EmailField-C8umy0EU.js +0 -1
- modoboa/frontend_dist/assets/EmailView-ki7uEQPD.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +0 -1
- modoboa/frontend_dist/assets/FiltersView-FYFZxG4B.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +0 -1
- modoboa/frontend_dist/assets/InformationView-D1h38POt.js +0 -1
- modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
- modoboa/frontend_dist/assets/MailboxView-IlrLWm_H.js +0 -1
- modoboa/frontend_dist/assets/MenuItems-BAtHWzAE.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +0 -1
- modoboa/frontend_dist/assets/MigrationsView-DKNOsVzF.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +0 -1
- modoboa/frontend_dist/assets/ProviderEditView-CyxCWTST.js +0 -1
- modoboa/frontend_dist/assets/ProviderGeneralForm-BYPjNHqB.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +0 -1
- modoboa/frontend_dist/assets/ResourcesForm-CuUvrOdY.js +0 -1
- modoboa/frontend_dist/assets/StatisticsView-BN7QsZMT.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-BMN8BeFZ.js +0 -1
- modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +0 -1
- modoboa/frontend_dist/assets/VAlert-DIQTrRif.js +0 -1
- modoboa/frontend_dist/assets/VApp-CpkYA7js.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-C4IpXyl8.js +0 -1
- modoboa/frontend_dist/assets/VAvatar-Lpb-Dion.js +0 -1
- modoboa/frontend_dist/assets/VCard-er_isjE_.js +0 -1
- modoboa/frontend_dist/assets/VCheckbox-D-u8JXP1.js +0 -1
- modoboa/frontend_dist/assets/VChip-B4iSpj8_.js +0 -1
- modoboa/frontend_dist/assets/VColorPicker-BAjGDsXv.js +0 -1
- modoboa/frontend_dist/assets/VDataTable-4JRjbtgF.js +0 -1
- modoboa/frontend_dist/assets/VDataTableServer-tIDT1m3-.js +0 -1
- modoboa/frontend_dist/assets/VDataTableVirtual-BlnO18u_.js +0 -1
- modoboa/frontend_dist/assets/VExpansionPanels-CwGtXDhr.js +0 -1
- modoboa/frontend_dist/assets/VFileInput-D1_7ZkO_.js +0 -1
- modoboa/frontend_dist/assets/VForm-DAkW4nfy.js +0 -1
- modoboa/frontend_dist/assets/VMenu-BPFJwj2f.js +0 -1
- modoboa/frontend_dist/assets/VPicker-CfT82M8N.js +0 -1
- modoboa/frontend_dist/assets/VProgressCircular-w75-3ogi.js +0 -1
- modoboa/frontend_dist/assets/VRadioGroup-0j6DNC_k.js +0 -1
- modoboa/frontend_dist/assets/VSelect-Cs4ARbAS.js +0 -1
- modoboa/frontend_dist/assets/VSelectionControl-Dg-XyRRS.js +0 -1
- modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +0 -1
- modoboa/frontend_dist/assets/VSwitch-Cs1NQrmk.js +0 -1
- modoboa/frontend_dist/assets/VTable-CNz2SGk4.js +0 -1
- modoboa/frontend_dist/assets/VTabs-B1fyVn4M.js +0 -1
- modoboa/frontend_dist/assets/VTextField-BdyvgvkG.js +0 -1
- modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
- modoboa/frontend_dist/assets/VTextarea-DnOMpe0Q.js +0 -1
- modoboa/frontend_dist/assets/VToolbar-BiCiBxBJ.js +0 -1
- modoboa/frontend_dist/assets/VWindowItem-ChWm_kz3.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +0 -1
- modoboa/frontend_dist/assets/forwardRefs-Dvjn_Xq4.js +0 -1
- modoboa/frontend_dist/assets/global.store-BaiD63EN.js +0 -1
- modoboa/frontend_dist/assets/index-I1VDlN4g.js +0 -984
- modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +0 -1
- modoboa/frontend_dist/assets/permissions-CITHLHVg.js +0 -1
- modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +0 -1
- {modoboa-2.4.11.data → modoboa-2.5.1.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/WHEEL +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/entry_points.txt +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -11,11 +11,10 @@ msgid ""
|
|
|
11
11
|
msgstr ""
|
|
12
12
|
"Project-Id-Version: Modoboa\n"
|
|
13
13
|
"Report-Msgid-Bugs-To: \n"
|
|
14
|
-
"POT-Creation-Date: 2025-
|
|
14
|
+
"POT-Creation-Date: 2025-08-28 09:41+0200\n"
|
|
15
15
|
"PO-Revision-Date: 2018-11-01 16:31+0000\n"
|
|
16
16
|
"Last-Translator: marcotrevisan <mrctrevisan@yahoo.it>\n"
|
|
17
|
-
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
|
|
18
|
-
"it/)\n"
|
|
17
|
+
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/it/)\n"
|
|
19
18
|
"Language: it\n"
|
|
20
19
|
"MIME-Version: 1.0\n"
|
|
21
20
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
@@ -36,71 +35,72 @@ msgstr ""
|
|
|
36
35
|
"Spazio massimo predefinito in MB applicato alle caselle di posta. Un valore "
|
|
37
36
|
"0 indica nessun limite."
|
|
38
37
|
|
|
39
|
-
#: admin/api/v1/serializers.py:
|
|
38
|
+
#: admin/api/v1/serializers.py:94
|
|
40
39
|
#, fuzzy
|
|
41
40
|
msgid "domain alias with this name already exists"
|
|
42
41
|
msgstr "Un alias con questo nome esiste già"
|
|
43
42
|
|
|
44
|
-
#: admin/api/v1/serializers.py:
|
|
43
|
+
#: admin/api/v1/serializers.py:104
|
|
45
44
|
msgid "No authorized MX record found for this domain"
|
|
46
45
|
msgstr "Non è stato trovato alcun record MX autorizzato per questo dominio"
|
|
47
46
|
|
|
48
|
-
#: admin/api/v1/serializers.py:
|
|
47
|
+
#: admin/api/v1/serializers.py:122
|
|
49
48
|
msgid "Cannot be greater than domain quota"
|
|
50
49
|
msgstr ""
|
|
51
50
|
"Non può essere maggiore dello spazio massimo definito a livello di dominio"
|
|
52
51
|
|
|
53
|
-
#: admin/api/v1/serializers.py:
|
|
54
|
-
#: admin/api/v2/serializers.py:
|
|
52
|
+
#: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
|
|
53
|
+
#: admin/api/v2/serializers.py:564 admin/models/alias.py:44
|
|
55
54
|
msgid "Permission denied."
|
|
56
55
|
msgstr "Permesso negato."
|
|
57
56
|
|
|
58
|
-
#: admin/api/v1/serializers.py:
|
|
59
|
-
#: admin/api/v2/serializers.py:
|
|
60
|
-
#: core/api/v2/serializers.py:
|
|
57
|
+
#: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
|
|
58
|
+
#: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
|
|
59
|
+
#: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
|
|
61
60
|
#: transport/backends.py:40
|
|
62
61
|
msgid "This field is required"
|
|
63
62
|
msgstr "Questo campo è obbligatorio"
|
|
64
63
|
|
|
65
|
-
#: admin/api/v1/serializers.py:
|
|
64
|
+
#: admin/api/v1/serializers.py:243
|
|
66
65
|
msgid ""
|
|
67
66
|
"List of administered domains (resellers and domain administrators only)."
|
|
68
67
|
msgstr ""
|
|
69
68
|
"Lista dei domini amministrati (solo per rivenditori e amministratori di "
|
|
70
69
|
"dominio)."
|
|
71
70
|
|
|
72
|
-
#: admin/api/v1/serializers.py:
|
|
71
|
+
#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
|
|
73
72
|
msgid "Not allowed for this role."
|
|
74
73
|
msgstr "Non consentito per questo ruolo."
|
|
75
74
|
|
|
76
|
-
#: admin/api/v1/serializers.py:
|
|
75
|
+
#: admin/api/v1/serializers.py:355
|
|
77
76
|
msgid "Must be equal to mailbox full_address"
|
|
78
77
|
msgstr "Deve essere uguale a full_address della casella di posta"
|
|
79
78
|
|
|
80
|
-
#: admin/api/v1/serializers.py:
|
|
79
|
+
#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
|
|
81
80
|
#: calendars/serializers.py:175 calendars/serializers.py:177
|
|
81
|
+
#: pdfcredentials/api/v2/serializers.py:91
|
|
82
82
|
msgid "This field is required."
|
|
83
83
|
msgstr "Questo campo è obbligatorio."
|
|
84
84
|
|
|
85
|
-
#: admin/api/v1/serializers.py:
|
|
85
|
+
#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
|
|
86
86
|
msgid "Local domain {} does not exist"
|
|
87
87
|
msgstr "Il dominio locale {} non esiste"
|
|
88
88
|
|
|
89
|
-
#: admin/api/v1/serializers.py:
|
|
89
|
+
#: admin/api/v1/serializers.py:499
|
|
90
90
|
msgid "A list of recipient"
|
|
91
91
|
msgstr "Una lista di destinatari"
|
|
92
92
|
|
|
93
|
-
#: admin/api/v1/serializers.py:
|
|
93
|
+
#: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
|
|
94
94
|
#, fuzzy
|
|
95
95
|
#| msgid "User '%s' already exists"
|
|
96
96
|
msgid "This alias already exists"
|
|
97
97
|
msgstr "L'utente '%s' esiste già"
|
|
98
98
|
|
|
99
|
-
#: admin/api/v1/serializers.py:
|
|
99
|
+
#: admin/api/v1/serializers.py:551
|
|
100
100
|
msgid "You don't have access to this domain."
|
|
101
101
|
msgstr "Non hai accesso a questo dominio"
|
|
102
102
|
|
|
103
|
-
#: admin/api/v1/serializers.py:
|
|
103
|
+
#: admin/api/v1/serializers.py:560
|
|
104
104
|
msgid "You don't have access to this mailbox."
|
|
105
105
|
msgstr "Non hai accesso a questa casella di posta."
|
|
106
106
|
|
|
@@ -108,58 +108,58 @@ msgstr "Non hai accesso a questa casella di posta."
|
|
|
108
108
|
msgid "Here is your new Modoboa password: {}"
|
|
109
109
|
msgstr ""
|
|
110
110
|
|
|
111
|
-
#: admin/api/v2/serializers.py:
|
|
111
|
+
#: admin/api/v2/serializers.py:82
|
|
112
112
|
msgid "DKIM keys storage directory not configured"
|
|
113
113
|
msgstr "Cartella di salvataggio per le chiavi DKIM non configurata."
|
|
114
114
|
|
|
115
|
-
#: admin/api/v2/serializers.py:
|
|
115
|
+
#: admin/api/v2/serializers.py:94
|
|
116
116
|
msgid "This field is valid when type is relaydomain"
|
|
117
117
|
msgstr ""
|
|
118
118
|
|
|
119
|
-
#: admin/api/v2/serializers.py:
|
|
119
|
+
#: admin/api/v2/serializers.py:101
|
|
120
120
|
msgid "You can't define an unlimited quota."
|
|
121
121
|
msgstr "Non puoi definire uno spazio illimitato."
|
|
122
122
|
|
|
123
|
-
#: admin/api/v2/serializers.py:
|
|
123
|
+
#: admin/api/v2/serializers.py:135
|
|
124
124
|
#, python-format
|
|
125
125
|
msgid "User '%s' already exists"
|
|
126
126
|
msgstr "L'utente '%s' esiste già"
|
|
127
127
|
|
|
128
|
-
#: admin/api/v2/serializers.py:
|
|
128
|
+
#: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
|
|
129
129
|
msgid "Must be a positive integer"
|
|
130
130
|
msgstr "Dev'essere un intero positivo"
|
|
131
131
|
|
|
132
|
-
#: admin/api/v2/serializers.py:
|
|
132
|
+
#: admin/api/v2/serializers.py:265
|
|
133
133
|
msgid "openssl not found, please make sure it is installed."
|
|
134
134
|
msgstr "openssl non trovato, assicurarsi che sia installato."
|
|
135
135
|
|
|
136
|
-
#: admin/api/v2/serializers.py:
|
|
136
|
+
#: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
|
|
137
137
|
msgid "Directory not found."
|
|
138
138
|
msgstr "Cartella non trovata."
|
|
139
139
|
|
|
140
|
-
#: admin/api/v2/serializers.py:
|
|
140
|
+
#: admin/api/v2/serializers.py:279
|
|
141
141
|
msgid "This field only allows valid IP addresses (or networks)"
|
|
142
142
|
msgstr ""
|
|
143
143
|
|
|
144
|
-
#: admin/api/v2/serializers.py:
|
|
144
|
+
#: admin/api/v2/serializers.py:292
|
|
145
145
|
msgid "Please disable imap migration before disabling this option."
|
|
146
146
|
msgstr ""
|
|
147
147
|
|
|
148
|
-
#: admin/api/v2/serializers.py:
|
|
148
|
+
#: admin/api/v2/serializers.py:305
|
|
149
149
|
msgid "Define at least one authorized network / address"
|
|
150
150
|
msgstr "Definire almeno una rete / indirizzo autorizzato"
|
|
151
151
|
|
|
152
|
-
#: admin/api/v2/serializers.py:
|
|
152
|
+
#: admin/api/v2/serializers.py:581
|
|
153
153
|
msgid "The left part of an email address can't be more than 64 characters."
|
|
154
154
|
msgstr ""
|
|
155
155
|
|
|
156
|
-
#: admin/api/v2/serializers.py:
|
|
156
|
+
#: admin/api/v2/serializers.py:603
|
|
157
157
|
#, fuzzy
|
|
158
158
|
#| msgid "A mailbox is required"
|
|
159
159
|
msgid "A mailbox is required to create aliases."
|
|
160
160
|
msgstr "É necessaria una casella"
|
|
161
161
|
|
|
162
|
-
#: admin/api/v2/serializers.py:
|
|
162
|
+
#: admin/api/v2/serializers.py:772
|
|
163
163
|
#, fuzzy
|
|
164
164
|
#| msgid "Unknown"
|
|
165
165
|
msgid "Unknown status"
|
|
@@ -173,14 +173,6 @@ msgstr "Non hai accesso a questo dominio"
|
|
|
173
173
|
msgid "You can't delete your own domain"
|
|
174
174
|
msgstr "Non puoi cancellare il tuo dominio"
|
|
175
175
|
|
|
176
|
-
#: admin/api/v2/viewsets.py:407
|
|
177
|
-
msgid "No alarm ID provided"
|
|
178
|
-
msgstr ""
|
|
179
|
-
|
|
180
|
-
#: admin/api/v2/viewsets.py:411
|
|
181
|
-
msgid "Received invalid alarm id(s)"
|
|
182
|
-
msgstr ""
|
|
183
|
-
|
|
184
176
|
#: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
|
|
185
177
|
msgid "Domains"
|
|
186
178
|
msgstr "Domini"
|
|
@@ -199,8 +191,8 @@ msgstr "MX validi"
|
|
|
199
191
|
|
|
200
192
|
#: admin/app_settings.py:37
|
|
201
193
|
msgid ""
|
|
202
|
-
"A list of IP or network address every MX record should match. A warning will
|
|
203
|
-
"be sent if a record does not respect it."
|
|
194
|
+
"A list of IP or network address every MX record should match. A warning will"
|
|
195
|
+
" be sent if a record does not respect it."
|
|
204
196
|
msgstr ""
|
|
205
197
|
"Una lista di indirizzi IP o host a cui ciascun record MX dovrebbe "
|
|
206
198
|
"appartenere. Verrà inviato un avviso se un record non la rispetta. "
|
|
@@ -302,8 +294,8 @@ msgid ""
|
|
|
302
294
|
"world."
|
|
303
295
|
msgstr ""
|
|
304
296
|
"Percorso assoluto della cartella dove le chiavi private DKIM verranno "
|
|
305
|
-
"salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e
|
|
306
|
-
"che non sia leggibile da altri."
|
|
297
|
+
"salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e"
|
|
298
|
+
" che non sia leggibile da altri."
|
|
307
299
|
|
|
308
300
|
#: admin/app_settings.py:137
|
|
309
301
|
msgid "Default DKIM key length"
|
|
@@ -396,7 +388,8 @@ msgid "Automatic domain/mailbox creation"
|
|
|
396
388
|
msgstr "Creazione automatica del domini/casella di posta elettronica"
|
|
397
389
|
|
|
398
390
|
#: admin/app_settings.py:221
|
|
399
|
-
msgid "
|
|
391
|
+
msgid ""
|
|
392
|
+
"Create a domain and a mailbox when an account is automatically created."
|
|
400
393
|
msgstr ""
|
|
401
394
|
"Crea un dominio ed una casella di posta elettronica quando si crea un "
|
|
402
395
|
"account utente"
|
|
@@ -410,7 +403,7 @@ msgid "Create an alias using the old address when a mailbox is renamed."
|
|
|
410
403
|
msgstr ""
|
|
411
404
|
"Crea un alias con il vecchio indirizzo quando una mailbox viene rinominata."
|
|
412
405
|
|
|
413
|
-
#: admin/app_settings.py:287 core/api/v2/viewsets.py:
|
|
406
|
+
#: admin/app_settings.py:287 core/api/v2/viewsets.py:174
|
|
414
407
|
msgid "Administration"
|
|
415
408
|
msgstr "Amministrazione"
|
|
416
409
|
|
|
@@ -441,7 +434,7 @@ msgstr "alias del dominio"
|
|
|
441
434
|
msgid "Account import failed (%s): domain does not exist"
|
|
442
435
|
msgstr "Importazione dell'account fallito (%s): il dominio non esiste"
|
|
443
436
|
|
|
444
|
-
#: admin/handlers.py:242 admin/models/mailbox.py:
|
|
437
|
+
#: admin/handlers.py:242 admin/models/mailbox.py:342
|
|
445
438
|
msgid "Mailbox {} already exists"
|
|
446
439
|
msgstr "La La casella di posta {} esiste già"
|
|
447
440
|
|
|
@@ -479,8 +472,8 @@ msgstr "Nessun DNS server funzionante trovato"
|
|
|
479
472
|
#, python-format
|
|
480
473
|
msgid "DNS resolution timeout, unable to query %s at the moment"
|
|
481
474
|
msgstr ""
|
|
482
|
-
"Timeout nella risoluzione DNS del nome, problema momentaneo nell'interrogare
|
|
483
|
-
"%s "
|
|
475
|
+
"Timeout nella risoluzione DNS del nome, problema momentaneo nell'interrogare"
|
|
476
|
+
" %s "
|
|
484
477
|
|
|
485
478
|
#: admin/lib.py:236
|
|
486
479
|
msgid "DNS name is too long: {}"
|
|
@@ -725,7 +718,7 @@ msgstr "È richiesta una quota"
|
|
|
725
718
|
msgid "{}: domain quota exceeded"
|
|
726
719
|
msgstr "Superato lo spazio massimo per il dominio"
|
|
727
720
|
|
|
728
|
-
#: admin/models/mailbox.py:
|
|
721
|
+
#: admin/models/mailbox.py:310
|
|
729
722
|
msgid "Domain does not exist"
|
|
730
723
|
msgstr "Il dominio non esiste"
|
|
731
724
|
|
|
@@ -795,7 +788,8 @@ msgstr "Generale"
|
|
|
795
788
|
|
|
796
789
|
#: autoreply/app_settings.py:18
|
|
797
790
|
#, fuzzy
|
|
798
|
-
#| msgid "
|
|
791
|
+
#| msgid ""
|
|
792
|
+
#| "Timeout in seconds between two auto-replies to the same recipient"
|
|
799
793
|
msgid "Period between two auto-replies"
|
|
800
794
|
msgstr ""
|
|
801
795
|
"Tempo massimo in secondi tra due risposte automatiche al medesimo "
|
|
@@ -803,7 +797,8 @@ msgstr ""
|
|
|
803
797
|
|
|
804
798
|
#: autoreply/app_settings.py:20
|
|
805
799
|
#, fuzzy
|
|
806
|
-
#| msgid "
|
|
800
|
+
#| msgid ""
|
|
801
|
+
#| "Timeout in seconds between two auto-replies to the same recipient"
|
|
807
802
|
msgid ""
|
|
808
803
|
"Number of days to wait before sending a new auto-reply to the same recipient"
|
|
809
804
|
msgstr ""
|
|
@@ -913,7 +908,7 @@ msgid ""
|
|
|
913
908
|
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
|
|
914
909
|
msgstr ""
|
|
915
910
|
|
|
916
|
-
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:
|
|
911
|
+
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
|
|
917
912
|
msgid "Calendars"
|
|
918
913
|
msgstr ""
|
|
919
914
|
|
|
@@ -953,7 +948,7 @@ msgstr "Frequenza di sincronizzazione"
|
|
|
953
948
|
msgid "Interval in seconds between 2 synchronization requests"
|
|
954
949
|
msgstr "Intervallo in secondi tra 2 richieste di sincronizzazione"
|
|
955
950
|
|
|
956
|
-
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:
|
|
951
|
+
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
|
|
957
952
|
#, fuzzy
|
|
958
953
|
#| msgid "Domains"
|
|
959
954
|
msgid "Contacts"
|
|
@@ -1007,12 +1002,12 @@ msgstr "Riga non valida"
|
|
|
1007
1002
|
msgid "2FA is already enabled"
|
|
1008
1003
|
msgstr ""
|
|
1009
1004
|
|
|
1010
|
-
#: core/api/v1/serializers.py:
|
|
1005
|
+
#: core/api/v1/serializers.py:86
|
|
1011
1006
|
#, python-format
|
|
1012
|
-
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
|
|
1007
|
+
msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
|
|
1013
1008
|
msgstr ""
|
|
1014
1009
|
|
|
1015
|
-
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:
|
|
1010
|
+
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
|
|
1016
1011
|
#, fuzzy
|
|
1017
1012
|
#| msgid "Old password"
|
|
1018
1013
|
msgid "Invalid password"
|
|
@@ -1026,44 +1021,45 @@ msgstr ""
|
|
|
1026
1021
|
msgid "Local"
|
|
1027
1022
|
msgstr "Locale"
|
|
1028
1023
|
|
|
1029
|
-
#: core/api/v2/serializers.py:
|
|
1024
|
+
#: core/api/v2/serializers.py:194 core/app_settings.py:17
|
|
1030
1025
|
msgid "User profile"
|
|
1031
1026
|
msgstr "Profilo utente"
|
|
1032
1027
|
|
|
1033
|
-
#: core/api/v2/serializers.py:
|
|
1034
|
-
#: core/api/v2/serializers.py:
|
|
1028
|
+
#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
|
|
1029
|
+
#: core/api/v2/serializers.py:228
|
|
1035
1030
|
msgid "Invalid syntax"
|
|
1036
1031
|
msgstr "Sintassi errata"
|
|
1037
1032
|
|
|
1038
|
-
#: core/api/v2/serializers.py:
|
|
1033
|
+
#: core/api/v2/serializers.py:233
|
|
1039
1034
|
msgid "Invalid rounds number"
|
|
1040
1035
|
msgstr "Numero di cicli non valido"
|
|
1041
1036
|
|
|
1042
|
-
#: core/api/v2/serializers.py:
|
|
1037
|
+
#: core/api/v2/serializers.py:433 core/forms.py:81
|
|
1043
1038
|
msgid "This code is invalid"
|
|
1044
1039
|
msgstr ""
|
|
1045
1040
|
|
|
1046
|
-
#: core/api/v2/serializers.py:
|
|
1041
|
+
#: core/api/v2/serializers.py:503 core/views/auth.py:194
|
|
1042
|
+
#: core/views/auth.py:247
|
|
1047
1043
|
msgid "Please use the following code to recover your Modoboa password: {}"
|
|
1048
1044
|
msgstr ""
|
|
1049
1045
|
|
|
1050
|
-
#: core/api/v2/viewsets.py:
|
|
1046
|
+
#: core/api/v2/viewsets.py:176
|
|
1051
1047
|
#, fuzzy
|
|
1052
1048
|
#| msgid "Administration"
|
|
1053
1049
|
msgid "Administration console"
|
|
1054
1050
|
msgstr "Amministrazione"
|
|
1055
1051
|
|
|
1056
|
-
#: core/api/v2/viewsets.py:
|
|
1057
|
-
msgid "Calendar"
|
|
1058
|
-
msgstr ""
|
|
1059
|
-
|
|
1060
|
-
#: core/api/v2/viewsets.py:181
|
|
1052
|
+
#: core/api/v2/viewsets.py:187
|
|
1061
1053
|
#, fuzzy
|
|
1062
1054
|
#| msgid "Address"
|
|
1063
1055
|
msgid "Address book"
|
|
1064
1056
|
msgstr "Rubrica"
|
|
1065
1057
|
|
|
1066
|
-
#: core/api/v2/viewsets.py:
|
|
1058
|
+
#: core/api/v2/viewsets.py:197
|
|
1059
|
+
msgid "Calendar"
|
|
1060
|
+
msgstr ""
|
|
1061
|
+
|
|
1062
|
+
#: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
|
|
1067
1063
|
#: webmail/app_settings.py:258 webmail/app_settings.py:265
|
|
1068
1064
|
#, fuzzy
|
|
1069
1065
|
#| msgid "E-mail"
|
|
@@ -1258,8 +1254,8 @@ msgstr "Gruppi degli amministratori"
|
|
|
1258
1254
|
|
|
1259
1255
|
#: core/app_settings.py:239
|
|
1260
1256
|
msgid ""
|
|
1261
|
-
"Members of those LDAP Posix groups will be created as domain administrators.
|
|
1262
|
-
"Use ';' characters to separate groups."
|
|
1257
|
+
"Members of those LDAP Posix groups will be created as domain administrators."
|
|
1258
|
+
" Use ';' characters to separate groups."
|
|
1263
1259
|
msgstr ""
|
|
1264
1260
|
"Gli appartenenti a questi gruppi LDAP Posix avranno i privilegi di "
|
|
1265
1261
|
"amministratori di dominio. Utilizza il carattere ';' per separare valori "
|
|
@@ -1468,13 +1464,15 @@ msgstr "Mostra RSS feed custom a rivenditori e amministratori di dominio"
|
|
|
1468
1464
|
|
|
1469
1465
|
#: core/app_settings.py:506
|
|
1470
1466
|
#, fuzzy
|
|
1471
|
-
#| msgid "
|
|
1467
|
+
#| msgid ""
|
|
1468
|
+
#| "Display custom RSS feed to resellers and domain administrators"
|
|
1472
1469
|
msgid "Display custom RSS feed to super admins"
|
|
1473
1470
|
msgstr "Mostra RSS feed custom a rivenditori e amministratori di dominio"
|
|
1474
1471
|
|
|
1475
1472
|
#: core/app_settings.py:509
|
|
1476
1473
|
#, fuzzy
|
|
1477
|
-
#| msgid "
|
|
1474
|
+
#| msgid ""
|
|
1475
|
+
#| "Display custom RSS feed to resellers and domain administrators"
|
|
1478
1476
|
msgid "Display custom RSS feed also to super administrators"
|
|
1479
1477
|
msgstr "Mostra RSS feed custom a rivenditori e amministratori di dominio"
|
|
1480
1478
|
|
|
@@ -1594,8 +1592,8 @@ msgstr "Soglia account inattivo"
|
|
|
1594
1592
|
|
|
1595
1593
|
#: core/app_settings.py:686
|
|
1596
1594
|
msgid ""
|
|
1597
|
-
"Allow the administrator to set a threshold (in days) beyond which an account
|
|
1598
|
-
"is considered inactive if the user hasn't logged in"
|
|
1595
|
+
"Allow the administrator to set a threshold (in days) beyond which an account"
|
|
1596
|
+
" is considered inactive if the user hasn't logged in"
|
|
1599
1597
|
msgstr ""
|
|
1600
1598
|
|
|
1601
1599
|
#: core/app_settings.py:695
|
|
@@ -1604,8 +1602,8 @@ msgstr "Soglia account inattivo"
|
|
|
1604
1602
|
|
|
1605
1603
|
#: core/app_settings.py:698
|
|
1606
1604
|
msgid ""
|
|
1607
|
-
"An account with a last login date greater than this threshold (in days) will
|
|
1608
|
-
"be considered as inactive"
|
|
1605
|
+
"An account with a last login date greater than this threshold (in days) will"
|
|
1606
|
+
" be considered as inactive"
|
|
1609
1607
|
msgstr ""
|
|
1610
1608
|
"Un account con una data di ultimo accesso più vecchia di questa soglia (in "
|
|
1611
1609
|
"giorni) verrà considerato inattivo"
|
|
@@ -1626,19 +1624,27 @@ msgstr "Età massima dei log"
|
|
|
1626
1624
|
msgid "The maximum age in days of a log record"
|
|
1627
1625
|
msgstr "La persistenza massima in giorni dei log"
|
|
1628
1626
|
|
|
1629
|
-
#: core/app_settings.py:
|
|
1627
|
+
#: core/app_settings.py:727
|
|
1628
|
+
msgid "Retention time in message history"
|
|
1629
|
+
msgstr ""
|
|
1630
|
+
|
|
1631
|
+
#: core/app_settings.py:730
|
|
1632
|
+
msgid "Retention time (in days) of a message in the message history section"
|
|
1633
|
+
msgstr ""
|
|
1634
|
+
|
|
1635
|
+
#: core/app_settings.py:737
|
|
1630
1636
|
msgid "Items per page"
|
|
1631
1637
|
msgstr "Elementi per pagina"
|
|
1632
1638
|
|
|
1633
|
-
#: core/app_settings.py:
|
|
1639
|
+
#: core/app_settings.py:739
|
|
1634
1640
|
msgid "Number of displayed items per page"
|
|
1635
1641
|
msgstr "Numero degli elementi visualizzati in ciascuna pagina"
|
|
1636
1642
|
|
|
1637
|
-
#: core/app_settings.py:
|
|
1643
|
+
#: core/app_settings.py:746
|
|
1638
1644
|
msgid "Default top redirection"
|
|
1639
1645
|
msgstr "Reindirizzamento principale predefinito"
|
|
1640
1646
|
|
|
1641
|
-
#: core/app_settings.py:
|
|
1647
|
+
#: core/app_settings.py:748
|
|
1642
1648
|
msgid "The default redirection used when no application is specified"
|
|
1643
1649
|
msgstr ""
|
|
1644
1650
|
"Redirezione predefinita utilizzata quando non è specificata alcuna "
|
|
@@ -1673,8 +1679,9 @@ msgstr ""
|
|
|
1673
1679
|
|
|
1674
1680
|
#: core/checks.py:34
|
|
1675
1681
|
msgid ""
|
|
1676
|
-
"Visit :
|
|
1677
|
-
"html#dovecot-
|
|
1682
|
+
"Visit : "
|
|
1683
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
|
|
1684
|
+
"oauth2"
|
|
1678
1685
|
msgstr ""
|
|
1679
1686
|
|
|
1680
1687
|
#: core/checks.py:41
|
|
@@ -1685,8 +1692,9 @@ msgstr ""
|
|
|
1685
1692
|
|
|
1686
1693
|
#: core/checks.py:45
|
|
1687
1694
|
msgid ""
|
|
1688
|
-
"Visit :
|
|
1689
|
-
"radicale.html#radicale-
|
|
1695
|
+
"Visit : "
|
|
1696
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
|
|
1697
|
+
"oauth2"
|
|
1690
1698
|
msgstr ""
|
|
1691
1699
|
|
|
1692
1700
|
#: core/constants.py:6
|
|
@@ -1876,7 +1884,8 @@ msgstr[1] "La password deve contenere almeno {} caratteri speciali."
|
|
|
1876
1884
|
#: core/password_validation.py:70
|
|
1877
1885
|
msgid "Your password must contain a combination of different character types."
|
|
1878
1886
|
msgstr ""
|
|
1879
|
-
"La tua password deve contenere una combinazione di diversi tipi di
|
|
1887
|
+
"La tua password deve contenere una combinazione di diversi tipi di "
|
|
1888
|
+
"carattere."
|
|
1880
1889
|
|
|
1881
1890
|
#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102
|
|
1882
1891
|
msgid "API endpoint"
|
|
@@ -1996,7 +2005,7 @@ msgstr "Nessuno"
|
|
|
1996
2005
|
|
|
1997
2006
|
#: dmarc/models.py:11
|
|
1998
2007
|
msgid "Quarantine"
|
|
1999
|
-
msgstr "
|
|
2008
|
+
msgstr "Quarantena"
|
|
2000
2009
|
|
|
2001
2010
|
#: dmarc/models.py:12
|
|
2002
2011
|
msgid "Reject"
|
|
@@ -2185,8 +2194,8 @@ msgstr ""
|
|
|
2185
2194
|
#: imap_migration/app_settings.py:76
|
|
2186
2195
|
msgid ""
|
|
2187
2196
|
"A comma seperated list of folders to explicitly include in sync even if "
|
|
2188
|
-
"filtered by the Folder Filter Exclusions. Example: debian.user,
|
|
2189
|
-
"personal "
|
|
2197
|
+
"filtered by the Folder Filter Exclusions. Example: debian.user, "
|
|
2198
|
+
"debian.personal "
|
|
2190
2199
|
msgstr ""
|
|
2191
2200
|
|
|
2192
2201
|
#: imap_migration/apps.py:20
|
|
@@ -2195,12 +2204,6 @@ msgstr ""
|
|
|
2195
2204
|
msgid "IMAP Migration"
|
|
2196
2205
|
msgstr "Migrazione IMAP"
|
|
2197
2206
|
|
|
2198
|
-
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
|
|
2199
|
-
#, fuzzy, python-brace-format
|
|
2200
|
-
#| msgid "Connection to IMAP server failed: %s"
|
|
2201
|
-
msgid "Connection to IMAP server failed: {error}"
|
|
2202
|
-
msgstr "Connessione al server IMAP fallita: %s"
|
|
2203
|
-
|
|
2204
2207
|
#: imap_migration/checks.py:12
|
|
2205
2208
|
msgid ""
|
|
2206
2209
|
"Automatic domain/mailbox creation is disabled which means IMAP "
|
|
@@ -2291,8 +2294,8 @@ msgid ""
|
|
|
2291
2294
|
"Maximum number of allowed domains for a new administrator. (0 to deny any "
|
|
2292
2295
|
"creation, -1 to allow unlimited creations)"
|
|
2293
2296
|
msgstr ""
|
|
2294
|
-
"Il numero massimo di domini per nuovi amministratori. (0 per disabilitare la
|
|
2295
|
-
"creazione, -1 per permettere la creazione illimitata)"
|
|
2297
|
+
"Il numero massimo di domini per nuovi amministratori. (0 per disabilitare la"
|
|
2298
|
+
" creazione, -1 per permettere la creazione illimitata)"
|
|
2296
2299
|
|
|
2297
2300
|
#: limits/app_settings.py:49 limits/app_settings.py:123 limits/constants.py:22
|
|
2298
2301
|
#: limits/constants.py:76
|
|
@@ -2301,8 +2304,8 @@ msgstr "Alias del dominio"
|
|
|
2301
2304
|
|
|
2302
2305
|
#: limits/app_settings.py:52
|
|
2303
2306
|
msgid ""
|
|
2304
|
-
"Maximum number of allowed domain aliases for a new administrator. (0 to deny
|
|
2305
|
-
"any creation, -1 to allow unlimited creations)"
|
|
2307
|
+
"Maximum number of allowed domain aliases for a new administrator. (0 to deny"
|
|
2308
|
+
" any creation, -1 to allow unlimited creations)"
|
|
2306
2309
|
msgstr ""
|
|
2307
2310
|
"Il numero massimo di alias per nuovi amministratori. (0 per disabilitare la "
|
|
2308
2311
|
"creazione, -1 per permettere la creazione illimitata)"
|
|
@@ -2354,11 +2357,11 @@ msgstr "Abilita o disabilita i limiti per dominio"
|
|
|
2354
2357
|
|
|
2355
2358
|
#: limits/app_settings.py:114
|
|
2356
2359
|
msgid ""
|
|
2357
|
-
"Maximum number of allowed domain administrators for a new domain. (0 to deny
|
|
2358
|
-
"any creation, -1 to allow unlimited creations)"
|
|
2360
|
+
"Maximum number of allowed domain administrators for a new domain. (0 to deny"
|
|
2361
|
+
" any creation, -1 to allow unlimited creations)"
|
|
2359
2362
|
msgstr ""
|
|
2360
|
-
"Numero massimo di amministratori di dominio consentiti per un nuovo dominio.
|
|
2361
|
-
"(0 per negare qualunque creazione, -1 per permetterne senza limiti)"
|
|
2363
|
+
"Numero massimo di amministratori di dominio consentiti per un nuovo dominio."
|
|
2364
|
+
" (0 per negare qualunque creazione, -1 per permetterne senza limiti)"
|
|
2362
2365
|
|
|
2363
2366
|
#: limits/app_settings.py:126
|
|
2364
2367
|
msgid ""
|
|
@@ -2378,8 +2381,8 @@ msgstr ""
|
|
|
2378
2381
|
|
|
2379
2382
|
#: limits/app_settings.py:149
|
|
2380
2383
|
msgid ""
|
|
2381
|
-
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,
|
|
2382
|
-
"-1 to allow unlimited creations)"
|
|
2384
|
+
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
|
|
2385
|
+
" -1 to allow unlimited creations)"
|
|
2383
2386
|
msgstr ""
|
|
2384
2387
|
"Numero massimo di alias consentiti per un nuovo dominio. (0 per negare "
|
|
2385
2388
|
"qualunque creazione, -1 per permetterne senza limiti)"
|
|
@@ -2559,13 +2562,13 @@ msgstr ""
|
|
|
2559
2562
|
msgid "Personal account information"
|
|
2560
2563
|
msgstr "Informazioni Personali"
|
|
2561
2564
|
|
|
2562
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2565
|
+
#: pdfcredentials/api/v2/serializers.py:86
|
|
2563
2566
|
#, fuzzy
|
|
2564
2567
|
#| msgid "Directory not found."
|
|
2565
2568
|
msgid "Directory is not writable"
|
|
2566
2569
|
msgstr "Cartella non trovata."
|
|
2567
2570
|
|
|
2568
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2571
|
+
#: pdfcredentials/api/v2/serializers.py:114
|
|
2569
2572
|
msgid "No document available for this user"
|
|
2570
2573
|
msgstr "Non ci sono documenti disponibili er questo utente"
|
|
2571
2574
|
|
|
@@ -2619,8 +2622,8 @@ msgid ""
|
|
|
2619
2622
|
"new document will be created each time a password is updated."
|
|
2620
2623
|
msgstr ""
|
|
2621
2624
|
"Generare un nuovo documento solo quando si crea un nuovo account. Se "
|
|
2622
|
-
"impostato su no , un nuovo documento verrà creato ogni volta che la password
|
|
2623
|
-
"viene aggiornata."
|
|
2625
|
+
"impostato su no , un nuovo documento verrà creato ogni volta che la password"
|
|
2626
|
+
" viene aggiornata."
|
|
2624
2627
|
|
|
2625
2628
|
#: pdfcredentials/app_settings.py:84
|
|
2626
2629
|
msgid "Customization options"
|
|
@@ -2659,8 +2662,8 @@ msgid ""
|
|
|
2659
2662
|
"Include required SMTP and IMAP connection information to configure a mail "
|
|
2660
2663
|
"client, a tablet or a phone"
|
|
2661
2664
|
msgstr ""
|
|
2662
|
-
"Includi le informazioni di connessione SMTP e IMAP richieste per configurare
|
|
2663
|
-
"un client di posta, un tablet o telefono"
|
|
2665
|
+
"Includi le informazioni di connessione SMTP e IMAP richieste per configurare"
|
|
2666
|
+
" un client di posta, un tablet o telefono"
|
|
2664
2667
|
|
|
2665
2668
|
#: pdfcredentials/app_settings.py:123 pdfcredentials/documents.py:133
|
|
2666
2669
|
msgid "SMTP server address"
|
|
@@ -2777,7 +2780,8 @@ msgstr "Credenziali PDF"
|
|
|
2777
2780
|
|
|
2778
2781
|
#: pdfcredentials/lib.py:29
|
|
2779
2782
|
#, fuzzy
|
|
2780
|
-
#| msgid "
|
|
2783
|
+
#| msgid ""
|
|
2784
|
+
#| "Failed to create the directory that will contain PDF documents (%s)"
|
|
2781
2785
|
msgid "Can't write to selected directory to store PDF documents"
|
|
2782
2786
|
msgstr "Impossibile creare la cartella che conterrà i documenti PDF (%s)"
|
|
2783
2787
|
|
|
@@ -2855,8 +2859,8 @@ msgstr ""
|
|
|
2855
2859
|
|
|
2856
2860
|
#: rspamd/app_settings.py:21
|
|
2857
2861
|
msgid ""
|
|
2858
|
-
"Absolute path of the file which contains paths to DKIM private keys. Must be
|
|
2859
|
-
"readable by _rspamd group or user."
|
|
2862
|
+
"Absolute path of the file which contains paths to DKIM private keys. Must be"
|
|
2863
|
+
" readable by _rspamd group or user."
|
|
2860
2864
|
msgstr ""
|
|
2861
2865
|
|
|
2862
2866
|
#: rspamd/app_settings.py:30
|
|
@@ -2875,8 +2879,8 @@ msgstr ""
|
|
|
2875
2879
|
|
|
2876
2880
|
#: rspamd/app_settings.py:53
|
|
2877
2881
|
msgid ""
|
|
2878
|
-
"Location of the rspamd dashboard. Can either be a relative URL (eg.
|
|
2879
|
-
"rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2882
|
+
"Location of the rspamd dashboard. Can either be a relative URL (eg. "
|
|
2883
|
+
"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2880
2884
|
"guidance on the Super-Admin dashboard."
|
|
2881
2885
|
msgstr ""
|
|
2882
2886
|
|
|
@@ -3093,7 +3097,8 @@ msgid ""
|
|
|
3093
3097
|
"Your password has been set. You may go ahead and <a href=\"%(url)s\">sign "
|
|
3094
3098
|
"in</a> now."
|
|
3095
3099
|
msgstr ""
|
|
3096
|
-
"La tua password è stata impostata. Ora puoi <a
|
|
3100
|
+
"La tua password è stata impostata. Ora puoi <a "
|
|
3101
|
+
"href=\"%(url)s\">accedere</a>."
|
|
3097
3102
|
|
|
3098
3103
|
#: templates/registration/password_reset_confirm.html:8
|
|
3099
3104
|
msgid "Change password"
|
|
@@ -3188,8 +3193,8 @@ msgstr "Vecchia password"
|
|
|
3188
3193
|
|
|
3189
3194
|
#: templates/registration/twofactor_code_verify.html:35
|
|
3190
3195
|
msgid ""
|
|
3191
|
-
"Enter the code from the two-factor app on your mobile device. If you've lost
|
|
3192
|
-
"your device, you may enter one of your recovery codes."
|
|
3196
|
+
"Enter the code from the two-factor app on your mobile device. If you've lost"
|
|
3197
|
+
" your device, you may enter one of your recovery codes."
|
|
3193
3198
|
msgstr ""
|
|
3194
3199
|
|
|
3195
3200
|
#: templates/registration/twofactor_code_verify.html:42
|
|
@@ -3288,7 +3293,8 @@ msgstr "Modalità di visualizzazione del messaggio predefinita"
|
|
|
3288
3293
|
#| msgid "The default redirection used when no application is specified"
|
|
3289
3294
|
msgid "The default mode used when displaying a message"
|
|
3290
3295
|
msgstr ""
|
|
3291
|
-
"La modalità di visualizzazione predefinita quando viene mostrato il
|
|
3296
|
+
"La modalità di visualizzazione predefinita quando viene mostrato il "
|
|
3297
|
+
"messaggio"
|
|
3292
3298
|
|
|
3293
3299
|
#: webmail/app_settings.py:133
|
|
3294
3300
|
msgid "Enable HTML links display"
|
|
@@ -3392,16 +3398,32 @@ msgstr "Testo signature"
|
|
|
3392
3398
|
msgid "User defined email signature"
|
|
3393
3399
|
msgstr "Signature delle e-mail personalizzato dall'utente"
|
|
3394
3400
|
|
|
3401
|
+
#: webmail/exceptions.py:18
|
|
3402
|
+
#, fuzzy
|
|
3403
|
+
#| msgid "Server address"
|
|
3404
|
+
msgid "Server response"
|
|
3405
|
+
msgstr "Indirizzo del server"
|
|
3406
|
+
|
|
3395
3407
|
#: webmail/lib/attachments.py:112
|
|
3396
3408
|
#, fuzzy
|
|
3397
3409
|
#| msgid "Failed to remove filter"
|
|
3398
3410
|
msgid "Failed to remove attachment: "
|
|
3399
3411
|
msgstr "Rimozione allegato fallita: "
|
|
3400
3412
|
|
|
3413
|
+
#: webmail/lib/imapemail.py:272
|
|
3414
|
+
msgid "wrote:"
|
|
3415
|
+
msgstr ""
|
|
3416
|
+
|
|
3401
3417
|
#: webmail/lib/imapemail.py:306
|
|
3402
3418
|
msgid "Date"
|
|
3403
3419
|
msgstr "Data"
|
|
3404
3420
|
|
|
3421
|
+
#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
|
|
3422
|
+
#, fuzzy
|
|
3423
|
+
#| msgid "sent messages"
|
|
3424
|
+
msgid "Original message"
|
|
3425
|
+
msgstr "Tutti i messaggi"
|
|
3426
|
+
|
|
3405
3427
|
#: webmail/lib/imaputils.py:221
|
|
3406
3428
|
msgid "Failed to retrieve hierarchy delimiter"
|
|
3407
3429
|
msgstr "Impossibile recuperare il delimitatore delle gerarchie"
|
|
@@ -3432,3 +3454,7 @@ msgstr ""
|
|
|
3432
3454
|
#, python-format
|
|
3433
3455
|
msgid "Attachment is too big (limit: %s)"
|
|
3434
3456
|
msgstr "L'allegato è troppo grande (limite: %s)"
|
|
3457
|
+
|
|
3458
|
+
#, fuzzy, python-brace-format
|
|
3459
|
+
#~ msgid "Connection to IMAP server failed: {error}"
|
|
3460
|
+
#~ msgstr "Connessione al server IMAP fallita: %s"
|