modoboa 2.4.11__py3-none-any.whl → 2.5.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 +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 +3 -1
- modoboa/core/api/v2/viewsets.py +24 -3
- 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-BuSy_1n9.js +1 -0
- modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
- modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
- modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
- modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
- modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
- modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
- modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
- modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
- modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
- modoboa/frontend_dist/assets/{AliasRecipientForm-IOae6sjF.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
- modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
- modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
- modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
- modoboa/frontend_dist/assets/{ChoiceField-DJ_c78Cm.js → ChoiceField-B3ReQHVe.js} +1 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
- modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
- modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-Dvwmicnc.css → ConnectedLayout-Bxh21hcH.css} +1 -1
- modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
- modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
- modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
- modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
- modoboa/frontend_dist/assets/{DomainTransportForm-C2xo0Yd7.js → DomainTransportForm-CA-DNUxX.js} +1 -1
- modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
- modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
- modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
- modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
- modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
- modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
- modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
- modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
- modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-CJ9umKeO.js → HtmlEditor-Bh4c689R.js} +1 -1
- modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
- modoboa/frontend_dist/assets/{IdentitiesView-0ziuQ5s-.css → IdentitiesView-DPrrRMS5.css} +1 -1
- modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
- modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
- modoboa/frontend_dist/assets/{LoadingData-CYwX3Jpn.js → LoadingData-CdVvm4FI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-E01qkKn0.js → LoginCallbackView-B9hAH4MI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-Cy4uFV9h.js → LoginView-tHIR4Adc.js} +1 -1
- modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
- modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
- modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
- modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
- modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
- modoboa/frontend_dist/assets/{ParametersForm-BZM0QSvg.js → ParametersForm-CAv4SH-E.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
- modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
- modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
- modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
- modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
- modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
- modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
- modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
- modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
- modoboa/frontend_dist/assets/{SettingsView-BxLJBFY0.js → SettingsView-9iNcDhkI.js} +2 -2
- modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
- modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
- modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
- modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
- modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
- modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
- modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
- modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
- modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
- modoboa/frontend_dist/assets/{VCheckboxBtn-Dt810gWf.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
- modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
- modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
- modoboa/frontend_dist/assets/{VContainer-DvTbsotR.js → VContainer-B46caNs1.js} +1 -1
- modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
- modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
- modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
- modoboa/frontend_dist/assets/{VDialog-Bk6EWNhz.js → VDialog-BcTg7w6P.js} +1 -1
- modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
- modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
- modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
- modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
- modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
- modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
- modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
- modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
- modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
- modoboa/frontend_dist/assets/{VRow-BF35mT1S.js → VRow-ozg66L7j.js} +1 -1
- modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
- modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
- modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
- modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
- modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
- modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
- modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
- modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
- modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
- modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
- modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
- modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
- modoboa/frontend_dist/assets/{admin-o-HRGnmT.js → admin-DewTk2H8.js} +1 -1
- modoboa/frontend_dist/assets/{aliases-DDVeehyg.js → aliases-4sXmjwXp.js} +1 -1
- modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
- modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
- modoboa/frontend_dist/assets/{contacts-C84DY-Q1.js → contacts-BjghrPqZ.js} +1 -1
- modoboa/frontend_dist/assets/{domains-Bgn4ixHL.js → domains-BSawReeu.js} +1 -1
- modoboa/frontend_dist/assets/{domains.store-DTE-V7Y1.js → domains.store-D-vWCEIK.js} +1 -1
- modoboa/frontend_dist/assets/{filter-CnffiQAW.js → filter-C82FUCw_.js} +1 -1
- modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
- modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
- modoboa/frontend_dist/assets/{importExport-BlQYb0NO.js → importExport-DzoL4Mvc.js} +1 -1
- modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
- modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
- modoboa/frontend_dist/assets/{layout.store-DkjrAoXt.js → layout.store-NXWtFIwL.js} +1 -1
- modoboa/frontend_dist/assets/{logos-q8SEyAa4.js → logos-BswdveCV.js} +1 -1
- modoboa/frontend_dist/assets/{logs-B7IJ7LBa.js → logs-6CbtfaZS.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-A6iBEYQq.js → parameters-aSQiR7kN.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-BiXS4_6w.js → parameters.store-CzQqVatx.js} +1 -1
- modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
- modoboa/frontend_dist/assets/{ssrBoot-AzTdjPjk.js → ssrBoot-CKUX4kcb.js} +1 -1
- modoboa/frontend_dist/assets/{tag-BnSYRTcD.js → tag-B_yWNNJD.js} +1 -1
- modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
- modoboa/frontend_dist/assets/{webmail-CSH_3l6R.js → webmail-CdU6CD9b.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-2.4.11.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
- {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/RECORD +231 -181
- 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.0.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
|
@@ -13,11 +13,10 @@ msgid ""
|
|
|
13
13
|
msgstr ""
|
|
14
14
|
"Project-Id-Version: Modoboa\n"
|
|
15
15
|
"Report-Msgid-Bugs-To: \n"
|
|
16
|
-
"POT-Creation-Date: 2025-
|
|
16
|
+
"POT-Creation-Date: 2025-08-28 09:41+0200\n"
|
|
17
17
|
"PO-Revision-Date: 2024-07-17 11:45+0200\n"
|
|
18
18
|
"Last-Translator: Mike C. <miguelmclara@gmail.com>\n"
|
|
19
|
-
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
|
|
20
|
-
"modoboa/language/pt_PT/)\n"
|
|
19
|
+
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/modoboa/language/pt_PT/)\n"
|
|
21
20
|
"Language: pt_PT\n"
|
|
22
21
|
"MIME-Version: 1.0\n"
|
|
23
22
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
@@ -46,76 +45,77 @@ msgstr ""
|
|
|
46
45
|
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
|
|
47
46
|
"especificado. Um valor de 0 implica sem quota."
|
|
48
47
|
|
|
49
|
-
#: admin/api/v1/serializers.py:
|
|
48
|
+
#: admin/api/v1/serializers.py:94
|
|
50
49
|
#, fuzzy
|
|
51
50
|
msgid "domain alias with this name already exists"
|
|
52
51
|
msgstr "Já existe um 'alias' com este nome"
|
|
53
52
|
|
|
54
|
-
#: admin/api/v1/serializers.py:
|
|
53
|
+
#: admin/api/v1/serializers.py:104
|
|
55
54
|
msgid "No authorized MX record found for this domain"
|
|
56
55
|
msgstr ""
|
|
57
56
|
|
|
58
|
-
#: admin/api/v1/serializers.py:
|
|
57
|
+
#: admin/api/v1/serializers.py:122
|
|
59
58
|
msgid "Cannot be greater than domain quota"
|
|
60
59
|
msgstr ""
|
|
61
60
|
|
|
62
|
-
#: admin/api/v1/serializers.py:
|
|
63
|
-
#: admin/api/v2/serializers.py:
|
|
61
|
+
#: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
|
|
62
|
+
#: admin/api/v2/serializers.py:564 admin/models/alias.py:44
|
|
64
63
|
#, fuzzy
|
|
65
64
|
#| msgid "Permissions"
|
|
66
65
|
msgid "Permission denied."
|
|
67
66
|
msgstr "Permissões"
|
|
68
67
|
|
|
69
|
-
#: admin/api/v1/serializers.py:
|
|
70
|
-
#: admin/api/v2/serializers.py:
|
|
71
|
-
#: core/api/v2/serializers.py:
|
|
68
|
+
#: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
|
|
69
|
+
#: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
|
|
70
|
+
#: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
|
|
72
71
|
#: transport/backends.py:40
|
|
73
72
|
msgid "This field is required"
|
|
74
73
|
msgstr "Este campo é obrigatório"
|
|
75
74
|
|
|
76
|
-
#: admin/api/v1/serializers.py:
|
|
75
|
+
#: admin/api/v1/serializers.py:243
|
|
77
76
|
msgid ""
|
|
78
77
|
"List of administered domains (resellers and domain administrators only)."
|
|
79
78
|
msgstr ""
|
|
80
79
|
|
|
81
|
-
#: admin/api/v1/serializers.py:
|
|
80
|
+
#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
|
|
82
81
|
msgid "Not allowed for this role."
|
|
83
82
|
msgstr ""
|
|
84
83
|
|
|
85
|
-
#: admin/api/v1/serializers.py:
|
|
84
|
+
#: admin/api/v1/serializers.py:355
|
|
86
85
|
msgid "Must be equal to mailbox full_address"
|
|
87
86
|
msgstr ""
|
|
88
87
|
|
|
89
|
-
#: admin/api/v1/serializers.py:
|
|
88
|
+
#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
|
|
90
89
|
#: calendars/serializers.py:175 calendars/serializers.py:177
|
|
90
|
+
#: pdfcredentials/api/v2/serializers.py:91
|
|
91
91
|
#, fuzzy
|
|
92
92
|
#| msgid "A mailbox is required"
|
|
93
93
|
msgid "This field is required."
|
|
94
94
|
msgstr "É necessária uma caixa de correio"
|
|
95
95
|
|
|
96
|
-
#: admin/api/v1/serializers.py:
|
|
96
|
+
#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
|
|
97
97
|
#, fuzzy
|
|
98
98
|
#| msgid "Domain does not exist"
|
|
99
99
|
msgid "Local domain {} does not exist"
|
|
100
100
|
msgstr "O domínio não existe"
|
|
101
101
|
|
|
102
|
-
#: admin/api/v1/serializers.py:
|
|
102
|
+
#: admin/api/v1/serializers.py:499
|
|
103
103
|
msgid "A list of recipient"
|
|
104
104
|
msgstr ""
|
|
105
105
|
|
|
106
|
-
#: admin/api/v1/serializers.py:
|
|
106
|
+
#: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
|
|
107
107
|
#, fuzzy
|
|
108
108
|
#| msgid "User '%s' already exists"
|
|
109
109
|
msgid "This alias already exists"
|
|
110
110
|
msgstr "O utilizador '%s' já existe"
|
|
111
111
|
|
|
112
|
-
#: admin/api/v1/serializers.py:
|
|
112
|
+
#: admin/api/v1/serializers.py:551
|
|
113
113
|
#, fuzzy
|
|
114
114
|
#| msgid "You don't have access to this domain"
|
|
115
115
|
msgid "You don't have access to this domain."
|
|
116
116
|
msgstr "Não tem acesso a este domínio"
|
|
117
117
|
|
|
118
|
-
#: admin/api/v1/serializers.py:
|
|
118
|
+
#: admin/api/v1/serializers.py:560
|
|
119
119
|
#, fuzzy
|
|
120
120
|
#| msgid "You don't have access to this domain"
|
|
121
121
|
msgid "You don't have access to this mailbox."
|
|
@@ -125,60 +125,60 @@ msgstr "Não tem acesso a este domínio"
|
|
|
125
125
|
msgid "Here is your new Modoboa password: {}"
|
|
126
126
|
msgstr ""
|
|
127
127
|
|
|
128
|
-
#: admin/api/v2/serializers.py:
|
|
128
|
+
#: admin/api/v2/serializers.py:82
|
|
129
129
|
msgid "DKIM keys storage directory not configured"
|
|
130
130
|
msgstr ""
|
|
131
131
|
|
|
132
|
-
#: admin/api/v2/serializers.py:
|
|
132
|
+
#: admin/api/v2/serializers.py:94
|
|
133
133
|
msgid "This field is valid when type is relaydomain"
|
|
134
134
|
msgstr ""
|
|
135
135
|
|
|
136
|
-
#: admin/api/v2/serializers.py:
|
|
136
|
+
#: admin/api/v2/serializers.py:101
|
|
137
137
|
msgid "You can't define an unlimited quota."
|
|
138
138
|
msgstr ""
|
|
139
139
|
|
|
140
|
-
#: admin/api/v2/serializers.py:
|
|
140
|
+
#: admin/api/v2/serializers.py:135
|
|
141
141
|
#, python-format
|
|
142
142
|
msgid "User '%s' already exists"
|
|
143
143
|
msgstr "O utilizador '%s' já existe"
|
|
144
144
|
|
|
145
|
-
#: admin/api/v2/serializers.py:
|
|
145
|
+
#: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
|
|
146
146
|
msgid "Must be a positive integer"
|
|
147
147
|
msgstr "Tem de ser um inteiro, positivo"
|
|
148
148
|
|
|
149
|
-
#: admin/api/v2/serializers.py:
|
|
149
|
+
#: admin/api/v2/serializers.py:265
|
|
150
150
|
msgid "openssl not found, please make sure it is installed."
|
|
151
151
|
msgstr ""
|
|
152
152
|
|
|
153
|
-
#: admin/api/v2/serializers.py:
|
|
153
|
+
#: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
|
|
154
154
|
#, fuzzy
|
|
155
155
|
#| msgid "Domain modified"
|
|
156
156
|
msgid "Directory not found."
|
|
157
157
|
msgstr "Domínio alterado"
|
|
158
158
|
|
|
159
|
-
#: admin/api/v2/serializers.py:
|
|
159
|
+
#: admin/api/v2/serializers.py:279
|
|
160
160
|
msgid "This field only allows valid IP addresses (or networks)"
|
|
161
161
|
msgstr ""
|
|
162
162
|
|
|
163
|
-
#: admin/api/v2/serializers.py:
|
|
163
|
+
#: admin/api/v2/serializers.py:292
|
|
164
164
|
msgid "Please disable imap migration before disabling this option."
|
|
165
165
|
msgstr ""
|
|
166
166
|
|
|
167
|
-
#: admin/api/v2/serializers.py:
|
|
167
|
+
#: admin/api/v2/serializers.py:305
|
|
168
168
|
msgid "Define at least one authorized network / address"
|
|
169
169
|
msgstr ""
|
|
170
170
|
|
|
171
|
-
#: admin/api/v2/serializers.py:
|
|
171
|
+
#: admin/api/v2/serializers.py:581
|
|
172
172
|
msgid "The left part of an email address can't be more than 64 characters."
|
|
173
173
|
msgstr ""
|
|
174
174
|
|
|
175
|
-
#: admin/api/v2/serializers.py:
|
|
175
|
+
#: admin/api/v2/serializers.py:603
|
|
176
176
|
#, fuzzy
|
|
177
177
|
#| msgid "A mailbox is required"
|
|
178
178
|
msgid "A mailbox is required to create aliases."
|
|
179
179
|
msgstr "É necessária uma caixa de correio"
|
|
180
180
|
|
|
181
|
-
#: admin/api/v2/serializers.py:
|
|
181
|
+
#: admin/api/v2/serializers.py:772
|
|
182
182
|
#, fuzzy
|
|
183
183
|
#| msgid "Unknown domain %s"
|
|
184
184
|
msgid "Unknown status"
|
|
@@ -192,14 +192,6 @@ msgstr "Não tem acesso a este domínio"
|
|
|
192
192
|
msgid "You can't delete your own domain"
|
|
193
193
|
msgstr "Não é possível eliminar o seu próprio domínio"
|
|
194
194
|
|
|
195
|
-
#: admin/api/v2/viewsets.py:407
|
|
196
|
-
msgid "No alarm ID provided"
|
|
197
|
-
msgstr ""
|
|
198
|
-
|
|
199
|
-
#: admin/api/v2/viewsets.py:411
|
|
200
|
-
msgid "Received invalid alarm id(s)"
|
|
201
|
-
msgstr ""
|
|
202
|
-
|
|
203
195
|
#: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
|
|
204
196
|
msgid "Domains"
|
|
205
197
|
msgstr "Domínios"
|
|
@@ -218,8 +210,8 @@ msgstr ""
|
|
|
218
210
|
|
|
219
211
|
#: admin/app_settings.py:37
|
|
220
212
|
msgid ""
|
|
221
|
-
"A list of IP or network address every MX record should match. A warning will
|
|
222
|
-
"be sent if a record does not respect it."
|
|
213
|
+
"A list of IP or network address every MX record should match. A warning will"
|
|
214
|
+
" be sent if a record does not respect it."
|
|
223
215
|
msgstr ""
|
|
224
216
|
|
|
225
217
|
#: admin/app_settings.py:47
|
|
@@ -392,7 +384,8 @@ msgid "Automatic domain/mailbox creation"
|
|
|
392
384
|
msgstr "Criação automatica de domino/caixa de correio"
|
|
393
385
|
|
|
394
386
|
#: admin/app_settings.py:221
|
|
395
|
-
msgid "
|
|
387
|
+
msgid ""
|
|
388
|
+
"Create a domain and a mailbox when an account is automatically created."
|
|
396
389
|
msgstr ""
|
|
397
390
|
"Criar um dominio e uma caixa de correio quando uma conta é criada "
|
|
398
391
|
"automátiamente."
|
|
@@ -405,7 +398,7 @@ msgstr ""
|
|
|
405
398
|
msgid "Create an alias using the old address when a mailbox is renamed."
|
|
406
399
|
msgstr ""
|
|
407
400
|
|
|
408
|
-
#: admin/app_settings.py:287 core/api/v2/viewsets.py:
|
|
401
|
+
#: admin/app_settings.py:287 core/api/v2/viewsets.py:174
|
|
409
402
|
msgid "Administration"
|
|
410
403
|
msgstr "Administração"
|
|
411
404
|
|
|
@@ -436,7 +429,7 @@ msgstr "'Alias' de domínio"
|
|
|
436
429
|
msgid "Account import failed (%s): domain does not exist"
|
|
437
430
|
msgstr "Importação da conta falhou (%s): domínio não existe"
|
|
438
431
|
|
|
439
|
-
#: admin/handlers.py:242 admin/models/mailbox.py:
|
|
432
|
+
#: admin/handlers.py:242 admin/models/mailbox.py:342
|
|
440
433
|
#, fuzzy
|
|
441
434
|
#| msgid "Mailbox %s already exists"
|
|
442
435
|
msgid "Mailbox {} already exists"
|
|
@@ -721,7 +714,7 @@ msgstr "É necessário uma quota"
|
|
|
721
714
|
msgid "{}: domain quota exceeded"
|
|
722
715
|
msgstr "Domínio criado"
|
|
723
716
|
|
|
724
|
-
#: admin/models/mailbox.py:
|
|
717
|
+
#: admin/models/mailbox.py:310
|
|
725
718
|
msgid "Domain does not exist"
|
|
726
719
|
msgstr "O domínio não existe"
|
|
727
720
|
|
|
@@ -782,7 +775,8 @@ msgstr "Geral"
|
|
|
782
775
|
|
|
783
776
|
#: autoreply/app_settings.py:18
|
|
784
777
|
#, fuzzy
|
|
785
|
-
#| msgid "
|
|
778
|
+
#| msgid ""
|
|
779
|
+
#| "Timeout in seconds between two auto-replies to the same recipient"
|
|
786
780
|
msgid "Period between two auto-replies"
|
|
787
781
|
msgstr ""
|
|
788
782
|
"Tempo limite em segundos entre duas respostas automáticas para o mesmo "
|
|
@@ -790,7 +784,8 @@ msgstr ""
|
|
|
790
784
|
|
|
791
785
|
#: autoreply/app_settings.py:20
|
|
792
786
|
#, fuzzy
|
|
793
|
-
#| msgid "
|
|
787
|
+
#| msgid ""
|
|
788
|
+
#| "Timeout in seconds between two auto-replies to the same recipient"
|
|
794
789
|
msgid ""
|
|
795
790
|
"Number of days to wait before sending a new auto-reply to the same recipient"
|
|
796
791
|
msgstr ""
|
|
@@ -897,7 +892,7 @@ msgid ""
|
|
|
897
892
|
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
|
|
898
893
|
msgstr ""
|
|
899
894
|
|
|
900
|
-
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:
|
|
895
|
+
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
|
|
901
896
|
msgid "Calendars"
|
|
902
897
|
msgstr ""
|
|
903
898
|
|
|
@@ -935,7 +930,7 @@ msgstr "Definições do serviço de directório"
|
|
|
935
930
|
msgid "Interval in seconds between 2 synchronization requests"
|
|
936
931
|
msgstr ""
|
|
937
932
|
|
|
938
|
-
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:
|
|
933
|
+
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
|
|
939
934
|
#, fuzzy
|
|
940
935
|
#| msgid "Domains"
|
|
941
936
|
msgid "Contacts"
|
|
@@ -989,12 +984,12 @@ msgstr "Linha inválida"
|
|
|
989
984
|
msgid "2FA is already enabled"
|
|
990
985
|
msgstr ""
|
|
991
986
|
|
|
992
|
-
#: core/api/v1/serializers.py:
|
|
987
|
+
#: core/api/v1/serializers.py:86
|
|
993
988
|
#, python-format
|
|
994
|
-
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
|
|
989
|
+
msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
|
|
995
990
|
msgstr ""
|
|
996
991
|
|
|
997
|
-
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:
|
|
992
|
+
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
|
|
998
993
|
#, fuzzy
|
|
999
994
|
#| msgid "Old password"
|
|
1000
995
|
msgid "Invalid password"
|
|
@@ -1008,46 +1003,47 @@ msgstr ""
|
|
|
1008
1003
|
msgid "Local"
|
|
1009
1004
|
msgstr "Local"
|
|
1010
1005
|
|
|
1011
|
-
#: core/api/v2/serializers.py:
|
|
1006
|
+
#: core/api/v2/serializers.py:194 core/app_settings.py:17
|
|
1012
1007
|
#, fuzzy
|
|
1013
1008
|
#| msgid "Profile"
|
|
1014
1009
|
msgid "User profile"
|
|
1015
1010
|
msgstr "Perfil"
|
|
1016
1011
|
|
|
1017
|
-
#: core/api/v2/serializers.py:
|
|
1018
|
-
#: core/api/v2/serializers.py:
|
|
1012
|
+
#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
|
|
1013
|
+
#: core/api/v2/serializers.py:228
|
|
1019
1014
|
msgid "Invalid syntax"
|
|
1020
1015
|
msgstr "Sintax inválida"
|
|
1021
1016
|
|
|
1022
|
-
#: core/api/v2/serializers.py:
|
|
1017
|
+
#: core/api/v2/serializers.py:233
|
|
1023
1018
|
msgid "Invalid rounds number"
|
|
1024
1019
|
msgstr "Número de linhas inválido"
|
|
1025
1020
|
|
|
1026
|
-
#: core/api/v2/serializers.py:
|
|
1021
|
+
#: core/api/v2/serializers.py:433 core/forms.py:81
|
|
1027
1022
|
msgid "This code is invalid"
|
|
1028
1023
|
msgstr ""
|
|
1029
1024
|
|
|
1030
|
-
#: core/api/v2/serializers.py:
|
|
1025
|
+
#: core/api/v2/serializers.py:503 core/views/auth.py:194
|
|
1026
|
+
#: core/views/auth.py:247
|
|
1031
1027
|
msgid "Please use the following code to recover your Modoboa password: {}"
|
|
1032
1028
|
msgstr ""
|
|
1033
1029
|
|
|
1034
|
-
#: core/api/v2/viewsets.py:
|
|
1030
|
+
#: core/api/v2/viewsets.py:176
|
|
1035
1031
|
#, fuzzy
|
|
1036
1032
|
#| msgid "Administration"
|
|
1037
1033
|
msgid "Administration console"
|
|
1038
1034
|
msgstr "Administração"
|
|
1039
1035
|
|
|
1040
|
-
#: core/api/v2/viewsets.py:
|
|
1041
|
-
msgid "Calendar"
|
|
1042
|
-
msgstr ""
|
|
1043
|
-
|
|
1044
|
-
#: core/api/v2/viewsets.py:181
|
|
1036
|
+
#: core/api/v2/viewsets.py:187
|
|
1045
1037
|
#, fuzzy
|
|
1046
1038
|
#| msgid "Address"
|
|
1047
1039
|
msgid "Address book"
|
|
1048
1040
|
msgstr "Endereço"
|
|
1049
1041
|
|
|
1050
|
-
#: core/api/v2/viewsets.py:
|
|
1042
|
+
#: core/api/v2/viewsets.py:197
|
|
1043
|
+
msgid "Calendar"
|
|
1044
|
+
msgstr ""
|
|
1045
|
+
|
|
1046
|
+
#: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
|
|
1051
1047
|
#: webmail/app_settings.py:258 webmail/app_settings.py:265
|
|
1052
1048
|
#, fuzzy
|
|
1053
1049
|
#| msgid "E-mail"
|
|
@@ -1241,8 +1237,8 @@ msgstr "Grupos de Administrador"
|
|
|
1241
1237
|
|
|
1242
1238
|
#: core/app_settings.py:239
|
|
1243
1239
|
msgid ""
|
|
1244
|
-
"Members of those LDAP Posix groups will be created as domain administrators.
|
|
1245
|
-
"Use ';' characters to separate groups."
|
|
1240
|
+
"Members of those LDAP Posix groups will be created as domain administrators."
|
|
1241
|
+
" Use ';' characters to separate groups."
|
|
1246
1242
|
msgstr ""
|
|
1247
1243
|
"Os membros destes grupos \"LDAP Posix\" serão criados como administradores "
|
|
1248
1244
|
"de domínio. Use ';' para separar os grupos."
|
|
@@ -1305,8 +1301,7 @@ msgstr "Password para bind"
|
|
|
1305
1301
|
|
|
1306
1302
|
#: core/app_settings.py:307 core/app_settings.py:369
|
|
1307
1303
|
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
|
|
1308
|
-
msgstr ""
|
|
1309
|
-
"A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')"
|
|
1304
|
+
msgstr "A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')"
|
|
1310
1305
|
|
|
1311
1306
|
#: core/app_settings.py:317 core/app_settings.py:422
|
|
1312
1307
|
msgid "Users search base"
|
|
@@ -1565,8 +1560,8 @@ msgstr ""
|
|
|
1565
1560
|
|
|
1566
1561
|
#: core/app_settings.py:686
|
|
1567
1562
|
msgid ""
|
|
1568
|
-
"Allow the administrator to set a threshold (in days) beyond which an account
|
|
1569
|
-
"is considered inactive if the user hasn't logged in"
|
|
1563
|
+
"Allow the administrator to set a threshold (in days) beyond which an account"
|
|
1564
|
+
" is considered inactive if the user hasn't logged in"
|
|
1570
1565
|
msgstr ""
|
|
1571
1566
|
|
|
1572
1567
|
#: core/app_settings.py:695
|
|
@@ -1575,8 +1570,8 @@ msgstr ""
|
|
|
1575
1570
|
|
|
1576
1571
|
#: core/app_settings.py:698
|
|
1577
1572
|
msgid ""
|
|
1578
|
-
"An account with a last login date greater than this threshold (in days) will
|
|
1579
|
-
"be considered as inactive"
|
|
1573
|
+
"An account with a last login date greater than this threshold (in days) will"
|
|
1574
|
+
" be considered as inactive"
|
|
1580
1575
|
msgstr ""
|
|
1581
1576
|
|
|
1582
1577
|
#: core/app_settings.py:707
|
|
@@ -1597,19 +1592,27 @@ msgstr "Idade máxima do registo no log"
|
|
|
1597
1592
|
msgid "The maximum age in days of a log record"
|
|
1598
1593
|
msgstr "A idade maxima do registo de um log, em dias, e de"
|
|
1599
1594
|
|
|
1600
|
-
#: core/app_settings.py:
|
|
1595
|
+
#: core/app_settings.py:727
|
|
1596
|
+
msgid "Retention time in message history"
|
|
1597
|
+
msgstr ""
|
|
1598
|
+
|
|
1599
|
+
#: core/app_settings.py:730
|
|
1600
|
+
msgid "Retention time (in days) of a message in the message history section"
|
|
1601
|
+
msgstr ""
|
|
1602
|
+
|
|
1603
|
+
#: core/app_settings.py:737
|
|
1601
1604
|
msgid "Items per page"
|
|
1602
1605
|
msgstr "Itens por página"
|
|
1603
1606
|
|
|
1604
|
-
#: core/app_settings.py:
|
|
1607
|
+
#: core/app_settings.py:739
|
|
1605
1608
|
msgid "Number of displayed items per page"
|
|
1606
1609
|
msgstr "Número de itens apresentados por página"
|
|
1607
1610
|
|
|
1608
|
-
#: core/app_settings.py:
|
|
1611
|
+
#: core/app_settings.py:746
|
|
1609
1612
|
msgid "Default top redirection"
|
|
1610
1613
|
msgstr "Redirecionamento pré-definido"
|
|
1611
1614
|
|
|
1612
|
-
#: core/app_settings.py:
|
|
1615
|
+
#: core/app_settings.py:748
|
|
1613
1616
|
msgid "The default redirection used when no application is specified"
|
|
1614
1617
|
msgstr ""
|
|
1615
1618
|
"O redirecionamento padrão usado quando nenhuma aplicação se encontra "
|
|
@@ -1644,8 +1647,9 @@ msgstr ""
|
|
|
1644
1647
|
|
|
1645
1648
|
#: core/checks.py:34
|
|
1646
1649
|
msgid ""
|
|
1647
|
-
"Visit :
|
|
1648
|
-
"html#dovecot-
|
|
1650
|
+
"Visit : "
|
|
1651
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
|
|
1652
|
+
"oauth2"
|
|
1649
1653
|
msgstr ""
|
|
1650
1654
|
|
|
1651
1655
|
#: core/checks.py:41
|
|
@@ -1656,8 +1660,9 @@ msgstr ""
|
|
|
1656
1660
|
|
|
1657
1661
|
#: core/checks.py:45
|
|
1658
1662
|
msgid ""
|
|
1659
|
-
"Visit :
|
|
1660
|
-
"radicale.html#radicale-
|
|
1663
|
+
"Visit : "
|
|
1664
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
|
|
1665
|
+
"oauth2"
|
|
1661
1666
|
msgstr ""
|
|
1662
1667
|
|
|
1663
1668
|
#: core/constants.py:6
|
|
@@ -1825,8 +1830,8 @@ msgstr "O simple utilizador '%s' deve ter endereço de e-mail válido"
|
|
|
1825
1830
|
#| msgid "username and email fields must not differ for '%s'"
|
|
1826
1831
|
msgid "username and email fields must not differ for '{}'"
|
|
1827
1832
|
msgstr ""
|
|
1828
|
-
"Os campos nome de utilizador e endereço de email não deve ser diferente para
|
|
1829
|
-
"'%s'"
|
|
1833
|
+
"Os campos nome de utilizador e endereço de email não deve ser diferente para"
|
|
1834
|
+
" '%s'"
|
|
1830
1835
|
|
|
1831
1836
|
#: core/password_validation.py:25
|
|
1832
1837
|
msgid "Password must contain at least {} digit."
|
|
@@ -1982,7 +1987,7 @@ msgstr "Nenhum"
|
|
|
1982
1987
|
#, fuzzy
|
|
1983
1988
|
#| msgid "Quantity"
|
|
1984
1989
|
msgid "Quarantine"
|
|
1985
|
-
msgstr "
|
|
1990
|
+
msgstr "Quarentena"
|
|
1986
1991
|
|
|
1987
1992
|
#: dmarc/models.py:12
|
|
1988
1993
|
#, fuzzy
|
|
@@ -2171,20 +2176,14 @@ msgstr ""
|
|
|
2171
2176
|
#: imap_migration/app_settings.py:76
|
|
2172
2177
|
msgid ""
|
|
2173
2178
|
"A comma seperated list of folders to explicitly include in sync even if "
|
|
2174
|
-
"filtered by the Folder Filter Exclusions. Example: debian.user,
|
|
2175
|
-
"personal "
|
|
2179
|
+
"filtered by the Folder Filter Exclusions. Example: debian.user, "
|
|
2180
|
+
"debian.personal "
|
|
2176
2181
|
msgstr ""
|
|
2177
2182
|
|
|
2178
2183
|
#: imap_migration/apps.py:20
|
|
2179
2184
|
msgid "IMAP Migration"
|
|
2180
2185
|
msgstr ""
|
|
2181
2186
|
|
|
2182
|
-
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
|
|
2183
|
-
#, fuzzy, python-brace-format
|
|
2184
|
-
#| msgid "Connection to IMAP server failed: %s"
|
|
2185
|
-
msgid "Connection to IMAP server failed: {error}"
|
|
2186
|
-
msgstr "Ligação ao servidor IMAP falhou : %s"
|
|
2187
|
-
|
|
2188
2187
|
#: imap_migration/checks.py:12
|
|
2189
2188
|
msgid ""
|
|
2190
2189
|
"Automatic domain/mailbox creation is disabled which means IMAP "
|
|
@@ -2293,10 +2292,11 @@ msgstr "Aliases de domínio"
|
|
|
2293
2292
|
|
|
2294
2293
|
#: limits/app_settings.py:52
|
|
2295
2294
|
#, fuzzy
|
|
2296
|
-
#| msgid "
|
|
2295
|
+
#| msgid ""
|
|
2296
|
+
#| "Maximum number of allowed domain aliases for a new administrator"
|
|
2297
2297
|
msgid ""
|
|
2298
|
-
"Maximum number of allowed domain aliases for a new administrator. (0 to deny
|
|
2299
|
-
"any creation, -1 to allow unlimited creations)"
|
|
2298
|
+
"Maximum number of allowed domain aliases for a new administrator. (0 to deny"
|
|
2299
|
+
" any creation, -1 to allow unlimited creations)"
|
|
2300
2300
|
msgstr ""
|
|
2301
2301
|
"Número máximo permitido de aliases de domínio para um novo administrador"
|
|
2302
2302
|
|
|
@@ -2350,15 +2350,16 @@ msgstr ""
|
|
|
2350
2350
|
#| msgid ""
|
|
2351
2351
|
#| "Maximum number of allowed domain administrators for a new administrator"
|
|
2352
2352
|
msgid ""
|
|
2353
|
-
"Maximum number of allowed domain administrators for a new domain. (0 to deny
|
|
2354
|
-
"any creation, -1 to allow unlimited creations)"
|
|
2353
|
+
"Maximum number of allowed domain administrators for a new domain. (0 to deny"
|
|
2354
|
+
" any creation, -1 to allow unlimited creations)"
|
|
2355
2355
|
msgstr ""
|
|
2356
2356
|
"Número máximo permitido de administradores de domínio para um novo "
|
|
2357
2357
|
"administrador"
|
|
2358
2358
|
|
|
2359
2359
|
#: limits/app_settings.py:126
|
|
2360
2360
|
#, fuzzy
|
|
2361
|
-
#| msgid "
|
|
2361
|
+
#| msgid ""
|
|
2362
|
+
#| "Maximum number of allowed domain aliases for a new administrator"
|
|
2362
2363
|
msgid ""
|
|
2363
2364
|
"Maximum number of allowed domain aliases for a new domain. (0 to deny any "
|
|
2364
2365
|
"creation, -1 to allow unlimited creations)"
|
|
@@ -2377,8 +2378,8 @@ msgstr "Número máximo permitido de caixas de correio para novo administrador"
|
|
|
2377
2378
|
#, fuzzy
|
|
2378
2379
|
#| msgid "Maximum number of allowed aliases for a new administrator"
|
|
2379
2380
|
msgid ""
|
|
2380
|
-
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,
|
|
2381
|
-
"-1 to allow unlimited creations)"
|
|
2381
|
+
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
|
|
2382
|
+
" -1 to allow unlimited creations)"
|
|
2382
2383
|
msgstr "Número máximo de aliases permitidas para um novo administrador"
|
|
2383
2384
|
|
|
2384
2385
|
#: limits/apps.py:16
|
|
@@ -2400,7 +2401,8 @@ msgstr "Número máximo de caixas de correio que este utilizador por criar"
|
|
|
2400
2401
|
#: limits/constants.py:40
|
|
2401
2402
|
msgid "Maximum number of mailbox aliases this user can create"
|
|
2402
2403
|
msgstr ""
|
|
2403
|
-
"Número máximo de aliases para caixas de correio que este utilizador por
|
|
2404
|
+
"Número máximo de aliases para caixas de correio que este utilizador por "
|
|
2405
|
+
"criar"
|
|
2404
2406
|
|
|
2405
2407
|
#: limits/constants.py:49
|
|
2406
2408
|
msgid "Maximum number of domain administrators this user can create"
|
|
@@ -2428,7 +2430,8 @@ msgstr "Número máximo de caixas de correio que este utilizador por criar"
|
|
|
2428
2430
|
#| msgid "Maximum number of mailbox aliases this user can create"
|
|
2429
2431
|
msgid "Maximum number of mailbox aliases allowed for this domain."
|
|
2430
2432
|
msgstr ""
|
|
2431
|
-
"Número máximo de aliases para caixas de correio que este utilizador por
|
|
2433
|
+
"Número máximo de aliases para caixas de correio que este utilizador por "
|
|
2434
|
+
"criar"
|
|
2432
2435
|
|
|
2433
2436
|
#: limits/constants.py:102
|
|
2434
2437
|
#, fuzzy
|
|
@@ -2562,13 +2565,13 @@ msgstr ""
|
|
|
2562
2565
|
msgid "Personal account information"
|
|
2563
2566
|
msgstr ""
|
|
2564
2567
|
|
|
2565
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2568
|
+
#: pdfcredentials/api/v2/serializers.py:86
|
|
2566
2569
|
#, fuzzy
|
|
2567
2570
|
#| msgid "Domain modified"
|
|
2568
2571
|
msgid "Directory is not writable"
|
|
2569
2572
|
msgstr "Domínio alterado"
|
|
2570
2573
|
|
|
2571
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2574
|
+
#: pdfcredentials/api/v2/serializers.py:114
|
|
2572
2575
|
msgid "No document available for this user"
|
|
2573
2576
|
msgstr ""
|
|
2574
2577
|
|
|
@@ -2838,8 +2841,8 @@ msgstr ""
|
|
|
2838
2841
|
|
|
2839
2842
|
#: rspamd/app_settings.py:21
|
|
2840
2843
|
msgid ""
|
|
2841
|
-
"Absolute path of the file which contains paths to DKIM private keys. Must be
|
|
2842
|
-
"readable by _rspamd group or user."
|
|
2844
|
+
"Absolute path of the file which contains paths to DKIM private keys. Must be"
|
|
2845
|
+
" readable by _rspamd group or user."
|
|
2843
2846
|
msgstr ""
|
|
2844
2847
|
|
|
2845
2848
|
#: rspamd/app_settings.py:30
|
|
@@ -2858,8 +2861,8 @@ msgstr ""
|
|
|
2858
2861
|
|
|
2859
2862
|
#: rspamd/app_settings.py:53
|
|
2860
2863
|
msgid ""
|
|
2861
|
-
"Location of the rspamd dashboard. Can either be a relative URL (eg.
|
|
2862
|
-
"rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2864
|
+
"Location of the rspamd dashboard. Can either be a relative URL (eg. "
|
|
2865
|
+
"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2863
2866
|
"guidance on the Super-Admin dashboard."
|
|
2864
2867
|
msgstr ""
|
|
2865
2868
|
|
|
@@ -3154,8 +3157,8 @@ msgstr "Password antiga"
|
|
|
3154
3157
|
|
|
3155
3158
|
#: templates/registration/twofactor_code_verify.html:35
|
|
3156
3159
|
msgid ""
|
|
3157
|
-
"Enter the code from the two-factor app on your mobile device. If you've lost
|
|
3158
|
-
"your device, you may enter one of your recovery codes."
|
|
3160
|
+
"Enter the code from the two-factor app on your mobile device. If you've lost"
|
|
3161
|
+
" your device, you may enter one of your recovery codes."
|
|
3159
3162
|
msgstr ""
|
|
3160
3163
|
|
|
3161
3164
|
#: templates/registration/twofactor_code_verify.html:42
|
|
@@ -3350,16 +3353,32 @@ msgstr "Assinatura"
|
|
|
3350
3353
|
msgid "User defined email signature"
|
|
3351
3354
|
msgstr "Assinatura de email definida pelo utilizador"
|
|
3352
3355
|
|
|
3356
|
+
#: webmail/exceptions.py:18
|
|
3357
|
+
#, fuzzy
|
|
3358
|
+
#| msgid "Server address"
|
|
3359
|
+
msgid "Server response"
|
|
3360
|
+
msgstr "Endereço do Servidor"
|
|
3361
|
+
|
|
3353
3362
|
#: webmail/lib/attachments.py:112
|
|
3354
3363
|
#, fuzzy
|
|
3355
3364
|
#| msgid "Failed to remove filter"
|
|
3356
3365
|
msgid "Failed to remove attachment: "
|
|
3357
3366
|
msgstr "Falha ao remover os anexos:"
|
|
3358
3367
|
|
|
3368
|
+
#: webmail/lib/imapemail.py:272
|
|
3369
|
+
msgid "wrote:"
|
|
3370
|
+
msgstr ""
|
|
3371
|
+
|
|
3359
3372
|
#: webmail/lib/imapemail.py:306
|
|
3360
3373
|
msgid "Date"
|
|
3361
3374
|
msgstr "Data"
|
|
3362
3375
|
|
|
3376
|
+
#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
|
|
3377
|
+
#, fuzzy
|
|
3378
|
+
#| msgid "sent messages"
|
|
3379
|
+
msgid "Original message"
|
|
3380
|
+
msgstr "Todas as mensagens"
|
|
3381
|
+
|
|
3363
3382
|
#: webmail/lib/imaputils.py:221
|
|
3364
3383
|
msgid "Failed to retrieve hierarchy delimiter"
|
|
3365
3384
|
msgstr "Falha ao recuperar hierarquia delimitador"
|
|
@@ -3388,3 +3407,7 @@ msgstr ""
|
|
|
3388
3407
|
#, python-format
|
|
3389
3408
|
msgid "Attachment is too big (limit: %s)"
|
|
3390
3409
|
msgstr "Anexo demasiado grande (limite %s)"
|
|
3410
|
+
|
|
3411
|
+
#, fuzzy, python-brace-format
|
|
3412
|
+
#~ msgid "Connection to IMAP server failed: {error}"
|
|
3413
|
+
#~ msgstr "Ligação ao servidor IMAP falhou : %s"
|