modoboa 2.4.10__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/v1/serializers.py +1 -0
- modoboa/admin/api/v2/serializers.py +15 -1
- modoboa/admin/api/v2/tests.py +11 -1
- modoboa/admin/lib.py +1 -1
- modoboa/admin/models/mailbox.py +15 -13
- modoboa/admin/models/mxrecord.py +4 -0
- modoboa/admin/tests/test_import_.py +11 -11
- 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 +13 -2
- modoboa/core/api/v2/tests.py +34 -4
- modoboa/core/api/v2/urls.py +10 -5
- modoboa/core/api/v2/views.py +23 -2
- modoboa/core/api/v2/viewsets.py +24 -3
- modoboa/core/app_settings.py +11 -0
- modoboa/core/fido2_auth.py +1 -2
- modoboa/core/handlers.py +6 -2
- modoboa/core/management/commands/add_allowed_hosts.py +33 -0
- modoboa/core/management/commands/cleanlogs.py +9 -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 +29 -0
- modoboa/core/utils.py +6 -0
- modoboa/dnstools/api/v2/serializers.py +9 -11
- 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-DVZXWaUX.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-7eU7c_rI.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-BaJZ3BeR.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/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
- modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
- modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
- modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.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-uM4AtIGi.js → HtmlEditor-Bh4c689R.js} +1 -1
- modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
- modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.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-CVD2Aen8.js → LoadingData-CdVvm4FI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-B9hAH4MI.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-wmN73W0f.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-BCeQljir.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-9iNcDhkI.js +6 -0
- 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-j7di4leN.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-B46caNs1.js +1 -0
- 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-CZqM2Ofu.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-C_Ydf6yr.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-DewTk2H8.js +1 -0
- modoboa/frontend_dist/assets/{aliases-c3n-dCV_.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-Bqckz8sr.js → contacts-BjghrPqZ.js} +1 -1
- modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-BSawReeu.js} +1 -1
- modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-D-vWCEIK.js} +1 -1
- modoboa/frontend_dist/assets/{filter-D7NrAf6a.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-Dn9vYw7T.js → importExport-DzoL4Mvc.js} +1 -1
- modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
- modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
- modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
- modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-NXWtFIwL.js} +1 -1
- modoboa/frontend_dist/assets/logos-BswdveCV.js +1 -0
- modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-6CbtfaZS.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-aSQiR7kN.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-CzQqVatx.js} +1 -1
- modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
- modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-CKUX4kcb.js} +1 -1
- modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-B_yWNNJD.js} +1 -1
- modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
- modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.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/redis.py +1 -5
- 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 +201 -334
- 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.10.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/RECORD +244 -193
- modoboa/frontend_dist/assets/AccountAliasForm-DVXatAhB.js +0 -1
- modoboa/frontend_dist/assets/AccountEditView-DmvQjxpx.js +0 -1
- modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
- modoboa/frontend_dist/assets/AccountPasswordSubForm-g3IEGrgM.js +0 -1
- modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
- modoboa/frontend_dist/assets/AddressBook-3RoKiKon.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
- modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
- modoboa/frontend_dist/assets/AlarmsView-D3Mh8ntf.js +0 -1
- modoboa/frontend_dist/assets/AliasEditView-C15eUZ11.js +0 -1
- modoboa/frontend_dist/assets/AliasView-Cyvc5vMb.js +0 -1
- modoboa/frontend_dist/assets/AuditTrailView-LI2XuLLn.js +0 -1
- modoboa/frontend_dist/assets/CalendarView-BpOlPh3f.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-CNfI7ept.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
- modoboa/frontend_dist/assets/ConfirmDialog-BvqxQsD1.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
- modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
- modoboa/frontend_dist/assets/DomainEditView-DocxeOeW.js +0 -1
- modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
- modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
- modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
- modoboa/frontend_dist/assets/EmailField-BEKxuYni.js +0 -1
- modoboa/frontend_dist/assets/EmailView-BsR1Wes5.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
- modoboa/frontend_dist/assets/FiltersView-5rmpC5cC.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
- modoboa/frontend_dist/assets/InformationView-CghcvPn2.js +0 -1
- modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
- modoboa/frontend_dist/assets/MailboxView-T_p-_ZtJ.js +0 -1
- modoboa/frontend_dist/assets/MenuItems-kHCMzR5E.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
- modoboa/frontend_dist/assets/MigrationsView-7kjqPyYU.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
- modoboa/frontend_dist/assets/ProviderEditView-DDLMOylC.js +0 -1
- modoboa/frontend_dist/assets/ProviderGeneralForm-BwOSKNHK.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
- modoboa/frontend_dist/assets/ResourcesForm-D87PHeH0.js +0 -1
- modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
- modoboa/frontend_dist/assets/StatisticsView-CM__Eqku.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-C6j0uYR_.js +0 -1
- modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
- modoboa/frontend_dist/assets/VAlert-B7mzOJIO.js +0 -1
- modoboa/frontend_dist/assets/VApp-BKxnjOoi.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-Cc4_tcl1.js +0 -1
- modoboa/frontend_dist/assets/VAvatar-BAgTUIvX.js +0 -1
- modoboa/frontend_dist/assets/VCard-DFWiFORP.js +0 -1
- modoboa/frontend_dist/assets/VCheckbox-CKsH_vq3.js +0 -1
- modoboa/frontend_dist/assets/VChip-nZ0uhY7t.js +0 -1
- modoboa/frontend_dist/assets/VColorPicker-Os2aeP6J.js +0 -1
- modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
- modoboa/frontend_dist/assets/VDataTable-D_0_xJTl.js +0 -1
- modoboa/frontend_dist/assets/VDataTableServer-BWTt4Mzi.js +0 -1
- modoboa/frontend_dist/assets/VDataTableVirtual-BwVmkt4u.js +0 -1
- modoboa/frontend_dist/assets/VExpansionPanels-B5D6GOa3.js +0 -1
- modoboa/frontend_dist/assets/VFileInput-Cv9DIPki.js +0 -1
- modoboa/frontend_dist/assets/VForm-CpoZf60D.js +0 -1
- modoboa/frontend_dist/assets/VMenu-B_dVqOmo.js +0 -1
- modoboa/frontend_dist/assets/VPicker-CXkIGEze.js +0 -1
- modoboa/frontend_dist/assets/VProgressCircular-CrEXxs7k.js +0 -1
- modoboa/frontend_dist/assets/VRadioGroup-D8ypjYOO.js +0 -1
- modoboa/frontend_dist/assets/VSelect-CS51PDEt.js +0 -1
- modoboa/frontend_dist/assets/VSelectionControl-DiOqtY38.js +0 -1
- modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
- modoboa/frontend_dist/assets/VSwitch-Chg5o-Cp.js +0 -1
- modoboa/frontend_dist/assets/VTable-KsiZ3cBz.js +0 -1
- modoboa/frontend_dist/assets/VTabs-tNrJIYO0.js +0 -1
- modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
- modoboa/frontend_dist/assets/VTextField-CLwRV0Cb.js +0 -1
- modoboa/frontend_dist/assets/VTextarea-Di8jbl8m.js +0 -1
- modoboa/frontend_dist/assets/VToolbar-CGwhgdmI.js +0 -1
- modoboa/frontend_dist/assets/VWindowItem-wWSFAGI-.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
- modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
- modoboa/frontend_dist/assets/forwardRefs-Cpc3YYl6.js +0 -1
- modoboa/frontend_dist/assets/global.store-DUP26-A5.js +0 -1
- modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
- modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
- modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
- modoboa/frontend_dist/assets/permissions-mL5hLHcW.js +0 -1
- modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
- {modoboa-2.4.10.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
|
@@ -26,18 +26,15 @@ msgid ""
|
|
|
26
26
|
msgstr ""
|
|
27
27
|
"Project-Id-Version: Modoboa\n"
|
|
28
28
|
"Report-Msgid-Bugs-To: \n"
|
|
29
|
-
"POT-Creation-Date: 2025-
|
|
29
|
+
"POT-Creation-Date: 2025-08-28 09:41+0200\n"
|
|
30
30
|
"PO-Revision-Date: 2011-07-01 08:15+0000\n"
|
|
31
|
-
"Last-Translator: Rafael Barretto Alves <ch3yd@hotmail.com>, "
|
|
32
|
-
"
|
|
33
|
-
"Language-Team: Portuguese (Brazil) (http://app.transifex.com/tonio/modoboa/"
|
|
34
|
-
"language/pt_BR/)\n"
|
|
31
|
+
"Last-Translator: Rafael Barretto Alves <ch3yd@hotmail.com>, 2013,2015-2017,2025\n"
|
|
32
|
+
"Language-Team: Portuguese (Brazil) (http://app.transifex.com/tonio/modoboa/language/pt_BR/)\n"
|
|
35
33
|
"Language: pt_BR\n"
|
|
36
34
|
"MIME-Version: 1.0\n"
|
|
37
35
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
38
36
|
"Content-Transfer-Encoding: 8bit\n"
|
|
39
|
-
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
|
|
40
|
-
"1000000 == 0 ? 1 : 2;\n"
|
|
37
|
+
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
|
41
38
|
|
|
42
39
|
#: admin/api/v1/serializers.py:39
|
|
43
40
|
msgid ""
|
|
@@ -53,69 +50,70 @@ msgstr ""
|
|
|
53
50
|
"Cota padrão em MB aplicada para caixas de correio. Um valor 0 significa que "
|
|
54
51
|
"não há cota."
|
|
55
52
|
|
|
56
|
-
#: admin/api/v1/serializers.py:
|
|
53
|
+
#: admin/api/v1/serializers.py:94
|
|
57
54
|
#, fuzzy
|
|
58
55
|
#| msgid "Alias with this name already exists"
|
|
59
56
|
msgid "domain alias with this name already exists"
|
|
60
57
|
msgstr "Já existe um apelido com este nome"
|
|
61
58
|
|
|
62
|
-
#: admin/api/v1/serializers.py:
|
|
59
|
+
#: admin/api/v1/serializers.py:104
|
|
63
60
|
msgid "No authorized MX record found for this domain"
|
|
64
61
|
msgstr "Nenhum registro MX autorizado encontrado para este domínio"
|
|
65
62
|
|
|
66
|
-
#: admin/api/v1/serializers.py:
|
|
63
|
+
#: admin/api/v1/serializers.py:122
|
|
67
64
|
msgid "Cannot be greater than domain quota"
|
|
68
65
|
msgstr "Não pode ser maior que a cota de domínio"
|
|
69
66
|
|
|
70
|
-
#: admin/api/v1/serializers.py:
|
|
71
|
-
#: admin/api/v2/serializers.py:
|
|
67
|
+
#: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
|
|
68
|
+
#: admin/api/v2/serializers.py:564 admin/models/alias.py:44
|
|
72
69
|
msgid "Permission denied."
|
|
73
70
|
msgstr "Permissão negada."
|
|
74
71
|
|
|
75
|
-
#: admin/api/v1/serializers.py:
|
|
76
|
-
#: admin/api/v2/serializers.py:
|
|
77
|
-
#: core/api/v2/serializers.py:
|
|
72
|
+
#: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
|
|
73
|
+
#: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
|
|
74
|
+
#: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
|
|
78
75
|
#: transport/backends.py:40
|
|
79
76
|
msgid "This field is required"
|
|
80
77
|
msgstr "Este campo é obrigatório"
|
|
81
78
|
|
|
82
|
-
#: admin/api/v1/serializers.py:
|
|
79
|
+
#: admin/api/v1/serializers.py:243
|
|
83
80
|
msgid ""
|
|
84
81
|
"List of administered domains (resellers and domain administrators only)."
|
|
85
82
|
msgstr ""
|
|
86
83
|
"Lista de domínios administrados (somente revendedores e administradores de "
|
|
87
84
|
"domínio)."
|
|
88
85
|
|
|
89
|
-
#: admin/api/v1/serializers.py:
|
|
86
|
+
#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
|
|
90
87
|
msgid "Not allowed for this role."
|
|
91
88
|
msgstr "Não é permitido para esta função."
|
|
92
89
|
|
|
93
|
-
#: admin/api/v1/serializers.py:
|
|
90
|
+
#: admin/api/v1/serializers.py:355
|
|
94
91
|
msgid "Must be equal to mailbox full_address"
|
|
95
92
|
msgstr "Deve ser igual a full_address de caixa de correio"
|
|
96
93
|
|
|
97
|
-
#: admin/api/v1/serializers.py:
|
|
94
|
+
#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
|
|
98
95
|
#: calendars/serializers.py:175 calendars/serializers.py:177
|
|
96
|
+
#: pdfcredentials/api/v2/serializers.py:91
|
|
99
97
|
msgid "This field is required."
|
|
100
98
|
msgstr "Este campo é obrigatório."
|
|
101
99
|
|
|
102
|
-
#: admin/api/v1/serializers.py:
|
|
100
|
+
#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
|
|
103
101
|
msgid "Local domain {} does not exist"
|
|
104
102
|
msgstr "Domínio local {} não existe"
|
|
105
103
|
|
|
106
|
-
#: admin/api/v1/serializers.py:
|
|
104
|
+
#: admin/api/v1/serializers.py:499
|
|
107
105
|
msgid "A list of recipient"
|
|
108
106
|
msgstr "Uma lista de destinatários"
|
|
109
107
|
|
|
110
|
-
#: admin/api/v1/serializers.py:
|
|
108
|
+
#: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
|
|
111
109
|
msgid "This alias already exists"
|
|
112
110
|
msgstr "Este apelido já existe"
|
|
113
111
|
|
|
114
|
-
#: admin/api/v1/serializers.py:
|
|
112
|
+
#: admin/api/v1/serializers.py:551
|
|
115
113
|
msgid "You don't have access to this domain."
|
|
116
114
|
msgstr "Você não tem acesso a este domínio."
|
|
117
115
|
|
|
118
|
-
#: admin/api/v1/serializers.py:
|
|
116
|
+
#: admin/api/v1/serializers.py:560
|
|
119
117
|
msgid "You don't have access to this mailbox."
|
|
120
118
|
msgstr "Você não tem acesso a esta caixa de correio."
|
|
121
119
|
|
|
@@ -123,58 +121,58 @@ msgstr "Você não tem acesso a esta caixa de correio."
|
|
|
123
121
|
msgid "Here is your new Modoboa password: {}"
|
|
124
122
|
msgstr "Aqui está sua nova senha do Modoboa: {}"
|
|
125
123
|
|
|
126
|
-
#: admin/api/v2/serializers.py:
|
|
124
|
+
#: admin/api/v2/serializers.py:82
|
|
127
125
|
msgid "DKIM keys storage directory not configured"
|
|
128
126
|
msgstr "Diretório de armazenamento de chaves DKIM não configurado"
|
|
129
127
|
|
|
130
|
-
#: admin/api/v2/serializers.py:
|
|
128
|
+
#: admin/api/v2/serializers.py:94
|
|
131
129
|
msgid "This field is valid when type is relaydomain"
|
|
132
130
|
msgstr ""
|
|
133
131
|
|
|
134
|
-
#: admin/api/v2/serializers.py:
|
|
132
|
+
#: admin/api/v2/serializers.py:101
|
|
135
133
|
msgid "You can't define an unlimited quota."
|
|
136
134
|
msgstr "Você não pode definir uma cota ilimitada."
|
|
137
135
|
|
|
138
|
-
#: admin/api/v2/serializers.py:
|
|
136
|
+
#: admin/api/v2/serializers.py:135
|
|
139
137
|
#, python-format
|
|
140
138
|
msgid "User '%s' already exists"
|
|
141
139
|
msgstr "O usuário '%s' já existe"
|
|
142
140
|
|
|
143
|
-
#: admin/api/v2/serializers.py:
|
|
141
|
+
#: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
|
|
144
142
|
msgid "Must be a positive integer"
|
|
145
143
|
msgstr "Deve ser um inteiro positivo"
|
|
146
144
|
|
|
147
|
-
#: admin/api/v2/serializers.py:
|
|
145
|
+
#: admin/api/v2/serializers.py:265
|
|
148
146
|
msgid "openssl not found, please make sure it is installed."
|
|
149
147
|
msgstr "openssl não encontrado, certifique-se que está instalado."
|
|
150
148
|
|
|
151
|
-
#: admin/api/v2/serializers.py:
|
|
149
|
+
#: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
|
|
152
150
|
msgid "Directory not found."
|
|
153
151
|
msgstr "Diretório não encontrado."
|
|
154
152
|
|
|
155
|
-
#: admin/api/v2/serializers.py:
|
|
153
|
+
#: admin/api/v2/serializers.py:279
|
|
156
154
|
msgid "This field only allows valid IP addresses (or networks)"
|
|
157
155
|
msgstr "Este campo permite apenas endereços IP válidos (ou redes)"
|
|
158
156
|
|
|
159
|
-
#: admin/api/v2/serializers.py:
|
|
157
|
+
#: admin/api/v2/serializers.py:292
|
|
160
158
|
msgid "Please disable imap migration before disabling this option."
|
|
161
159
|
msgstr "Desative a migração imap antes de desativar esta opção."
|
|
162
160
|
|
|
163
|
-
#: admin/api/v2/serializers.py:
|
|
161
|
+
#: admin/api/v2/serializers.py:305
|
|
164
162
|
msgid "Define at least one authorized network / address"
|
|
165
163
|
msgstr "Defina pelo menos uma rede/endereço autorizado"
|
|
166
164
|
|
|
167
|
-
#: admin/api/v2/serializers.py:
|
|
165
|
+
#: admin/api/v2/serializers.py:581
|
|
168
166
|
msgid "The left part of an email address can't be more than 64 characters."
|
|
169
167
|
msgstr ""
|
|
170
168
|
"A parte à esquerda de um endereço de e-mail não pode ter mais de 64 "
|
|
171
169
|
"caracteres."
|
|
172
170
|
|
|
173
|
-
#: admin/api/v2/serializers.py:
|
|
171
|
+
#: admin/api/v2/serializers.py:603
|
|
174
172
|
msgid "A mailbox is required to create aliases."
|
|
175
173
|
msgstr "Uma caixa de correio é necessária para criar apelidos."
|
|
176
174
|
|
|
177
|
-
#: admin/api/v2/serializers.py:
|
|
175
|
+
#: admin/api/v2/serializers.py:772
|
|
178
176
|
msgid "Unknown status"
|
|
179
177
|
msgstr "Status desconhecido"
|
|
180
178
|
|
|
@@ -186,14 +184,6 @@ msgstr "Você não tem acesso a este domínio"
|
|
|
186
184
|
msgid "You can't delete your own domain"
|
|
187
185
|
msgstr "Você não pode excluir seu próprio domínio"
|
|
188
186
|
|
|
189
|
-
#: admin/api/v2/viewsets.py:407
|
|
190
|
-
msgid "No alarm ID provided"
|
|
191
|
-
msgstr "Nenhum ID de alarme fornecido"
|
|
192
|
-
|
|
193
|
-
#: admin/api/v2/viewsets.py:411
|
|
194
|
-
msgid "Received invalid alarm id(s)"
|
|
195
|
-
msgstr "IDs de alarme inválidos recebidos"
|
|
196
|
-
|
|
197
187
|
#: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
|
|
198
188
|
msgid "Domains"
|
|
199
189
|
msgstr "Domínios"
|
|
@@ -212,11 +202,11 @@ msgstr "MXs válidos"
|
|
|
212
202
|
|
|
213
203
|
#: admin/app_settings.py:37
|
|
214
204
|
msgid ""
|
|
215
|
-
"A list of IP or network address every MX record should match. A warning will
|
|
216
|
-
"be sent if a record does not respect it."
|
|
205
|
+
"A list of IP or network address every MX record should match. A warning will"
|
|
206
|
+
" be sent if a record does not respect it."
|
|
217
207
|
msgstr ""
|
|
218
|
-
"Uma lista de endereços IP ou de rede que cada registro MX deve corresponder.
|
|
219
|
-
"Um aviso será enviado se um registro não for respeitado."
|
|
208
|
+
"Uma lista de endereços IP ou de rede que cada registro MX deve corresponder."
|
|
209
|
+
" Um aviso será enviado se um registro não for respeitado."
|
|
220
210
|
|
|
221
211
|
#: admin/app_settings.py:47
|
|
222
212
|
msgid "New domains must use authorized MX(s)"
|
|
@@ -253,8 +243,8 @@ msgstr "Ativar verificações DKIM"
|
|
|
253
243
|
#: admin/app_settings.py:80
|
|
254
244
|
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
|
|
255
245
|
msgstr ""
|
|
256
|
-
"Verifique se todos os domínios com login DKIM habilitado têm um registro DNS
|
|
257
|
-
"válido"
|
|
246
|
+
"Verifique se todos os domínios com login DKIM habilitado têm um registro DNS"
|
|
247
|
+
" válido"
|
|
258
248
|
|
|
259
249
|
#: admin/app_settings.py:88
|
|
260
250
|
msgid "Enable DMARC checks"
|
|
@@ -302,8 +292,8 @@ msgid ""
|
|
|
302
292
|
"world."
|
|
303
293
|
msgstr ""
|
|
304
294
|
"Caminho absoluto do diretório onde as chaves privadas DKIM serão "
|
|
305
|
-
"armazenadas. Certifique-se que este diretório pertença ao usuário root e não
|
|
306
|
-
"seja legível pelo mundo exterior."
|
|
295
|
+
"armazenadas. Certifique-se que este diretório pertença ao usuário root e não"
|
|
296
|
+
" seja legível pelo mundo exterior."
|
|
307
297
|
|
|
308
298
|
#: admin/app_settings.py:137
|
|
309
299
|
msgid "Default DKIM key length"
|
|
@@ -363,8 +353,8 @@ msgid ""
|
|
|
363
353
|
"Default mailbox quota (in MB) applied to freshly created domains with no "
|
|
364
354
|
"value specified. A value of 0 means no quota."
|
|
365
355
|
msgstr ""
|
|
366
|
-
"Cota de caixa de correio padrão (em MB) aplicada para domínios recém-criados
|
|
367
|
-
"sem nenhum valor especificado. Um valor 0 significa que não há cota."
|
|
356
|
+
"Cota de caixa de correio padrão (em MB) aplicada para domínios recém-criados"
|
|
357
|
+
" sem nenhum valor especificado. Um valor 0 significa que não há cota."
|
|
368
358
|
|
|
369
359
|
#: admin/app_settings.py:197
|
|
370
360
|
msgid "Default mailbox sending limit"
|
|
@@ -392,7 +382,8 @@ msgid "Automatic domain/mailbox creation"
|
|
|
392
382
|
msgstr "Criação automática de domínio/caixa de correio"
|
|
393
383
|
|
|
394
384
|
#: admin/app_settings.py:221
|
|
395
|
-
msgid "
|
|
385
|
+
msgid ""
|
|
386
|
+
"Create a domain and a mailbox when an account is automatically created."
|
|
396
387
|
msgstr ""
|
|
397
388
|
"Crie um domínio e uma caixa de correio quando uma conta for criada "
|
|
398
389
|
"automaticamente."
|
|
@@ -407,7 +398,7 @@ msgstr ""
|
|
|
407
398
|
"Crie um apelido usando o endereço antigo quando uma caixa de correio for "
|
|
408
399
|
"renomeada."
|
|
409
400
|
|
|
410
|
-
#: admin/app_settings.py:287 core/api/v2/viewsets.py:
|
|
401
|
+
#: admin/app_settings.py:287 core/api/v2/viewsets.py:174
|
|
411
402
|
msgid "Administration"
|
|
412
403
|
msgstr "Administração"
|
|
413
404
|
|
|
@@ -436,7 +427,7 @@ msgstr "apelido de domínio"
|
|
|
436
427
|
msgid "Account import failed (%s): domain does not exist"
|
|
437
428
|
msgstr "Falha na importação da conta (%s): o domínio não existe"
|
|
438
429
|
|
|
439
|
-
#: admin/handlers.py:242 admin/models/mailbox.py:
|
|
430
|
+
#: admin/handlers.py:242 admin/models/mailbox.py:342
|
|
440
431
|
msgid "Mailbox {} already exists"
|
|
441
432
|
msgstr "A caixa de correio {} já existe"
|
|
442
433
|
|
|
@@ -702,7 +693,7 @@ msgstr "É necessária uma cota"
|
|
|
702
693
|
msgid "{}: domain quota exceeded"
|
|
703
694
|
msgstr "{}: cota de domínio excedida"
|
|
704
695
|
|
|
705
|
-
#: admin/models/mailbox.py:
|
|
696
|
+
#: admin/models/mailbox.py:310
|
|
706
697
|
msgid "Domain does not exist"
|
|
707
698
|
msgstr "O domínio não existe"
|
|
708
699
|
|
|
@@ -723,7 +714,8 @@ msgid ""
|
|
|
723
714
|
msgstr ""
|
|
724
715
|
"A reputação do domínio será afetada e há uma chance de que os e-mails "
|
|
725
716
|
"provenientes dele sejam considerados spam. Você deve entrar em contato com "
|
|
726
|
-
"esses provedores e pedir que eles retirem a lista de endereços IP
|
|
717
|
+
"esses provedores e pedir que eles retirem a lista de endereços IP "
|
|
718
|
+
"detectados."
|
|
727
719
|
|
|
728
720
|
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
|
|
729
721
|
#, python-format
|
|
@@ -766,7 +758,8 @@ msgstr "Geral"
|
|
|
766
758
|
|
|
767
759
|
#: autoreply/app_settings.py:18
|
|
768
760
|
#, fuzzy
|
|
769
|
-
#| msgid "
|
|
761
|
+
#| msgid ""
|
|
762
|
+
#| "Timeout in seconds between two auto-replies to the same recipient"
|
|
770
763
|
msgid "Period between two auto-replies"
|
|
771
764
|
msgstr ""
|
|
772
765
|
"Tempo limite, em segundos, entre duas respostas automáticas para o mesmo "
|
|
@@ -774,7 +767,8 @@ msgstr ""
|
|
|
774
767
|
|
|
775
768
|
#: autoreply/app_settings.py:20
|
|
776
769
|
#, fuzzy
|
|
777
|
-
#| msgid "
|
|
770
|
+
#| msgid ""
|
|
771
|
+
#| "Timeout in seconds between two auto-replies to the same recipient"
|
|
778
772
|
msgid ""
|
|
779
773
|
"Number of days to wait before sending a new auto-reply to the same recipient"
|
|
780
774
|
msgstr ""
|
|
@@ -879,7 +873,7 @@ msgstr ""
|
|
|
879
873
|
"Tamanho máximo em bytes dos arquivos ICS importados (ou KB, MB, GB se "
|
|
880
874
|
"especificado)"
|
|
881
875
|
|
|
882
|
-
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:
|
|
876
|
+
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
|
|
883
877
|
msgid "Calendars"
|
|
884
878
|
msgstr "Calendários"
|
|
885
879
|
|
|
@@ -915,7 +909,7 @@ msgstr "Frequência de sincronização"
|
|
|
915
909
|
msgid "Interval in seconds between 2 synchronization requests"
|
|
916
910
|
msgstr "Intervalo, em segundos, entre 2 pedidos de sincronização"
|
|
917
911
|
|
|
918
|
-
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:
|
|
912
|
+
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
|
|
919
913
|
msgid "Contacts"
|
|
920
914
|
msgstr "Contatos"
|
|
921
915
|
|
|
@@ -963,14 +957,15 @@ msgstr "Código PIN inválido"
|
|
|
963
957
|
msgid "2FA is already enabled"
|
|
964
958
|
msgstr "2FA já está habilitado"
|
|
965
959
|
|
|
966
|
-
#: core/api/v1/serializers.py:
|
|
967
|
-
#, python-format
|
|
968
|
-
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
|
|
960
|
+
#: core/api/v1/serializers.py:86
|
|
961
|
+
#, fuzzy, python-format
|
|
962
|
+
#| msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
|
|
963
|
+
msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
|
|
969
964
|
msgstr ""
|
|
970
965
|
"Falha na tentativa de edição de configurações do TFA de '%s' como usuário "
|
|
971
966
|
"'%s'"
|
|
972
967
|
|
|
973
|
-
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:
|
|
968
|
+
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
|
|
974
969
|
msgid "Invalid password"
|
|
975
970
|
msgstr "Senha inválida"
|
|
976
971
|
|
|
@@ -982,41 +977,42 @@ msgstr "2FA não está habilitado"
|
|
|
982
977
|
msgid "Local"
|
|
983
978
|
msgstr "Local"
|
|
984
979
|
|
|
985
|
-
#: core/api/v2/serializers.py:
|
|
980
|
+
#: core/api/v2/serializers.py:194 core/app_settings.py:17
|
|
986
981
|
msgid "User profile"
|
|
987
982
|
msgstr "Perfil do usuário"
|
|
988
983
|
|
|
989
|
-
#: core/api/v2/serializers.py:
|
|
990
|
-
#: core/api/v2/serializers.py:
|
|
984
|
+
#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
|
|
985
|
+
#: core/api/v2/serializers.py:228
|
|
991
986
|
msgid "Invalid syntax"
|
|
992
987
|
msgstr "Sintaxe inválida"
|
|
993
988
|
|
|
994
|
-
#: core/api/v2/serializers.py:
|
|
989
|
+
#: core/api/v2/serializers.py:233
|
|
995
990
|
msgid "Invalid rounds number"
|
|
996
991
|
msgstr "Número de ciclos inválido"
|
|
997
992
|
|
|
998
|
-
#: core/api/v2/serializers.py:
|
|
993
|
+
#: core/api/v2/serializers.py:433 core/forms.py:81
|
|
999
994
|
msgid "This code is invalid"
|
|
1000
995
|
msgstr "Este código é inválido"
|
|
1001
996
|
|
|
1002
|
-
#: core/api/v2/serializers.py:
|
|
997
|
+
#: core/api/v2/serializers.py:503 core/views/auth.py:194
|
|
998
|
+
#: core/views/auth.py:247
|
|
1003
999
|
msgid "Please use the following code to recover your Modoboa password: {}"
|
|
1004
1000
|
msgstr ""
|
|
1005
1001
|
"Por favor, use o seguinte código para recuperar sua senha do Modoboa: {}"
|
|
1006
1002
|
|
|
1007
|
-
#: core/api/v2/viewsets.py:
|
|
1003
|
+
#: core/api/v2/viewsets.py:176
|
|
1008
1004
|
msgid "Administration console"
|
|
1009
1005
|
msgstr "Console de administração"
|
|
1010
1006
|
|
|
1011
|
-
#: core/api/v2/viewsets.py:
|
|
1012
|
-
msgid "Calendar"
|
|
1013
|
-
msgstr "Calendário"
|
|
1014
|
-
|
|
1015
|
-
#: core/api/v2/viewsets.py:181
|
|
1007
|
+
#: core/api/v2/viewsets.py:187
|
|
1016
1008
|
msgid "Address book"
|
|
1017
1009
|
msgstr "Catálogo de endereço"
|
|
1018
1010
|
|
|
1019
|
-
#: core/api/v2/viewsets.py:
|
|
1011
|
+
#: core/api/v2/viewsets.py:197
|
|
1012
|
+
msgid "Calendar"
|
|
1013
|
+
msgstr "Calendário"
|
|
1014
|
+
|
|
1015
|
+
#: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
|
|
1020
1016
|
#: webmail/app_settings.py:258 webmail/app_settings.py:265
|
|
1021
1017
|
#, fuzzy
|
|
1022
1018
|
#| msgid "E-mail"
|
|
@@ -1204,8 +1200,8 @@ msgstr "Grupos de administradores"
|
|
|
1204
1200
|
|
|
1205
1201
|
#: core/app_settings.py:239
|
|
1206
1202
|
msgid ""
|
|
1207
|
-
"Members of those LDAP Posix groups will be created as domain administrators.
|
|
1208
|
-
"Use ';' characters to separate groups."
|
|
1203
|
+
"Members of those LDAP Posix groups will be created as domain administrators."
|
|
1204
|
+
" Use ';' characters to separate groups."
|
|
1209
1205
|
msgstr ""
|
|
1210
1206
|
"Membros dos grupos do LDAP Posix serão criados como administradores de "
|
|
1211
1207
|
"domínio. Use o caractere ';' para separar grupos."
|
|
@@ -1255,8 +1251,8 @@ msgid ""
|
|
|
1255
1251
|
"The distinguished name to use when binding to the LDAP server. Leave empty "
|
|
1256
1252
|
"for an anonymous bind"
|
|
1257
1253
|
msgstr ""
|
|
1258
|
-
"O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para
|
|
1259
|
-
"vincular anonimamente"
|
|
1254
|
+
"O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para"
|
|
1255
|
+
" vincular anonimamente"
|
|
1260
1256
|
|
|
1261
1257
|
#: core/app_settings.py:305 core/app_settings.py:367
|
|
1262
1258
|
msgid "Bind password"
|
|
@@ -1296,8 +1292,8 @@ msgid ""
|
|
|
1296
1292
|
"The template used to construct a user's DN. It should contain one "
|
|
1297
1293
|
"placeholder (ie. %(user)s)"
|
|
1298
1294
|
msgstr ""
|
|
1299
|
-
"A template usada para construir um DN de usuário. Deve conter um placeholder
|
|
1300
|
-
"(por ex: %(user)s)"
|
|
1295
|
+
"A template usada para construir um DN de usuário. Deve conter um placeholder"
|
|
1296
|
+
" (por ex: %(user)s)"
|
|
1301
1297
|
|
|
1302
1298
|
#: core/app_settings.py:350
|
|
1303
1299
|
msgid "LDAP synchronization settings"
|
|
@@ -1311,8 +1307,8 @@ msgstr "Habilitar exportação para LDAP"
|
|
|
1311
1307
|
msgid ""
|
|
1312
1308
|
"Enable automatic synchronization between local database and LDAP directory"
|
|
1313
1309
|
msgstr ""
|
|
1314
|
-
"Ativar a sincronização automática entre o banco de dados local e o diretório
|
|
1315
|
-
"LDAP"
|
|
1310
|
+
"Ativar a sincronização automática entre o banco de dados local e o diretório"
|
|
1311
|
+
" LDAP"
|
|
1316
1312
|
|
|
1317
1313
|
#: core/app_settings.py:389
|
|
1318
1314
|
msgid "Delete remote LDAP account when local account is deleted"
|
|
@@ -1408,7 +1404,8 @@ msgstr ""
|
|
|
1408
1404
|
|
|
1409
1405
|
#: core/app_settings.py:506
|
|
1410
1406
|
#, fuzzy
|
|
1411
|
-
#| msgid "
|
|
1407
|
+
#| msgid ""
|
|
1408
|
+
#| "Display custom RSS feed to resellers and domain administrators"
|
|
1412
1409
|
msgid "Display custom RSS feed to super admins"
|
|
1413
1410
|
msgstr ""
|
|
1414
1411
|
"Mostrar um feed RSS personalizado para revendedores e administradores de "
|
|
@@ -1416,7 +1413,8 @@ msgstr ""
|
|
|
1416
1413
|
|
|
1417
1414
|
#: core/app_settings.py:509
|
|
1418
1415
|
#, fuzzy
|
|
1419
|
-
#| msgid "
|
|
1416
|
+
#| msgid ""
|
|
1417
|
+
#| "Display custom RSS feed to resellers and domain administrators"
|
|
1420
1418
|
msgid "Display custom RSS feed also to super administrators"
|
|
1421
1419
|
msgstr ""
|
|
1422
1420
|
"Mostrar um feed RSS personalizado para revendedores e administradores de "
|
|
@@ -1537,8 +1535,8 @@ msgstr "Ativar rastreamento de conta inativa"
|
|
|
1537
1535
|
|
|
1538
1536
|
#: core/app_settings.py:686
|
|
1539
1537
|
msgid ""
|
|
1540
|
-
"Allow the administrator to set a threshold (in days) beyond which an account
|
|
1541
|
-
"is considered inactive if the user hasn't logged in"
|
|
1538
|
+
"Allow the administrator to set a threshold (in days) beyond which an account"
|
|
1539
|
+
" is considered inactive if the user hasn't logged in"
|
|
1542
1540
|
msgstr ""
|
|
1543
1541
|
"Permitir que o administrador defina um limite (em dias) além do qual uma "
|
|
1544
1542
|
"conta é considerada inativa se o usuário não tiver feito login"
|
|
@@ -1549,8 +1547,8 @@ msgstr "Limite de conta inativa"
|
|
|
1549
1547
|
|
|
1550
1548
|
#: core/app_settings.py:698
|
|
1551
1549
|
msgid ""
|
|
1552
|
-
"An account with a last login date greater than this threshold (in days) will
|
|
1553
|
-
"be considered as inactive"
|
|
1550
|
+
"An account with a last login date greater than this threshold (in days) will"
|
|
1551
|
+
" be considered as inactive"
|
|
1554
1552
|
msgstr ""
|
|
1555
1553
|
"Uma conta com uma data de login maior que este limite (em dias) será "
|
|
1556
1554
|
"considerada como inativa"
|
|
@@ -1571,19 +1569,27 @@ msgstr "Idade máxima do registro de log"
|
|
|
1571
1569
|
msgid "The maximum age in days of a log record"
|
|
1572
1570
|
msgstr "A idade máxima em dias de um registro de log"
|
|
1573
1571
|
|
|
1574
|
-
#: core/app_settings.py:
|
|
1572
|
+
#: core/app_settings.py:727
|
|
1573
|
+
msgid "Retention time in message history"
|
|
1574
|
+
msgstr ""
|
|
1575
|
+
|
|
1576
|
+
#: core/app_settings.py:730
|
|
1577
|
+
msgid "Retention time (in days) of a message in the message history section"
|
|
1578
|
+
msgstr ""
|
|
1579
|
+
|
|
1580
|
+
#: core/app_settings.py:737
|
|
1575
1581
|
msgid "Items per page"
|
|
1576
1582
|
msgstr "Itens por página"
|
|
1577
1583
|
|
|
1578
|
-
#: core/app_settings.py:
|
|
1584
|
+
#: core/app_settings.py:739
|
|
1579
1585
|
msgid "Number of displayed items per page"
|
|
1580
1586
|
msgstr "Número de itens exibidos por página"
|
|
1581
1587
|
|
|
1582
|
-
#: core/app_settings.py:
|
|
1588
|
+
#: core/app_settings.py:746
|
|
1583
1589
|
msgid "Default top redirection"
|
|
1584
1590
|
msgstr "Redirecionamento de topo padrão"
|
|
1585
1591
|
|
|
1586
|
-
#: core/app_settings.py:
|
|
1592
|
+
#: core/app_settings.py:748
|
|
1587
1593
|
msgid "The default redirection used when no application is specified"
|
|
1588
1594
|
msgstr ""
|
|
1589
1595
|
"O redirecionamento padrão usado quando nenhuma aplicação é especificada"
|
|
@@ -1618,8 +1624,9 @@ msgstr ""
|
|
|
1618
1624
|
|
|
1619
1625
|
#: core/checks.py:34
|
|
1620
1626
|
msgid ""
|
|
1621
|
-
"Visit :
|
|
1622
|
-
"html#dovecot-
|
|
1627
|
+
"Visit : "
|
|
1628
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
|
|
1629
|
+
"oauth2"
|
|
1623
1630
|
msgstr ""
|
|
1624
1631
|
|
|
1625
1632
|
#: core/checks.py:41
|
|
@@ -1630,8 +1637,9 @@ msgstr ""
|
|
|
1630
1637
|
|
|
1631
1638
|
#: core/checks.py:45
|
|
1632
1639
|
msgid ""
|
|
1633
|
-
"Visit :
|
|
1634
|
-
"radicale.html#radicale-
|
|
1640
|
+
"Visit : "
|
|
1641
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
|
|
1642
|
+
"oauth2"
|
|
1635
1643
|
msgstr ""
|
|
1636
1644
|
|
|
1637
1645
|
#: core/constants.py:6
|
|
@@ -2119,8 +2127,8 @@ msgstr "Inclusões de Filtro de Pasta"
|
|
|
2119
2127
|
#: imap_migration/app_settings.py:76
|
|
2120
2128
|
msgid ""
|
|
2121
2129
|
"A comma seperated list of folders to explicitly include in sync even if "
|
|
2122
|
-
"filtered by the Folder Filter Exclusions. Example: debian.user,
|
|
2123
|
-
"personal "
|
|
2130
|
+
"filtered by the Folder Filter Exclusions. Example: debian.user, "
|
|
2131
|
+
"debian.personal "
|
|
2124
2132
|
msgstr ""
|
|
2125
2133
|
"Uma lista separada por vírgulas de pastas a serem incluídas explicitamente "
|
|
2126
2134
|
"na sincronização, mesmo se filtradas pelas Exclusões de Filtro de Pasta. "
|
|
@@ -2130,12 +2138,6 @@ msgstr ""
|
|
|
2130
2138
|
msgid "IMAP Migration"
|
|
2131
2139
|
msgstr "Migração IMAP"
|
|
2132
2140
|
|
|
2133
|
-
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
|
|
2134
|
-
#, fuzzy, python-brace-format
|
|
2135
|
-
#| msgid "Connection to IMAP server failed: %s"
|
|
2136
|
-
msgid "Connection to IMAP server failed: {error}"
|
|
2137
|
-
msgstr "Falha na conexão com o servidor IMAP: %s"
|
|
2138
|
-
|
|
2139
2141
|
#: imap_migration/checks.py:12
|
|
2140
2142
|
msgid ""
|
|
2141
2143
|
"Automatic domain/mailbox creation is disabled which means IMAP "
|
|
@@ -2239,8 +2241,8 @@ msgstr "Apelidos de domínios"
|
|
|
2239
2241
|
|
|
2240
2242
|
#: limits/app_settings.py:52
|
|
2241
2243
|
msgid ""
|
|
2242
|
-
"Maximum number of allowed domain aliases for a new administrator. (0 to deny
|
|
2243
|
-
"any creation, -1 to allow unlimited creations)"
|
|
2244
|
+
"Maximum number of allowed domain aliases for a new administrator. (0 to deny"
|
|
2245
|
+
" any creation, -1 to allow unlimited creations)"
|
|
2244
2246
|
msgstr ""
|
|
2245
2247
|
"Número máximo de apelidos de domínio permitidos para um novo administrador. "
|
|
2246
2248
|
"(0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
|
|
@@ -2250,8 +2252,8 @@ msgid ""
|
|
|
2250
2252
|
"Maximum number of allowed mailboxes for a new administrator. (0 to deny any "
|
|
2251
2253
|
"creation, -1 to allow unlimited creations)"
|
|
2252
2254
|
msgstr ""
|
|
2253
|
-
"Número máximo de caixas de correio permitidas para um novo administrador. (0
|
|
2254
|
-
"para negar qualquer criação, -1 para permitir criações ilimitadas)"
|
|
2255
|
+
"Número máximo de caixas de correio permitidas para um novo administrador. (0"
|
|
2256
|
+
" para negar qualquer criação, -1 para permitir criações ilimitadas)"
|
|
2255
2257
|
|
|
2256
2258
|
#: limits/app_settings.py:73 limits/app_settings.py:146 limits/constants.py:39
|
|
2257
2259
|
#: limits/constants.py:92
|
|
@@ -2292,11 +2294,11 @@ msgstr "Habilitar ou desabilitar limites por domínio"
|
|
|
2292
2294
|
|
|
2293
2295
|
#: limits/app_settings.py:114
|
|
2294
2296
|
msgid ""
|
|
2295
|
-
"Maximum number of allowed domain administrators for a new domain. (0 to deny
|
|
2296
|
-
"any creation, -1 to allow unlimited creations)"
|
|
2297
|
+
"Maximum number of allowed domain administrators for a new domain. (0 to deny"
|
|
2298
|
+
" any creation, -1 to allow unlimited creations)"
|
|
2297
2299
|
msgstr ""
|
|
2298
|
-
"Número máximo de administradores de domínio permitidos para um novo domínio.
|
|
2299
|
-
"(0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
|
|
2300
|
+
"Número máximo de administradores de domínio permitidos para um novo domínio."
|
|
2301
|
+
" (0 para negar qualquer criação, -1 para permitir criações ilimitadas)"
|
|
2300
2302
|
|
|
2301
2303
|
#: limits/app_settings.py:126
|
|
2302
2304
|
msgid ""
|
|
@@ -2316,8 +2318,8 @@ msgstr ""
|
|
|
2316
2318
|
|
|
2317
2319
|
#: limits/app_settings.py:149
|
|
2318
2320
|
msgid ""
|
|
2319
|
-
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,
|
|
2320
|
-
"-1 to allow unlimited creations)"
|
|
2321
|
+
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
|
|
2322
|
+
" -1 to allow unlimited creations)"
|
|
2321
2323
|
msgstr ""
|
|
2322
2324
|
"Número máximo de apelidos permitidos para um novo domínio. (0 para negar "
|
|
2323
2325
|
"qualquer criação, -1 para permitir criações ilimitadas)"
|
|
@@ -2489,11 +2491,11 @@ msgstr "Contas"
|
|
|
2489
2491
|
msgid "Personal account information"
|
|
2490
2492
|
msgstr "Informações pessoais da conta"
|
|
2491
2493
|
|
|
2492
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2494
|
+
#: pdfcredentials/api/v2/serializers.py:86
|
|
2493
2495
|
msgid "Directory is not writable"
|
|
2494
2496
|
msgstr "O diretório não é gravável"
|
|
2495
2497
|
|
|
2496
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2498
|
+
#: pdfcredentials/api/v2/serializers.py:114
|
|
2497
2499
|
msgid "No document available for this user"
|
|
2498
2500
|
msgstr "Nenhum documento disponível para este usuário"
|
|
2499
2501
|
|
|
@@ -2543,8 +2545,9 @@ msgid ""
|
|
|
2543
2545
|
"Generate a new document only when a new account is created. If set to no, a "
|
|
2544
2546
|
"new document will be created each time a password is updated."
|
|
2545
2547
|
msgstr ""
|
|
2546
|
-
"Gere um novo documento somente quando uma nova conta for criada. Se definido
|
|
2547
|
-
"como não, um novo documento será criado sempre que uma senha for
|
|
2548
|
+
"Gere um novo documento somente quando uma nova conta for criada. Se definido"
|
|
2549
|
+
" como não, um novo documento será criado sempre que uma senha for "
|
|
2550
|
+
"atualizada."
|
|
2548
2551
|
|
|
2549
2552
|
#: pdfcredentials/app_settings.py:84
|
|
2550
2553
|
msgid "Customization options"
|
|
@@ -2583,8 +2586,8 @@ msgid ""
|
|
|
2583
2586
|
"Include required SMTP and IMAP connection information to configure a mail "
|
|
2584
2587
|
"client, a tablet or a phone"
|
|
2585
2588
|
msgstr ""
|
|
2586
|
-
"Incluir as informações de conexão SMTP e IMAP necessárias para configurar um
|
|
2587
|
-
"cliente de e-mail, um tablet ou um telefone"
|
|
2589
|
+
"Incluir as informações de conexão SMTP e IMAP necessárias para configurar um"
|
|
2590
|
+
" cliente de e-mail, um tablet ou um telefone"
|
|
2588
2591
|
|
|
2589
2592
|
#: pdfcredentials/app_settings.py:123 pdfcredentials/documents.py:133
|
|
2590
2593
|
msgid "SMTP server address"
|
|
@@ -2670,8 +2673,7 @@ msgid ""
|
|
|
2670
2673
|
"your contacts.\n"
|
|
2671
2674
|
msgstr ""
|
|
2672
2675
|
"\n"
|
|
2673
|
-
"Aqui você pode visualizar online seus e-mails a qualquer momento, criar "
|
|
2674
|
-
"filtros ou gerenciar\n"
|
|
2676
|
+
"Aqui você pode visualizar online seus e-mails a qualquer momento, criar filtros ou gerenciar\n"
|
|
2675
2677
|
"seus contatos.\n"
|
|
2676
2678
|
|
|
2677
2679
|
#: pdfcredentials/documents.py:126
|
|
@@ -2691,8 +2693,8 @@ msgid ""
|
|
|
2691
2693
|
"Failed to create PDF_credentials directory. Please check the permissions or "
|
|
2692
2694
|
"the path."
|
|
2693
2695
|
msgstr ""
|
|
2694
|
-
"Falha ao criar diretório PDF_credentials. Por favor, verifique as permissões
|
|
2695
|
-
"ou o caminho."
|
|
2696
|
+
"Falha ao criar diretório PDF_credentials. Por favor, verifique as permissões"
|
|
2697
|
+
" ou o caminho."
|
|
2696
2698
|
|
|
2697
2699
|
#: pdfcredentials/handlers.py:64
|
|
2698
2700
|
msgid "Download PDF credentials"
|
|
@@ -2775,8 +2777,8 @@ msgstr ""
|
|
|
2775
2777
|
|
|
2776
2778
|
#: rspamd/app_settings.py:21
|
|
2777
2779
|
msgid ""
|
|
2778
|
-
"Absolute path of the file which contains paths to DKIM private keys. Must be
|
|
2779
|
-
"readable by _rspamd group or user."
|
|
2780
|
+
"Absolute path of the file which contains paths to DKIM private keys. Must be"
|
|
2781
|
+
" readable by _rspamd group or user."
|
|
2780
2782
|
msgstr ""
|
|
2781
2783
|
|
|
2782
2784
|
#: rspamd/app_settings.py:30
|
|
@@ -2795,8 +2797,8 @@ msgstr ""
|
|
|
2795
2797
|
|
|
2796
2798
|
#: rspamd/app_settings.py:53
|
|
2797
2799
|
msgid ""
|
|
2798
|
-
"Location of the rspamd dashboard. Can either be a relative URL (eg.
|
|
2799
|
-
"rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2800
|
+
"Location of the rspamd dashboard. Can either be a relative URL (eg. "
|
|
2801
|
+
"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2800
2802
|
"guidance on the Super-Admin dashboard."
|
|
2801
2803
|
msgstr ""
|
|
2802
2804
|
|
|
@@ -2859,7 +2861,7 @@ msgstr "Qualquer um dos seguintes"
|
|
|
2859
2861
|
|
|
2860
2862
|
#: sievefilters/constants.py:12
|
|
2861
2863
|
msgid "All messages"
|
|
2862
|
-
msgstr "Todas
|
|
2864
|
+
msgstr "Todas mensagens"
|
|
2863
2865
|
|
|
2864
2866
|
#: sievefilters/constants.py:16
|
|
2865
2867
|
msgid "contains"
|
|
@@ -3021,8 +3023,8 @@ msgid ""
|
|
|
3021
3023
|
"primary address, and check your spam folder.</p>"
|
|
3022
3024
|
msgstr ""
|
|
3023
3025
|
"<p>Enviamos instruções por e-mail para definir sua senha, se houver uma "
|
|
3024
|
-
"conta com o e-mail que você digitou. Você deve recebê-lo em breve.</p> <p>Se
|
|
3025
|
-
"você não receber um e-mail, certifique-se de ter digitado seu endereço "
|
|
3026
|
+
"conta com o e-mail que você digitou. Você deve recebê-lo em breve.</p> <p>Se"
|
|
3027
|
+
" você não receber um e-mail, certifique-se de ter digitado seu endereço "
|
|
3026
3028
|
"principal e verifique sua pasta de spam.</p>"
|
|
3027
3029
|
|
|
3028
3030
|
#: templates/registration/password_reset_email.html:4
|
|
@@ -3041,8 +3043,8 @@ msgid ""
|
|
|
3041
3043
|
"If clicking the link above doesn't work, please copy and paste the URL in a "
|
|
3042
3044
|
"new browser window instead."
|
|
3043
3045
|
msgstr ""
|
|
3044
|
-
"Se clicar no link acima não funcionar, copie e cole a URL em uma nova janela
|
|
3045
|
-
"do navegador."
|
|
3046
|
+
"Se clicar no link acima não funcionar, copie e cole a URL em uma nova janela"
|
|
3047
|
+
" do navegador."
|
|
3046
3048
|
|
|
3047
3049
|
#: templates/registration/password_reset_email.html:14
|
|
3048
3050
|
#: templates/registration/password_reset_email_v2.html:14
|
|
@@ -3071,11 +3073,11 @@ msgstr "Senha de uso único"
|
|
|
3071
3073
|
|
|
3072
3074
|
#: templates/registration/twofactor_code_verify.html:35
|
|
3073
3075
|
msgid ""
|
|
3074
|
-
"Enter the code from the two-factor app on your mobile device. If you've lost
|
|
3075
|
-
"your device, you may enter one of your recovery codes."
|
|
3076
|
+
"Enter the code from the two-factor app on your mobile device. If you've lost"
|
|
3077
|
+
" your device, you may enter one of your recovery codes."
|
|
3076
3078
|
msgstr ""
|
|
3077
|
-
"Digite o código do aplicativo de dois fatores em seu celular. Se você perdeu
|
|
3078
|
-
"seu dispositivo, pode digitar um de seus códigos de recuperação."
|
|
3079
|
+
"Digite o código do aplicativo de dois fatores em seu celular. Se você perdeu"
|
|
3080
|
+
" seu dispositivo, pode digitar um de seus códigos de recuperação."
|
|
3079
3081
|
|
|
3080
3082
|
#: templates/registration/twofactor_code_verify.html:42
|
|
3081
3083
|
msgid "Verify code"
|
|
@@ -3275,16 +3277,32 @@ msgstr "Texto da assinatura"
|
|
|
3275
3277
|
msgid "User defined email signature"
|
|
3276
3278
|
msgstr "Assinatura de e-mail definida pelo usuário"
|
|
3277
3279
|
|
|
3280
|
+
#: webmail/exceptions.py:18
|
|
3281
|
+
#, fuzzy
|
|
3282
|
+
#| msgid "Server address"
|
|
3283
|
+
msgid "Server response"
|
|
3284
|
+
msgstr "Endereço do servidor"
|
|
3285
|
+
|
|
3278
3286
|
#: webmail/lib/attachments.py:112
|
|
3279
3287
|
#, fuzzy
|
|
3280
3288
|
#| msgid "Failed to create LDAP account: {}"
|
|
3281
3289
|
msgid "Failed to remove attachment: "
|
|
3282
3290
|
msgstr "Falha ao remover anexo:"
|
|
3283
3291
|
|
|
3292
|
+
#: webmail/lib/imapemail.py:272
|
|
3293
|
+
msgid "wrote:"
|
|
3294
|
+
msgstr ""
|
|
3295
|
+
|
|
3284
3296
|
#: webmail/lib/imapemail.py:306
|
|
3285
3297
|
msgid "Date"
|
|
3286
3298
|
msgstr "Data"
|
|
3287
3299
|
|
|
3300
|
+
#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
|
|
3301
|
+
#, fuzzy
|
|
3302
|
+
#| msgid "All messages"
|
|
3303
|
+
msgid "Original message"
|
|
3304
|
+
msgstr "Todas as mensagens"
|
|
3305
|
+
|
|
3288
3306
|
#: webmail/lib/imaputils.py:221
|
|
3289
3307
|
msgid "Failed to retrieve hierarchy delimiter"
|
|
3290
3308
|
msgstr "Falha ao recuperar o delimitador de hierarquia"
|
|
@@ -3315,3 +3333,13 @@ msgstr ""
|
|
|
3315
3333
|
#, python-format
|
|
3316
3334
|
msgid "Attachment is too big (limit: %s)"
|
|
3317
3335
|
msgstr "Anexo muito grande (limite: %s)"
|
|
3336
|
+
|
|
3337
|
+
#~ msgid "No alarm ID provided"
|
|
3338
|
+
#~ msgstr "Nenhum ID de alarme fornecido"
|
|
3339
|
+
|
|
3340
|
+
#~ msgid "Received invalid alarm id(s)"
|
|
3341
|
+
#~ msgstr "IDs de alarme inválidos recebidos"
|
|
3342
|
+
|
|
3343
|
+
#, fuzzy, python-brace-format
|
|
3344
|
+
#~ msgid "Connection to IMAP server failed: {error}"
|
|
3345
|
+
#~ msgstr "Falha na conexão com o servidor IMAP: %s"
|