modoboa 2.4.11__py3-none-any.whl → 2.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- modoboa/admin/api/v2/serializers.py +14 -0
- modoboa/amavis/__init__.py +3 -0
- modoboa/amavis/app_settings.py +276 -0
- modoboa/amavis/apps.py +18 -0
- modoboa/amavis/checks/__init__.py +2 -0
- modoboa/amavis/checks/settings_checks.py +59 -0
- modoboa/amavis/dbrouter.py +35 -0
- modoboa/amavis/factories.py +164 -0
- modoboa/amavis/handlers.py +146 -0
- modoboa/amavis/lib.py +381 -0
- modoboa/amavis/management/__init__.py +0 -0
- modoboa/amavis/management/commands/__init__.py +0 -0
- modoboa/amavis/management/commands/amnotify.py +99 -0
- modoboa/amavis/management/commands/qcleanup.py +84 -0
- modoboa/amavis/migrations/0001_initial.py +340 -0
- modoboa/amavis/migrations/__init__.py +0 -0
- modoboa/amavis/models.py +226 -0
- modoboa/amavis/serializers.py +139 -0
- modoboa/amavis/sql_connector.py +240 -0
- modoboa/amavis/sql_email.py +66 -0
- modoboa/amavis/tasks.py +33 -0
- modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
- modoboa/amavis/tests/__init__.py +0 -0
- modoboa/amavis/tests/sa-learn +3 -0
- modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
- modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
- modoboa/amavis/tests/spamc +3 -0
- modoboa/amavis/tests/test_checks.py +25 -0
- modoboa/amavis/tests/test_handlers.py +214 -0
- modoboa/amavis/tests/test_lib.py +90 -0
- modoboa/amavis/tests/test_management_commands.py +45 -0
- modoboa/amavis/tests/test_sql_email.py +67 -0
- modoboa/amavis/tests/test_utils.py +19 -0
- modoboa/amavis/tests/test_viewsets.py +319 -0
- modoboa/amavis/urls.py +11 -0
- modoboa/amavis/utils.py +105 -0
- modoboa/amavis/viewsets.py +265 -0
- modoboa/core/api/v1/serializers.py +7 -5
- modoboa/core/api/v2/serializers.py +4 -2
- modoboa/core/api/v2/tests.py +16 -4
- modoboa/core/api/v2/urls.py +5 -5
- modoboa/core/api/v2/views.py +6 -2
- modoboa/core/api/v2/viewsets.py +24 -3
- modoboa/core/commands/deploy.py +3 -0
- modoboa/core/commands/templates/settings.py.tpl +12 -11
- modoboa/core/handlers.py +6 -2
- modoboa/core/management/commands/add_allowed_hosts.py +33 -0
- modoboa/core/management/commands/load_initial_data.py +10 -0
- modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
- modoboa/core/tests/test_core.py +24 -0
- modoboa/core/utils.py +3 -0
- modoboa/frontend_dist/assets/AccountAliasForm-C0oHHyZL.js +1 -0
- modoboa/frontend_dist/assets/AccountEditView-lgSJ2Se8.js +1 -0
- modoboa/frontend_dist/assets/AccountLayout-U386K8zy.js +1 -0
- modoboa/frontend_dist/assets/AccountPasswordSubForm-YsaE_cDx.js +1 -0
- modoboa/frontend_dist/assets/AccountView-1jfKFDwb.js +1 -0
- modoboa/frontend_dist/assets/AddressBook-CwN64Zls.js +1 -0
- modoboa/frontend_dist/assets/AdminLayout-Cxm1lggg.js +1 -0
- modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
- modoboa/frontend_dist/assets/AlarmsView-Bcjsicac.js +1 -0
- modoboa/frontend_dist/assets/AliasEditView-k3rVt1tG.js +1 -0
- modoboa/frontend_dist/assets/{AliasRecipientForm-IOae6sjF.js → AliasRecipientForm-IehUzKok.js} +1 -1
- modoboa/frontend_dist/assets/AliasView-DMzA10eD.js +1 -0
- modoboa/frontend_dist/assets/AuditTrailView-5dnGX5El.js +1 -0
- modoboa/frontend_dist/assets/CalendarView-DZONeDA9.js +1 -0
- modoboa/frontend_dist/assets/{ChoiceField-DJ_c78Cm.js → ChoiceField-DnwXRkht.js} +1 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-kghmfNuE.js +1 -0
- modoboa/frontend_dist/assets/ComposeEmailView-DLv3wk1k.js +1 -0
- modoboa/frontend_dist/assets/ConfirmDialog-CcPrCKuI.js +1 -0
- modoboa/frontend_dist/assets/{ConnectedLayout-Dvwmicnc.css → ConnectedLayout-Bxh21hcH.css} +1 -1
- modoboa/frontend_dist/assets/ConnectedLayout-CWlBK7Hf.js +1 -0
- modoboa/frontend_dist/assets/CreationForm-CW4lxnPg.js +1 -0
- modoboa/frontend_dist/assets/DashboardView-DXVZMbMo.js +1 -0
- modoboa/frontend_dist/assets/DomainAdminList-C3jcDDc3.js +1 -0
- modoboa/frontend_dist/assets/DomainEditView-ph8AaElX.js +1 -0
- modoboa/frontend_dist/assets/{DomainTransportForm-C2xo0Yd7.js → DomainTransportForm-NCz6Bl-h.js} +1 -1
- modoboa/frontend_dist/assets/DomainView-BgMSSuU-.js +5 -0
- modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
- modoboa/frontend_dist/assets/DomainsView-CEEU9btK.js +1 -0
- modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
- modoboa/frontend_dist/assets/EmailField-DeqDPm5j.js +1 -0
- modoboa/frontend_dist/assets/EmailView-DczVhVO0.js +1 -0
- modoboa/frontend_dist/assets/EmptyLayout-BXgcfMLH.js +1 -0
- modoboa/frontend_dist/assets/FiltersView-nJj_gSCx.js +1 -0
- modoboa/frontend_dist/assets/ForwardEmailView-Bgv3JQb6.js +1 -0
- modoboa/frontend_dist/assets/{HtmlEditor-CJ9umKeO.js → HtmlEditor-BWRdelVw.js} +1 -1
- modoboa/frontend_dist/assets/{IdentitiesView-0ziuQ5s-.css → IdentitiesView-DPrrRMS5.css} +1 -1
- modoboa/frontend_dist/assets/IdentitiesView-Dld9IloZ.js +1 -0
- modoboa/frontend_dist/assets/InformationView-BBWKSX8D.js +1 -0
- modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
- modoboa/frontend_dist/assets/{LoadingData-CYwX3Jpn.js → LoadingData-G57nJ_JV.js} +1 -1
- modoboa/frontend_dist/assets/{LoginCallbackView-E01qkKn0.js → LoginCallbackView-DjyE2SG_.js} +1 -1
- modoboa/frontend_dist/assets/{LoginView-Cy4uFV9h.js → LoginView-CqCCXYLo.js} +1 -1
- modoboa/frontend_dist/assets/{MailboxView-B-aI4XBq.css → MailboxView-CfStlWhk.css} +1 -1
- modoboa/frontend_dist/assets/MailboxView-DRrs9eLO.js +1 -0
- modoboa/frontend_dist/assets/MenuItems-BqIZW5av.js +1 -0
- modoboa/frontend_dist/assets/MessageView-D_6tx_gd.js +1 -0
- modoboa/frontend_dist/assets/MessagesView-BH7JIR03.js +1 -0
- modoboa/frontend_dist/assets/MigrationsView-Cv_So9T-.js +1 -0
- modoboa/frontend_dist/assets/{ParametersForm-BZM0QSvg.js → ParametersForm-3qXttTuQ.js} +1 -1
- modoboa/frontend_dist/assets/ParametersView-3Ns04cpQ.js +1 -0
- modoboa/frontend_dist/assets/ParametersView-B5B5Dt6K.js +1 -0
- modoboa/frontend_dist/assets/ProviderEditView-zh7CY832.js +1 -0
- modoboa/frontend_dist/assets/ProviderGeneralForm-BQU7t3ma.js +1 -0
- modoboa/frontend_dist/assets/ProvidersView-CoF_ZkZA.js +1 -0
- modoboa/frontend_dist/assets/QuarantineLayout-CYBsrbJM.js +1 -0
- modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
- modoboa/frontend_dist/assets/QuarantineView-DNvpoycb.js +1 -0
- modoboa/frontend_dist/assets/ReplyEmailView-D1XTcglu.js +1 -0
- modoboa/frontend_dist/assets/ResourcesForm-BW8rUGgZ.js +1 -0
- modoboa/frontend_dist/assets/SelfServiceLayout-DfDHiYeX.js +1 -0
- modoboa/frontend_dist/assets/{SettingsView-BxLJBFY0.js → SettingsView-gQiJ2NVb.js} +2 -2
- modoboa/frontend_dist/assets/StatisticsView-DYalet_q.js +1 -0
- modoboa/frontend_dist/assets/TimeSerieChart-BZ2htbFk.js +1 -0
- modoboa/frontend_dist/assets/UserLayout-zUtHi-z-.js +1 -0
- modoboa/frontend_dist/assets/VAlert-4r6LxKtg.js +1 -0
- modoboa/frontend_dist/assets/VApp-CX_C7AUN.js +1 -0
- modoboa/frontend_dist/assets/VAutocomplete-DNKmBvyZ.js +1 -0
- modoboa/frontend_dist/assets/VAvatar-DbuoZWmf.js +1 -0
- modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
- modoboa/frontend_dist/assets/VBadge-Bv2nvUmC.js +1 -0
- modoboa/frontend_dist/assets/VCard-DzjUT5OP.js +1 -0
- modoboa/frontend_dist/assets/VCheckbox-dr7UFjl4.js +1 -0
- modoboa/frontend_dist/assets/{VCheckboxBtn-Dt810gWf.js → VCheckboxBtn-CpFdBnTv.js} +1 -1
- modoboa/frontend_dist/assets/VChip-CaQvfmkw.js +1 -0
- modoboa/frontend_dist/assets/VColorPicker-ByGpCW5O.js +1 -0
- modoboa/frontend_dist/assets/{VContainer-DvTbsotR.js → VContainer-74Dnn8Ux.js} +1 -1
- modoboa/frontend_dist/assets/VDataTable-CL7yHvG7.js +1 -0
- modoboa/frontend_dist/assets/VDataTableServer-BqvNcIdw.js +1 -0
- modoboa/frontend_dist/assets/VDataTableVirtual--KsOP8i6.js +1 -0
- modoboa/frontend_dist/assets/{VDialog-Bk6EWNhz.js → VDialog-DmTGCGR0.js} +1 -1
- modoboa/frontend_dist/assets/VExpansionPanels-B7sSTCwd.js +1 -0
- modoboa/frontend_dist/assets/VFileInput-SULIc6F3.js +1 -0
- modoboa/frontend_dist/assets/VForm-DsRLc-sa.js +1 -0
- modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
- modoboa/frontend_dist/assets/VInput-DVKUObZe.js +1 -0
- modoboa/frontend_dist/assets/VMenu-nv0XOgg0.js +1 -0
- modoboa/frontend_dist/assets/VPicker-DnDSWJHJ.js +1 -0
- modoboa/frontend_dist/assets/VProgressCircular-qK6p5X_Y.js +1 -0
- modoboa/frontend_dist/assets/VRadioGroup-CbiPLy0t.js +1 -0
- modoboa/frontend_dist/assets/{VRow-BF35mT1S.js → VRow-DJ0NB63-.js} +1 -1
- modoboa/frontend_dist/assets/VSelect-CxCFMHyF.js +1 -0
- modoboa/frontend_dist/assets/VSelectionControl-C-6A4us5.js +1 -0
- modoboa/frontend_dist/assets/VSheet-DI6SxLnG.js +1 -0
- modoboa/frontend_dist/assets/VSpacer-CoJVmx8k.js +1 -0
- modoboa/frontend_dist/assets/VSwitch-DPnjPQuU.js +1 -0
- modoboa/frontend_dist/assets/VTable-ldTxgQPW.js +1 -0
- modoboa/frontend_dist/assets/VTabs-aS8WSL9I.js +1 -0
- modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
- modoboa/frontend_dist/assets/VTextField-DKbr4H5w.js +1 -0
- modoboa/frontend_dist/assets/VTextarea-BttkFsM4.js +1 -0
- modoboa/frontend_dist/assets/VToolbar-BxX3W2kR.js +1 -0
- modoboa/frontend_dist/assets/VWindowItem-Cvqvdegd.js +1 -0
- modoboa/frontend_dist/assets/WebmailLayout-BT2k6U7q.js +1 -0
- modoboa/frontend_dist/assets/accounts-CC2F0a0c.js +1 -0
- modoboa/frontend_dist/assets/{admin-o-HRGnmT.js → admin-CHCHFGI6.js} +1 -1
- modoboa/frontend_dist/assets/{aliases-DDVeehyg.js → aliases-C9bUD4Ws.js} +1 -1
- modoboa/frontend_dist/assets/amavis-BhzV4rgf.js +1 -0
- modoboa/frontend_dist/assets/amavis-DCVJxuui.js +1 -0
- modoboa/frontend_dist/assets/{contacts-C84DY-Q1.js → contacts-Dxz6eWpf.js} +1 -1
- modoboa/frontend_dist/assets/{domains-Bgn4ixHL.js → domains-C2cornvL.js} +1 -1
- modoboa/frontend_dist/assets/{domains.store-DTE-V7Y1.js → domains.store-BLKRipG8.js} +1 -1
- modoboa/frontend_dist/assets/{filter-CnffiQAW.js → filter-rmxrcjKk.js} +1 -1
- modoboa/frontend_dist/assets/forwardRefs-CpzzjgpX.js +1 -0
- modoboa/frontend_dist/assets/global.store-DndbMXYb.js +1 -0
- modoboa/frontend_dist/assets/{importExport-BlQYb0NO.js → importExport-C3uqrcok.js} +1 -1
- modoboa/frontend_dist/assets/index-LhNzkzAh.js +984 -0
- modoboa/frontend_dist/assets/layout-DbjDe3Wl.js +1 -0
- modoboa/frontend_dist/assets/{layout.store-DkjrAoXt.js → layout.store-Vq5mvIp7.js} +1 -1
- modoboa/frontend_dist/assets/{logos-q8SEyAa4.js → logos-Bvcy0usu.js} +1 -1
- modoboa/frontend_dist/assets/{logs-B7IJ7LBa.js → logs-BuItINky.js} +1 -1
- modoboa/frontend_dist/assets/{parameters-A6iBEYQq.js → parameters-C8IYEP7q.js} +1 -1
- modoboa/frontend_dist/assets/{parameters.store-BiXS4_6w.js → parameters.store-1cwSP2JP.js} +1 -1
- modoboa/frontend_dist/assets/permissions-DQjAcO9S.js +1 -0
- modoboa/frontend_dist/assets/{ssrBoot-AzTdjPjk.js → ssrBoot-BxIQ9ccA.js} +1 -1
- modoboa/frontend_dist/assets/{tag-BnSYRTcD.js → tag-3cfI1_f7.js} +1 -1
- modoboa/frontend_dist/assets/transports-D4Jk4-AP.js +1 -0
- modoboa/frontend_dist/assets/{webmail-CSH_3l6R.js → webmail-B2IUjaxM.js} +1 -1
- modoboa/frontend_dist/index.html +1 -1
- modoboa/lib/email_utils.py +2 -2
- modoboa/lib/permissions.py +7 -0
- modoboa/lib/test_runners.py +29 -0
- modoboa/lib/tests/__init__.py +5 -1
- modoboa/locale/br/LC_MESSAGES/django.po +87 -75
- modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
- modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
- modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/de/LC_MESSAGES/django.po +339 -651
- modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
- modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
- modoboa/locale/en/LC_MESSAGES/django.po +82 -74
- modoboa/locale/es/LC_MESSAGES/django.po +158 -131
- modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
- modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
- modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
- modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
- modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/it/LC_MESSAGES/django.po +148 -122
- modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/ja_JP/LC_MESSAGES/django.po +80 -72
- modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
- modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
- modoboa/locale/no/LC_MESSAGES/django.po +82 -74
- modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
- modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
- modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
- modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
- modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
- modoboa/locale/si/LC_MESSAGES/django.po +82 -74
- modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
- modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
- modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
- modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
- modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
- modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
- modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
- modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
- modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
- modoboa/parameters/api/v2/tests.py +2 -2
- modoboa/parameters/api/v2/viewsets.py +2 -0
- modoboa/policyd/tests.py +2 -0
- modoboa/urls_api_v2.py +6 -0
- modoboa/webmail/lib/imaputils.py +2 -2
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/METADATA +6 -4
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/RECORD +235 -185
- modoboa/frontend_dist/assets/AccountAliasForm-BV6KvTu6.js +0 -1
- modoboa/frontend_dist/assets/AccountEditView-DDOFyfBD.js +0 -1
- modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +0 -1
- modoboa/frontend_dist/assets/AccountPasswordSubForm-D9S6LaeH.js +0 -1
- modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +0 -1
- modoboa/frontend_dist/assets/AddressBook-DCJxL8SU.js +0 -1
- modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +0 -1
- modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
- modoboa/frontend_dist/assets/AlarmsView-C0bqC4PA.js +0 -1
- modoboa/frontend_dist/assets/AliasEditView-DVoWoCGY.js +0 -1
- modoboa/frontend_dist/assets/AliasView-DrONZXOh.js +0 -1
- modoboa/frontend_dist/assets/AuditTrailView-OTkoZaMU.js +0 -1
- modoboa/frontend_dist/assets/CalendarView-CqF4_Ui9.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailForm-DO5_GB3e.js +0 -1
- modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +0 -1
- modoboa/frontend_dist/assets/ConfirmDialog-BBcgdAnO.js +0 -1
- modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +0 -1
- modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +0 -1
- modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +0 -1
- modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +0 -1
- modoboa/frontend_dist/assets/DomainEditView-CQjKwYxl.js +0 -1
- modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +0 -5
- modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +0 -1
- modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
- modoboa/frontend_dist/assets/EmailField-C8umy0EU.js +0 -1
- modoboa/frontend_dist/assets/EmailView-ki7uEQPD.js +0 -1
- modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +0 -1
- modoboa/frontend_dist/assets/FiltersView-FYFZxG4B.js +0 -1
- modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +0 -1
- modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +0 -1
- modoboa/frontend_dist/assets/InformationView-D1h38POt.js +0 -1
- modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
- modoboa/frontend_dist/assets/MailboxView-IlrLWm_H.js +0 -1
- modoboa/frontend_dist/assets/MenuItems-BAtHWzAE.js +0 -1
- modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +0 -1
- modoboa/frontend_dist/assets/MigrationsView-DKNOsVzF.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +0 -1
- modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +0 -1
- modoboa/frontend_dist/assets/ProviderEditView-CyxCWTST.js +0 -1
- modoboa/frontend_dist/assets/ProviderGeneralForm-BYPjNHqB.js +0 -1
- modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +0 -1
- modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +0 -1
- modoboa/frontend_dist/assets/ResourcesForm-CuUvrOdY.js +0 -1
- modoboa/frontend_dist/assets/StatisticsView-BN7QsZMT.js +0 -1
- modoboa/frontend_dist/assets/TimeSerieChart-BMN8BeFZ.js +0 -1
- modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +0 -1
- modoboa/frontend_dist/assets/VAlert-DIQTrRif.js +0 -1
- modoboa/frontend_dist/assets/VApp-CpkYA7js.js +0 -1
- modoboa/frontend_dist/assets/VAutocomplete-C4IpXyl8.js +0 -1
- modoboa/frontend_dist/assets/VAvatar-Lpb-Dion.js +0 -1
- modoboa/frontend_dist/assets/VCard-er_isjE_.js +0 -1
- modoboa/frontend_dist/assets/VCheckbox-D-u8JXP1.js +0 -1
- modoboa/frontend_dist/assets/VChip-B4iSpj8_.js +0 -1
- modoboa/frontend_dist/assets/VColorPicker-BAjGDsXv.js +0 -1
- modoboa/frontend_dist/assets/VDataTable-4JRjbtgF.js +0 -1
- modoboa/frontend_dist/assets/VDataTableServer-tIDT1m3-.js +0 -1
- modoboa/frontend_dist/assets/VDataTableVirtual-BlnO18u_.js +0 -1
- modoboa/frontend_dist/assets/VExpansionPanels-CwGtXDhr.js +0 -1
- modoboa/frontend_dist/assets/VFileInput-D1_7ZkO_.js +0 -1
- modoboa/frontend_dist/assets/VForm-DAkW4nfy.js +0 -1
- modoboa/frontend_dist/assets/VMenu-BPFJwj2f.js +0 -1
- modoboa/frontend_dist/assets/VPicker-CfT82M8N.js +0 -1
- modoboa/frontend_dist/assets/VProgressCircular-w75-3ogi.js +0 -1
- modoboa/frontend_dist/assets/VRadioGroup-0j6DNC_k.js +0 -1
- modoboa/frontend_dist/assets/VSelect-Cs4ARbAS.js +0 -1
- modoboa/frontend_dist/assets/VSelectionControl-Dg-XyRRS.js +0 -1
- modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +0 -1
- modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +0 -1
- modoboa/frontend_dist/assets/VSwitch-Cs1NQrmk.js +0 -1
- modoboa/frontend_dist/assets/VTable-CNz2SGk4.js +0 -1
- modoboa/frontend_dist/assets/VTabs-B1fyVn4M.js +0 -1
- modoboa/frontend_dist/assets/VTextField-BdyvgvkG.js +0 -1
- modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
- modoboa/frontend_dist/assets/VTextarea-DnOMpe0Q.js +0 -1
- modoboa/frontend_dist/assets/VToolbar-BiCiBxBJ.js +0 -1
- modoboa/frontend_dist/assets/VWindowItem-ChWm_kz3.js +0 -1
- modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +0 -1
- modoboa/frontend_dist/assets/forwardRefs-Dvjn_Xq4.js +0 -1
- modoboa/frontend_dist/assets/global.store-BaiD63EN.js +0 -1
- modoboa/frontend_dist/assets/index-I1VDlN4g.js +0 -984
- modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +0 -1
- modoboa/frontend_dist/assets/permissions-CITHLHVg.js +0 -1
- modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +0 -1
- {modoboa-2.4.11.data → modoboa-2.5.1.data}/scripts/modoboa-admin.py +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/WHEEL +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/entry_points.txt +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/licenses/LICENSE +0 -0
- {modoboa-2.4.11.dist-info → modoboa-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# SOME DESCRIPTIVE TITLE.
|
|
2
2
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
3
3
|
# This file is distributed under the same license as the PACKAGE package.
|
|
4
|
-
#
|
|
4
|
+
#
|
|
5
5
|
# Translators:
|
|
6
6
|
# Antoine Nguyen <tonio@ngyn.org>, 2016-2017,2020,2023-2025
|
|
7
7
|
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2018
|
|
@@ -15,85 +15,92 @@ msgid ""
|
|
|
15
15
|
msgstr ""
|
|
16
16
|
"Project-Id-Version: Modoboa\n"
|
|
17
17
|
"Report-Msgid-Bugs-To: \n"
|
|
18
|
-
"POT-Creation-Date: 2025-
|
|
18
|
+
"POT-Creation-Date: 2025-08-28 09:41+0200\n"
|
|
19
19
|
"PO-Revision-Date: 2011-07-01 08:15+0000\n"
|
|
20
20
|
"Last-Translator: Antoine Nguyen <tonio@ngyn.org>, 2016-2017,2020,2023-2025\n"
|
|
21
21
|
"Language-Team: French (http://app.transifex.com/tonio/modoboa/language/fr/)\n"
|
|
22
|
+
"Language: fr\n"
|
|
22
23
|
"MIME-Version: 1.0\n"
|
|
23
24
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
24
25
|
"Content-Transfer-Encoding: 8bit\n"
|
|
25
|
-
"Language: fr\n"
|
|
26
26
|
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
|
27
27
|
|
|
28
28
|
#: admin/api/v1/serializers.py:39
|
|
29
29
|
msgid ""
|
|
30
30
|
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
|
|
31
31
|
"A value of 0 means no quota."
|
|
32
|
-
msgstr "
|
|
32
|
+
msgstr ""
|
|
33
|
+
"Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo "
|
|
34
|
+
"(défaut) ou Go. Une valeur à 0 signifie pas de quota."
|
|
33
35
|
|
|
34
36
|
#: admin/api/v1/serializers.py:46
|
|
35
37
|
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
|
|
36
|
-
msgstr "
|
|
38
|
+
msgstr ""
|
|
39
|
+
"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 "
|
|
40
|
+
"signifie pas de quota."
|
|
37
41
|
|
|
38
|
-
#: admin/api/v1/serializers.py:
|
|
42
|
+
#: admin/api/v1/serializers.py:94
|
|
39
43
|
msgid "domain alias with this name already exists"
|
|
40
44
|
msgstr "Un alias de domaine avec ce nom existe déjà"
|
|
41
45
|
|
|
42
|
-
#: admin/api/v1/serializers.py:
|
|
46
|
+
#: admin/api/v1/serializers.py:104
|
|
43
47
|
msgid "No authorized MX record found for this domain"
|
|
44
48
|
msgstr "Aucun enregistrement MX autorisé trouvé pour ce domaine"
|
|
45
49
|
|
|
46
|
-
#: admin/api/v1/serializers.py:
|
|
50
|
+
#: admin/api/v1/serializers.py:122
|
|
47
51
|
msgid "Cannot be greater than domain quota"
|
|
48
52
|
msgstr "Ne peut pas être supérieur au quota du domaine"
|
|
49
53
|
|
|
50
|
-
#: admin/api/v1/serializers.py:
|
|
51
|
-
#: admin/api/v2/serializers.py:
|
|
54
|
+
#: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
|
|
55
|
+
#: admin/api/v2/serializers.py:564 admin/models/alias.py:44
|
|
52
56
|
msgid "Permission denied."
|
|
53
57
|
msgstr "Permission refusée."
|
|
54
58
|
|
|
55
|
-
#: admin/api/v1/serializers.py:
|
|
56
|
-
#: admin/api/v2/serializers.py:
|
|
57
|
-
#: core/api/v2/serializers.py:
|
|
59
|
+
#: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
|
|
60
|
+
#: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
|
|
61
|
+
#: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
|
|
58
62
|
#: transport/backends.py:40
|
|
59
63
|
msgid "This field is required"
|
|
60
64
|
msgstr "Ce champ est requis"
|
|
61
65
|
|
|
62
|
-
#: admin/api/v1/serializers.py:
|
|
66
|
+
#: admin/api/v1/serializers.py:243
|
|
63
67
|
msgid ""
|
|
64
68
|
"List of administered domains (resellers and domain administrators only)."
|
|
65
|
-
msgstr "
|
|
69
|
+
msgstr ""
|
|
70
|
+
"Liste des domaines administrés (revendeurs et administrateurs de domaine "
|
|
71
|
+
"seulement)."
|
|
66
72
|
|
|
67
|
-
#: admin/api/v1/serializers.py:
|
|
73
|
+
#: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
|
|
68
74
|
msgid "Not allowed for this role."
|
|
69
75
|
msgstr "Non autorisé pour ce rôle."
|
|
70
76
|
|
|
71
|
-
#: admin/api/v1/serializers.py:
|
|
77
|
+
#: admin/api/v1/serializers.py:355
|
|
72
78
|
msgid "Must be equal to mailbox full_address"
|
|
73
79
|
msgstr "Doit être égale au champ full_address dans mailbox"
|
|
74
80
|
|
|
75
|
-
#: admin/api/v1/serializers.py:
|
|
81
|
+
#: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
|
|
76
82
|
#: calendars/serializers.py:175 calendars/serializers.py:177
|
|
83
|
+
#: pdfcredentials/api/v2/serializers.py:91
|
|
77
84
|
msgid "This field is required."
|
|
78
85
|
msgstr "Ce champ est requis."
|
|
79
86
|
|
|
80
|
-
#: admin/api/v1/serializers.py:
|
|
87
|
+
#: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
|
|
81
88
|
msgid "Local domain {} does not exist"
|
|
82
89
|
msgstr "Le domaine local {} n'existe pas"
|
|
83
90
|
|
|
84
|
-
#: admin/api/v1/serializers.py:
|
|
91
|
+
#: admin/api/v1/serializers.py:499
|
|
85
92
|
msgid "A list of recipient"
|
|
86
93
|
msgstr "Une liste de destinataire"
|
|
87
94
|
|
|
88
|
-
#: admin/api/v1/serializers.py:
|
|
95
|
+
#: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
|
|
89
96
|
msgid "This alias already exists"
|
|
90
97
|
msgstr "Cet alias existe déjà"
|
|
91
98
|
|
|
92
|
-
#: admin/api/v1/serializers.py:
|
|
99
|
+
#: admin/api/v1/serializers.py:551
|
|
93
100
|
msgid "You don't have access to this domain."
|
|
94
101
|
msgstr "Vous n'avez pas accès à ce domaine."
|
|
95
102
|
|
|
96
|
-
#: admin/api/v1/serializers.py:
|
|
103
|
+
#: admin/api/v1/serializers.py:560
|
|
97
104
|
msgid "You don't have access to this mailbox."
|
|
98
105
|
msgstr "Vous n'avez pas accès à cette boîtes aux lettres."
|
|
99
106
|
|
|
@@ -101,56 +108,60 @@ msgstr "Vous n'avez pas accès à cette boîtes aux lettres."
|
|
|
101
108
|
msgid "Here is your new Modoboa password: {}"
|
|
102
109
|
msgstr "Voici votre nouveau mot de passe Modoboa :"
|
|
103
110
|
|
|
104
|
-
#: admin/api/v2/serializers.py:
|
|
111
|
+
#: admin/api/v2/serializers.py:82
|
|
105
112
|
msgid "DKIM keys storage directory not configured"
|
|
106
113
|
msgstr "Répertoire de stockage des clés DKIM non configuré"
|
|
107
114
|
|
|
108
|
-
#: admin/api/v2/serializers.py:
|
|
115
|
+
#: admin/api/v2/serializers.py:94
|
|
109
116
|
msgid "This field is valid when type is relaydomain"
|
|
110
117
|
msgstr "Ce champs est correct pour le type relaydomain uniquement"
|
|
111
118
|
|
|
112
|
-
#: admin/api/v2/serializers.py:
|
|
119
|
+
#: admin/api/v2/serializers.py:101
|
|
113
120
|
msgid "You can't define an unlimited quota."
|
|
114
121
|
msgstr "Vous ne pouvez pas définir de quota illimité"
|
|
115
122
|
|
|
116
|
-
#: admin/api/v2/serializers.py:
|
|
123
|
+
#: admin/api/v2/serializers.py:135
|
|
117
124
|
#, python-format
|
|
118
125
|
msgid "User '%s' already exists"
|
|
119
126
|
msgstr "L'utilisateur '%s' existe déjà"
|
|
120
127
|
|
|
121
|
-
#: admin/api/v2/serializers.py:
|
|
128
|
+
#: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
|
|
122
129
|
msgid "Must be a positive integer"
|
|
123
130
|
msgstr "Doit être un entier positif"
|
|
124
131
|
|
|
125
|
-
#: admin/api/v2/serializers.py:
|
|
132
|
+
#: admin/api/v2/serializers.py:265
|
|
126
133
|
msgid "openssl not found, please make sure it is installed."
|
|
127
|
-
msgstr "
|
|
134
|
+
msgstr ""
|
|
135
|
+
"impossible de trouver openssl, veuillez vous assurer vous qu'il est "
|
|
136
|
+
"installé."
|
|
128
137
|
|
|
129
|
-
#: admin/api/v2/serializers.py:
|
|
138
|
+
#: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
|
|
130
139
|
msgid "Directory not found."
|
|
131
140
|
msgstr "Répertoire introuvable."
|
|
132
141
|
|
|
133
|
-
#: admin/api/v2/serializers.py:
|
|
142
|
+
#: admin/api/v2/serializers.py:279
|
|
134
143
|
msgid "This field only allows valid IP addresses (or networks)"
|
|
135
144
|
msgstr "Ce champ n'autorise que des adresses IP correctes (ou des réseaux)"
|
|
136
145
|
|
|
137
|
-
#: admin/api/v2/serializers.py:
|
|
146
|
+
#: admin/api/v2/serializers.py:292
|
|
138
147
|
msgid "Please disable imap migration before disabling this option."
|
|
139
|
-
msgstr "
|
|
148
|
+
msgstr ""
|
|
149
|
+
"Veuillez désactiver la migration IMAP avant de désactiver cette option"
|
|
140
150
|
|
|
141
|
-
#: admin/api/v2/serializers.py:
|
|
151
|
+
#: admin/api/v2/serializers.py:305
|
|
142
152
|
msgid "Define at least one authorized network / address"
|
|
143
153
|
msgstr "Définissez au moins un réseau / une adresse autorisé"
|
|
144
154
|
|
|
145
|
-
#: admin/api/v2/serializers.py:
|
|
155
|
+
#: admin/api/v2/serializers.py:581
|
|
146
156
|
msgid "The left part of an email address can't be more than 64 characters."
|
|
147
|
-
msgstr "
|
|
157
|
+
msgstr ""
|
|
158
|
+
"La partie gauche d'un courriel ne peut pas faire plus de 64 caractères."
|
|
148
159
|
|
|
149
|
-
#: admin/api/v2/serializers.py:
|
|
160
|
+
#: admin/api/v2/serializers.py:603
|
|
150
161
|
msgid "A mailbox is required to create aliases."
|
|
151
162
|
msgstr "Une boîte aux lettres est requises pour créer des alias"
|
|
152
163
|
|
|
153
|
-
#: admin/api/v2/serializers.py:
|
|
164
|
+
#: admin/api/v2/serializers.py:772
|
|
154
165
|
msgid "Unknown status"
|
|
155
166
|
msgstr "Statut inconnu"
|
|
156
167
|
|
|
@@ -162,14 +173,6 @@ msgstr "Vous n'avez pas accès à ce domaine"
|
|
|
162
173
|
msgid "You can't delete your own domain"
|
|
163
174
|
msgstr "Vous ne pouvez pas supprimer votre propre domaine"
|
|
164
175
|
|
|
165
|
-
#: admin/api/v2/viewsets.py:407
|
|
166
|
-
msgid "No alarm ID provided"
|
|
167
|
-
msgstr "Aucun ID d'alarme fourni"
|
|
168
|
-
|
|
169
|
-
#: admin/api/v2/viewsets.py:411
|
|
170
|
-
msgid "Received invalid alarm id(s)"
|
|
171
|
-
msgstr "ID(s) incorrect(s) d'alarme(s) reçu(s)"
|
|
172
|
-
|
|
173
176
|
#: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
|
|
174
177
|
msgid "Domains"
|
|
175
178
|
msgstr "Domaines"
|
|
@@ -190,7 +193,10 @@ msgstr "MX(s) valide(s)"
|
|
|
190
193
|
msgid ""
|
|
191
194
|
"A list of IP or network address every MX record should match. A warning will"
|
|
192
195
|
" be sent if a record does not respect it."
|
|
193
|
-
msgstr "
|
|
196
|
+
msgstr ""
|
|
197
|
+
"Une liste d'adresses IP ou réseau que chaque enregistrement MX doit "
|
|
198
|
+
"respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la "
|
|
199
|
+
"respecte pas."
|
|
194
200
|
|
|
195
201
|
#: admin/app_settings.py:47
|
|
196
202
|
msgid "New domains must use authorized MX(s)"
|
|
@@ -200,7 +206,9 @@ msgstr "Les nouveaux domaines doivent utiliser un ou plusieurs MX autorisés"
|
|
|
200
206
|
msgid ""
|
|
201
207
|
"Prevent the creation of a new domain if its MX record does not use one of "
|
|
202
208
|
"the defined addresses."
|
|
203
|
-
msgstr "
|
|
209
|
+
msgstr ""
|
|
210
|
+
"Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une "
|
|
211
|
+
"adresse autorisée."
|
|
204
212
|
|
|
205
213
|
#: admin/app_settings.py:59
|
|
206
214
|
msgid "Enable IPV6 checks"
|
|
@@ -224,7 +232,9 @@ msgstr "Activer les tests DKIM"
|
|
|
224
232
|
|
|
225
233
|
#: admin/app_settings.py:80
|
|
226
234
|
msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
|
|
227
|
-
msgstr "
|
|
235
|
+
msgstr ""
|
|
236
|
+
"Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un "
|
|
237
|
+
"enregistrement DNS valide"
|
|
228
238
|
|
|
229
239
|
#: admin/app_settings.py:88
|
|
230
240
|
msgid "Enable DMARC checks"
|
|
@@ -240,7 +250,9 @@ msgstr "Activer les tests d'autoconfiguration"
|
|
|
240
250
|
|
|
241
251
|
#: admin/app_settings.py:99
|
|
242
252
|
msgid "Check if every domain has a valid records for autoconfiguration"
|
|
243
|
-
msgstr "
|
|
253
|
+
msgstr ""
|
|
254
|
+
"Vérifie que chaque domaine a les enregistrements nécessaires à "
|
|
255
|
+
"l'autoconfiguration"
|
|
244
256
|
|
|
245
257
|
#: admin/app_settings.py:107
|
|
246
258
|
msgid "Enable DNSBL checks"
|
|
@@ -256,7 +268,9 @@ msgstr "Serveur DNS personnalisé"
|
|
|
256
268
|
|
|
257
269
|
#: admin/app_settings.py:118
|
|
258
270
|
msgid "Use a custom DNS server instead of local server configuration"
|
|
259
|
-
msgstr "
|
|
271
|
+
msgstr ""
|
|
272
|
+
"Utiliser un serveur DNS personnalisé à la place de la configuration par "
|
|
273
|
+
"défaut du serveur"
|
|
260
274
|
|
|
261
275
|
#: admin/app_settings.py:126
|
|
262
276
|
msgid "DKIM keys storage directory"
|
|
@@ -267,7 +281,10 @@ msgid ""
|
|
|
267
281
|
"Absolute path of the directory where DKIM private keys will be stored. Make "
|
|
268
282
|
"sure this directory belongs to root user and is not readable by the outside "
|
|
269
283
|
"world."
|
|
270
|
-
msgstr "
|
|
284
|
+
msgstr ""
|
|
285
|
+
"Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. "
|
|
286
|
+
"Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il "
|
|
287
|
+
"n'est pas lisible par le monde extérieur."
|
|
271
288
|
|
|
272
289
|
#: admin/app_settings.py:137
|
|
273
290
|
msgid "Default DKIM key length"
|
|
@@ -285,7 +302,9 @@ msgstr "Quota de domaine par défaut"
|
|
|
285
302
|
msgid ""
|
|
286
303
|
"Default quota (in MB) applied to freshly created domains with no value "
|
|
287
304
|
"specified. A value of 0 means no quota."
|
|
288
|
-
msgstr "
|
|
305
|
+
msgstr ""
|
|
306
|
+
"Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne "
|
|
307
|
+
"spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué."
|
|
289
308
|
|
|
290
309
|
#: admin/app_settings.py:156
|
|
291
310
|
msgid "Default domain sending limit"
|
|
@@ -295,7 +314,9 @@ msgstr "Limite d'envoi par défaut du domaine"
|
|
|
295
314
|
msgid ""
|
|
296
315
|
"Number of messages freshly created domains will be allowed to send per day. "
|
|
297
316
|
"Leave empty for no limit."
|
|
298
|
-
msgstr "
|
|
317
|
+
msgstr ""
|
|
318
|
+
"Nombre maximal de messages que les nouveaux domaines seront autorisés à "
|
|
319
|
+
"envoyer par jour. Laisser vide pour n'indiquer aucune limite."
|
|
299
320
|
|
|
300
321
|
#: admin/app_settings.py:170 limits/app_settings.py:61
|
|
301
322
|
#: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
|
|
@@ -310,7 +331,9 @@ msgstr "Gérer les boites sur le système de fichiers"
|
|
|
310
331
|
msgid ""
|
|
311
332
|
"Rename or remove mailboxes on the filesystem when they get renamed or "
|
|
312
333
|
"removed within Modoboa"
|
|
313
|
-
msgstr "
|
|
334
|
+
msgstr ""
|
|
335
|
+
"Renommer ou supprimer les boites sur le système de fichiers quand elles sont"
|
|
336
|
+
" renommées ou supprimées dans Modoboa"
|
|
314
337
|
|
|
315
338
|
#: admin/app_settings.py:186 admin/models/domain.py:36
|
|
316
339
|
msgid "Default mailbox quota"
|
|
@@ -320,7 +343,9 @@ msgstr "Quota par défaut pour une boîte aux lettres"
|
|
|
320
343
|
msgid ""
|
|
321
344
|
"Default mailbox quota (in MB) applied to freshly created domains with no "
|
|
322
345
|
"value specified. A value of 0 means no quota."
|
|
323
|
-
msgstr "
|
|
346
|
+
msgstr ""
|
|
347
|
+
"Quota par défaut (en Mo) appliqué aux nouveaux domaines quand aucune valeur "
|
|
348
|
+
"n'est spécifiée. Une valeur de 0 signifie pas de quota."
|
|
324
349
|
|
|
325
350
|
#: admin/app_settings.py:197
|
|
326
351
|
msgid "Default mailbox sending limit"
|
|
@@ -330,7 +355,9 @@ msgstr "Limite d'envoi par défaut d'une boîte aux lettres"
|
|
|
330
355
|
msgid ""
|
|
331
356
|
"Number of messages freshly created mailboxes will be allowed to send per "
|
|
332
357
|
"day. Leave empty for no limit."
|
|
333
|
-
msgstr "
|
|
358
|
+
msgstr ""
|
|
359
|
+
"Nombre maximal de messages que les nouveaux comptes seront autorisés à "
|
|
360
|
+
"envoyer par jour. Laisser vide pour n'indiquer aucune limite."
|
|
334
361
|
|
|
335
362
|
#: admin/app_settings.py:207
|
|
336
363
|
msgid "Automatic account removal"
|
|
@@ -338,7 +365,9 @@ msgstr "Suppression automatique de compte"
|
|
|
338
365
|
|
|
339
366
|
#: admin/app_settings.py:209
|
|
340
367
|
msgid "When a mailbox is removed, also remove the associated account"
|
|
341
|
-
msgstr "
|
|
368
|
+
msgstr ""
|
|
369
|
+
"Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en "
|
|
370
|
+
"même temps"
|
|
342
371
|
|
|
343
372
|
#: admin/app_settings.py:218
|
|
344
373
|
msgid "Automatic domain/mailbox creation"
|
|
@@ -347,7 +376,9 @@ msgstr "Création automatique de domaine/boite aux lettres"
|
|
|
347
376
|
#: admin/app_settings.py:221
|
|
348
377
|
msgid ""
|
|
349
378
|
"Create a domain and a mailbox when an account is automatically created."
|
|
350
|
-
msgstr "
|
|
379
|
+
msgstr ""
|
|
380
|
+
"Créer un domaine et une boite aux lettres quand un compte est créé "
|
|
381
|
+
"automatiquement."
|
|
351
382
|
|
|
352
383
|
#: admin/app_settings.py:230
|
|
353
384
|
msgid "Create an alias when a mailbox is renamed"
|
|
@@ -355,9 +386,11 @@ msgstr "Créer un alias quand une boite aux lettres est renommée"
|
|
|
355
386
|
|
|
356
387
|
#: admin/app_settings.py:233
|
|
357
388
|
msgid "Create an alias using the old address when a mailbox is renamed."
|
|
358
|
-
msgstr "
|
|
389
|
+
msgstr ""
|
|
390
|
+
"Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres "
|
|
391
|
+
"est renommée."
|
|
359
392
|
|
|
360
|
-
#: admin/app_settings.py:287 core/api/v2/viewsets.py:
|
|
393
|
+
#: admin/app_settings.py:287 core/api/v2/viewsets.py:174
|
|
361
394
|
msgid "Administration"
|
|
362
395
|
msgstr "Administration"
|
|
363
396
|
|
|
@@ -386,7 +419,7 @@ msgstr "alias de domaine"
|
|
|
386
419
|
msgid "Account import failed (%s): domain does not exist"
|
|
387
420
|
msgstr "L'import du compte a échoué (%s): le domaine n'existe pas"
|
|
388
421
|
|
|
389
|
-
#: admin/handlers.py:242 admin/models/mailbox.py:
|
|
422
|
+
#: admin/handlers.py:242 admin/models/mailbox.py:342
|
|
390
423
|
msgid "Mailbox {} already exists"
|
|
391
424
|
msgstr "La boite {} existe déjà"
|
|
392
425
|
|
|
@@ -444,7 +477,9 @@ msgstr "%d objets importés avec succès"
|
|
|
444
477
|
|
|
445
478
|
#: admin/management/commands/subcommands/_import.py:97
|
|
446
479
|
msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
|
|
447
|
-
msgstr "
|
|
480
|
+
msgstr ""
|
|
481
|
+
"Le fichier CSV n'est pas encodé en UTF-8, tentative de détermination de "
|
|
482
|
+
"l'encodage"
|
|
448
483
|
|
|
449
484
|
#: admin/management/commands/subcommands/_import.py:112
|
|
450
485
|
#, python-format
|
|
@@ -454,13 +489,16 @@ msgstr "Lire le fichier CSV en utilisant l'encodage %(encoding)s"
|
|
|
454
489
|
#: admin/management/commands/subcommands/_import.py:123
|
|
455
490
|
#, python-format
|
|
456
491
|
msgid "Unable to decode CSV file using %(encoding)s encoding"
|
|
457
|
-
msgstr "
|
|
492
|
+
msgstr ""
|
|
493
|
+
"Impossible de décoder le fichier CSV en utilisant l'encodage %(encoding)s"
|
|
458
494
|
|
|
459
495
|
#: admin/management/commands/subcommands/_manage_dkim_keys.py:29
|
|
460
496
|
msgid ""
|
|
461
497
|
"DKIM path non-writable (either a permission issue or the directory does not "
|
|
462
498
|
"exist)"
|
|
463
|
-
msgstr "
|
|
499
|
+
msgstr ""
|
|
500
|
+
"Le chemin d'accès DKIM n'est pas modifiable (soit à cause d'un problème de "
|
|
501
|
+
"permission, soit parce que le répertoire n'existe pas)"
|
|
464
502
|
|
|
465
503
|
#: admin/management/commands/subcommands/_manage_dkim_keys.py:52
|
|
466
504
|
msgid "Failed to generate DKIM private key"
|
|
@@ -579,7 +617,9 @@ msgstr "Activer la signature DKIM"
|
|
|
579
617
|
#: admin/models/domain.py:63
|
|
580
618
|
msgid ""
|
|
581
619
|
"If you activate this feature, a DKIM key will be generated for this domain."
|
|
582
|
-
msgstr "
|
|
620
|
+
msgstr ""
|
|
621
|
+
"Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce "
|
|
622
|
+
"domain."
|
|
583
623
|
|
|
584
624
|
#: admin/models/domain.py:70
|
|
585
625
|
msgid "Key length"
|
|
@@ -600,11 +640,15 @@ msgstr "{} : valeur incorrecte de quota pour ce domaine"
|
|
|
600
640
|
|
|
601
641
|
#: admin/models/domain.py:343
|
|
602
642
|
msgid "{}: invalid default mailbox quota value for domain"
|
|
603
|
-
msgstr "
|
|
643
|
+
msgstr ""
|
|
644
|
+
"{} : la valeur du quota par défaut des boîtes aux lettres est incorrecte "
|
|
645
|
+
"pour ce domaine"
|
|
604
646
|
|
|
605
647
|
#: admin/models/domain.py:350
|
|
606
648
|
msgid "{}: default mailbox quota cannot be greater than domain quota"
|
|
607
|
-
msgstr "
|
|
649
|
+
msgstr ""
|
|
650
|
+
"{} : le quota par défaut de la boîte aux lettres ne peut pas être supérieur "
|
|
651
|
+
"au quota du domaine"
|
|
608
652
|
|
|
609
653
|
#: admin/models/domain_alias.py:36
|
|
610
654
|
msgid "The alias name"
|
|
@@ -644,7 +688,7 @@ msgstr "Un quota est requis"
|
|
|
644
688
|
msgid "{}: domain quota exceeded"
|
|
645
689
|
msgstr "{} : quota du domaine dépassé"
|
|
646
690
|
|
|
647
|
-
#: admin/models/mailbox.py:
|
|
691
|
+
#: admin/models/mailbox.py:310
|
|
648
692
|
msgid "Domain does not exist"
|
|
649
693
|
msgstr "Domaine inexistant"
|
|
650
694
|
|
|
@@ -653,19 +697,26 @@ msgstr "Domaine inexistant"
|
|
|
653
697
|
msgid ""
|
|
654
698
|
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
|
|
655
699
|
"providers:"
|
|
656
|
-
msgstr "
|
|
700
|
+
msgstr ""
|
|
701
|
+
"Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs "
|
|
702
|
+
"de DNSBL suivants :"
|
|
657
703
|
|
|
658
704
|
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
|
|
659
705
|
msgid ""
|
|
660
706
|
"The domain's reputation will be affected and there is a chance that emails "
|
|
661
707
|
"coming from it are considered as spam. You should contact those providers "
|
|
662
708
|
"and ask them to unlist detected IP address(es)."
|
|
663
|
-
msgstr "
|
|
709
|
+
msgstr ""
|
|
710
|
+
"La réputation de ce domaine sera affectée et il est probable que les emails "
|
|
711
|
+
"venant de lui soient considérés comme du spam. Vous devriez contacter ces "
|
|
712
|
+
"fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)."
|
|
664
713
|
|
|
665
714
|
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
|
|
666
715
|
#, python-format
|
|
667
716
|
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
|
|
668
|
-
msgstr "
|
|
717
|
+
msgstr ""
|
|
718
|
+
"Modoboa a détecté que le domain %(domain)s n'a aucun enregistrement MX "
|
|
719
|
+
"valide :"
|
|
669
720
|
|
|
670
721
|
#: admin/tests/test_mx.py:155
|
|
671
722
|
#, python-format
|
|
@@ -707,7 +758,9 @@ msgstr "Période entre deux réponses automatiques"
|
|
|
707
758
|
#: autoreply/app_settings.py:20
|
|
708
759
|
msgid ""
|
|
709
760
|
"Number of days to wait before sending a new auto-reply to the same recipient"
|
|
710
|
-
msgstr "
|
|
761
|
+
msgstr ""
|
|
762
|
+
"Attendre ce nombre de jours avant l'envoi d'une nouvelle réponse automatique"
|
|
763
|
+
" au même destinataire"
|
|
711
764
|
|
|
712
765
|
#: autoreply/app_settings.py:27 autoreply/app_settings.py:36
|
|
713
766
|
msgid "Default subject"
|
|
@@ -716,14 +769,19 @@ msgstr "Sujet par défaut"
|
|
|
716
769
|
#: autoreply/app_settings.py:29
|
|
717
770
|
msgid ""
|
|
718
771
|
"Default subject used when an auto-reply message is created automatically"
|
|
719
|
-
msgstr "
|
|
772
|
+
msgstr ""
|
|
773
|
+
"Sujet par défaut utilisé quand un message de réponse automatique est crée "
|
|
774
|
+
"automatiquement"
|
|
720
775
|
|
|
721
776
|
#: autoreply/app_settings.py:38
|
|
722
777
|
#, python-format
|
|
723
778
|
msgid ""
|
|
724
779
|
"Default content used when an auto-reply message is created automatically. "
|
|
725
780
|
"The '%(name)s' macro will be replaced by the user's full name."
|
|
726
|
-
msgstr "
|
|
781
|
+
msgstr ""
|
|
782
|
+
"Contenu par défaut utilisé quand un message de réponse automatique est créé "
|
|
783
|
+
"automatiquement. La macro %(name)s sera remplacée par le nom complet de "
|
|
784
|
+
"l'utilisateur "
|
|
727
785
|
|
|
728
786
|
#: autoreply/apps.py:15
|
|
729
787
|
msgid "Automatic replies"
|
|
@@ -760,7 +818,9 @@ msgstr "URL du serveur"
|
|
|
760
818
|
#: calendars/app_settings.py:19
|
|
761
819
|
msgid ""
|
|
762
820
|
"The URL of your Radicale server. It will be used to construct calendar URLs."
|
|
763
|
-
msgstr "
|
|
821
|
+
msgstr ""
|
|
822
|
+
"L'URL de votre serveur Radicale. Elle sera utilisée pour construire les URL "
|
|
823
|
+
"des calendriers."
|
|
764
824
|
|
|
765
825
|
#: calendars/app_settings.py:31
|
|
766
826
|
msgid "Rights management"
|
|
@@ -780,7 +840,9 @@ msgstr "Autoriser l'administration des calendriers"
|
|
|
780
840
|
|
|
781
841
|
#: calendars/app_settings.py:48
|
|
782
842
|
msgid "Allow domain administrators to manage user calendars (read and write)"
|
|
783
|
-
msgstr "
|
|
843
|
+
msgstr ""
|
|
844
|
+
"Autoriser les administrateurs de domaine à gérer les calendriers des "
|
|
845
|
+
"utilisateurs (lecture et écriture)"
|
|
784
846
|
|
|
785
847
|
#: calendars/app_settings.py:60 core/app_settings.py:676
|
|
786
848
|
#: rspamd/app_settings.py:45
|
|
@@ -794,9 +856,11 @@ msgstr "Taille maximale des fichiers ICS"
|
|
|
794
856
|
#: calendars/app_settings.py:68
|
|
795
857
|
msgid ""
|
|
796
858
|
"Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
|
|
797
|
-
msgstr "
|
|
859
|
+
msgstr ""
|
|
860
|
+
"Taille maximale en octets des fichiers ICS importés (ou KB, MB, GB si "
|
|
861
|
+
"précisé)"
|
|
798
862
|
|
|
799
|
-
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:
|
|
863
|
+
#: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
|
|
800
864
|
msgid "Calendars"
|
|
801
865
|
msgstr "Calendriers"
|
|
802
866
|
|
|
@@ -820,7 +884,9 @@ msgstr "Synchroniser le carnet d'adresse en utilisant CardDAV"
|
|
|
820
884
|
msgid ""
|
|
821
885
|
"Choose to synchronize or not your address book using CardDAV. You will be "
|
|
822
886
|
"able to access your contacts from the outside."
|
|
823
|
-
msgstr "
|
|
887
|
+
msgstr ""
|
|
888
|
+
"Choisir de synchroniser ou non votre carnet d'adresse en utilisant CardDAV. "
|
|
889
|
+
"Vous pourrez ainsi accéder à vos contacts depuis l'extérieur."
|
|
824
890
|
|
|
825
891
|
#: contacts/app_settings.py:29
|
|
826
892
|
msgid "Synchronization frequency"
|
|
@@ -830,7 +896,7 @@ msgstr "Fréquence de synchronisation"
|
|
|
830
896
|
msgid "Interval in seconds between 2 synchronization requests"
|
|
831
897
|
msgstr "Intervalle en secondes entre 2 requêtes de synchronisation"
|
|
832
898
|
|
|
833
|
-
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:
|
|
899
|
+
#: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
|
|
834
900
|
msgid "Contacts"
|
|
835
901
|
msgstr "Contacts"
|
|
836
902
|
|
|
@@ -878,12 +944,14 @@ msgstr "Code PIN non valide"
|
|
|
878
944
|
msgid "2FA is already enabled"
|
|
879
945
|
msgstr "2FA est déjà activf"
|
|
880
946
|
|
|
881
|
-
#: core/api/v1/serializers.py:
|
|
947
|
+
#: core/api/v1/serializers.py:86
|
|
882
948
|
#, python-format
|
|
883
|
-
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
|
|
884
|
-
msgstr "
|
|
949
|
+
msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
|
|
950
|
+
msgstr ""
|
|
951
|
+
"Echec de modification des paramètres TFA depuis '%(addr)s' en tant "
|
|
952
|
+
"qu'utilisateur '%(user)s'"
|
|
885
953
|
|
|
886
|
-
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:
|
|
954
|
+
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
|
|
887
955
|
msgid "Invalid password"
|
|
888
956
|
msgstr "Mot de passe incorrect"
|
|
889
957
|
|
|
@@ -895,41 +963,43 @@ msgstr "Authentification 2 facteurs non activée"
|
|
|
895
963
|
msgid "Local"
|
|
896
964
|
msgstr "Locale"
|
|
897
965
|
|
|
898
|
-
#: core/api/v2/serializers.py:
|
|
966
|
+
#: core/api/v2/serializers.py:194 core/app_settings.py:17
|
|
899
967
|
msgid "User profile"
|
|
900
968
|
msgstr "Profil utilisateur"
|
|
901
969
|
|
|
902
|
-
#: core/api/v2/serializers.py:
|
|
903
|
-
#: core/api/v2/serializers.py:
|
|
970
|
+
#: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
|
|
971
|
+
#: core/api/v2/serializers.py:228
|
|
904
972
|
msgid "Invalid syntax"
|
|
905
973
|
msgstr "Syntaxe invalide"
|
|
906
974
|
|
|
907
|
-
#: core/api/v2/serializers.py:
|
|
975
|
+
#: core/api/v2/serializers.py:233
|
|
908
976
|
msgid "Invalid rounds number"
|
|
909
977
|
msgstr "Nombre invalide de tours"
|
|
910
978
|
|
|
911
|
-
#: core/api/v2/serializers.py:
|
|
979
|
+
#: core/api/v2/serializers.py:433 core/forms.py:81
|
|
912
980
|
msgid "This code is invalid"
|
|
913
981
|
msgstr "Ce code n'est pas valide"
|
|
914
982
|
|
|
915
|
-
#: core/api/v2/serializers.py:
|
|
983
|
+
#: core/api/v2/serializers.py:503 core/views/auth.py:194
|
|
916
984
|
#: core/views/auth.py:247
|
|
917
985
|
msgid "Please use the following code to recover your Modoboa password: {}"
|
|
918
|
-
msgstr "
|
|
986
|
+
msgstr ""
|
|
987
|
+
"Veuillez utiliser le code suivant pour récupérer votre mot de passe Modoboa "
|
|
988
|
+
": {}"
|
|
919
989
|
|
|
920
|
-
#: core/api/v2/viewsets.py:
|
|
990
|
+
#: core/api/v2/viewsets.py:176
|
|
921
991
|
msgid "Administration console"
|
|
922
992
|
msgstr "Interface d'administration"
|
|
923
993
|
|
|
924
|
-
#: core/api/v2/viewsets.py:
|
|
925
|
-
msgid "Calendar"
|
|
926
|
-
msgstr "Calendrier"
|
|
927
|
-
|
|
928
|
-
#: core/api/v2/viewsets.py:181
|
|
994
|
+
#: core/api/v2/viewsets.py:187
|
|
929
995
|
msgid "Address book"
|
|
930
996
|
msgstr "Carnet d'adresse"
|
|
931
997
|
|
|
932
|
-
#: core/api/v2/viewsets.py:
|
|
998
|
+
#: core/api/v2/viewsets.py:197
|
|
999
|
+
msgid "Calendar"
|
|
1000
|
+
msgstr "Calendrier"
|
|
1001
|
+
|
|
1002
|
+
#: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
|
|
933
1003
|
#: webmail/app_settings.py:258 webmail/app_settings.py:265
|
|
934
1004
|
msgid "Webmail"
|
|
935
1005
|
msgstr "Webmail"
|
|
@@ -952,7 +1022,8 @@ msgstr "Méthode de chiffrement par défaut"
|
|
|
952
1022
|
|
|
953
1023
|
#: core/app_settings.py:54
|
|
954
1024
|
msgid "Scheme used to crypt mailbox passwords"
|
|
955
|
-
msgstr "
|
|
1025
|
+
msgstr ""
|
|
1026
|
+
"Méthode utilisée pour chiffrer les mots de passe des boites aux lettres"
|
|
956
1027
|
|
|
957
1028
|
#: core/app_settings.py:61
|
|
958
1029
|
msgid "Rounds"
|
|
@@ -962,15 +1033,20 @@ msgstr "Tours"
|
|
|
962
1033
|
msgid ""
|
|
963
1034
|
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
|
|
964
1035
|
"between 1000 and 999999999, inclusive."
|
|
965
|
-
msgstr "
|
|
1036
|
+
msgstr ""
|
|
1037
|
+
"Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit "
|
|
1038
|
+
"être compris entre 1000 et 999999999 inclue."
|
|
966
1039
|
|
|
967
1040
|
#: core/app_settings.py:73
|
|
968
1041
|
msgid "Update password scheme at login"
|
|
969
|
-
msgstr "
|
|
1042
|
+
msgstr ""
|
|
1043
|
+
"Mettre à jour la méthode de chiffrement du mot de passe à la connexion"
|
|
970
1044
|
|
|
971
1045
|
#: core/app_settings.py:76
|
|
972
1046
|
msgid "Update user password at login to use the default password scheme"
|
|
973
|
-
msgstr "
|
|
1047
|
+
msgstr ""
|
|
1048
|
+
"Mise à jour du mot de passe utilisateur lors d'une connexion pour utiliser "
|
|
1049
|
+
"la méthode de chiffrement par défaut"
|
|
974
1050
|
|
|
975
1051
|
#: core/app_settings.py:84
|
|
976
1052
|
msgid "Default password"
|
|
@@ -994,7 +1070,9 @@ msgstr "Autoriser les caractères spéciaux pour les mots de passe aléatoires"
|
|
|
994
1070
|
|
|
995
1071
|
#: core/app_settings.py:106
|
|
996
1072
|
msgid "Enable special characters in randomly generated passwords."
|
|
997
|
-
msgstr "
|
|
1073
|
+
msgstr ""
|
|
1074
|
+
"Activer les caractères spéciaux dans les mots de passe générés "
|
|
1075
|
+
"aléatoirement."
|
|
998
1076
|
|
|
999
1077
|
#: core/app_settings.py:114
|
|
1000
1078
|
msgid "Update password service URL"
|
|
@@ -1005,7 +1083,10 @@ msgid ""
|
|
|
1005
1083
|
"The URL of an external page where users will be able to update their "
|
|
1006
1084
|
"password. It applies only to non local users, ie. those automatically "
|
|
1007
1085
|
"created after a successful external authentication (LDAP, SMTP)."
|
|
1008
|
-
msgstr "
|
|
1086
|
+
msgstr ""
|
|
1087
|
+
"L'URL d'une page externe où les utilisateurs pourront mettre à jour leur mot"
|
|
1088
|
+
" de passe. Elle s'applique uniquement aux utilisateurs non locaux, c'est à "
|
|
1089
|
+
"dire ceux créés après une authentification externe réussie (LDAP, SMTP)."
|
|
1009
1090
|
|
|
1010
1091
|
#: core/app_settings.py:126
|
|
1011
1092
|
msgid "Password recovery announcement"
|
|
@@ -1013,7 +1094,9 @@ msgstr "Annonce pour la récupération de mot de passe"
|
|
|
1013
1094
|
|
|
1014
1095
|
#: core/app_settings.py:128
|
|
1015
1096
|
msgid "A temporary message that will be displayed on the reset password page."
|
|
1016
|
-
msgstr "
|
|
1097
|
+
msgstr ""
|
|
1098
|
+
"Un message temporaire qui sera affiché sur la page de récupération de mot de"
|
|
1099
|
+
" passe"
|
|
1017
1100
|
|
|
1018
1101
|
#: core/app_settings.py:137
|
|
1019
1102
|
msgid "Enable password recovery by SMS"
|
|
@@ -1021,7 +1104,9 @@ msgstr "Activer la récupération de mot de passe par SMS"
|
|
|
1021
1104
|
|
|
1022
1105
|
#: core/app_settings.py:140
|
|
1023
1106
|
msgid "Enable password recovery by SMS for users who filled a phone number."
|
|
1024
|
-
msgstr "
|
|
1107
|
+
msgstr ""
|
|
1108
|
+
"Activer la récupération de mot de passe par SMS pour les utilisateurs ayant "
|
|
1109
|
+
"renseigné un numéro de téléphone"
|
|
1025
1110
|
|
|
1026
1111
|
#: core/app_settings.py:148
|
|
1027
1112
|
msgid "SMS provider"
|
|
@@ -1029,7 +1114,8 @@ msgstr "Fournisseur SMS"
|
|
|
1029
1114
|
|
|
1030
1115
|
#: core/app_settings.py:151
|
|
1031
1116
|
msgid "Choose a provider to send password recovery SMS"
|
|
1032
|
-
msgstr "
|
|
1117
|
+
msgstr ""
|
|
1118
|
+
"Choisir un fournisseur pour envoyer les SMS de récupération de mot de passe"
|
|
1033
1119
|
|
|
1034
1120
|
#: core/app_settings.py:163
|
|
1035
1121
|
msgid "LDAP"
|
|
@@ -1062,7 +1148,9 @@ msgstr "Activer le serveur secondaire (secours)"
|
|
|
1062
1148
|
#: core/app_settings.py:191
|
|
1063
1149
|
msgid ""
|
|
1064
1150
|
"Enable a secondary LDAP server which will be used if the primary one fails"
|
|
1065
|
-
msgstr "
|
|
1151
|
+
msgstr ""
|
|
1152
|
+
"Activer un serveur LDAP secondaire qui sera utilisé si le principal est en "
|
|
1153
|
+
"échec"
|
|
1066
1154
|
|
|
1067
1155
|
#: core/app_settings.py:199
|
|
1068
1156
|
msgid "Secondary server address"
|
|
@@ -1105,7 +1193,10 @@ msgstr "Groupes administrateurs"
|
|
|
1105
1193
|
msgid ""
|
|
1106
1194
|
"Members of those LDAP Posix groups will be created as domain administrators."
|
|
1107
1195
|
" Use ';' characters to separate groups."
|
|
1108
|
-
msgstr "
|
|
1196
|
+
msgstr ""
|
|
1197
|
+
"Les membres de ces groupes LDAP (Posix) seront créés en tant "
|
|
1198
|
+
"qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les "
|
|
1199
|
+
"groupes."
|
|
1109
1200
|
|
|
1110
1201
|
#: core/app_settings.py:248
|
|
1111
1202
|
msgid "Group type"
|
|
@@ -1121,7 +1212,9 @@ msgstr "Base de recherche des groupes"
|
|
|
1121
1212
|
|
|
1122
1213
|
#: core/app_settings.py:259
|
|
1123
1214
|
msgid "The distinguished name of the search base used to find groups"
|
|
1124
|
-
msgstr "
|
|
1215
|
+
msgstr ""
|
|
1216
|
+
"Le nom distinctif de la base de recherche utilisée pour rechercher les "
|
|
1217
|
+
"groupes"
|
|
1125
1218
|
|
|
1126
1219
|
#: core/app_settings.py:267
|
|
1127
1220
|
msgid "Password attribute"
|
|
@@ -1151,7 +1244,9 @@ msgstr "ND de connexion"
|
|
|
1151
1244
|
msgid ""
|
|
1152
1245
|
"The distinguished name to use when binding to the LDAP server. Leave empty "
|
|
1153
1246
|
"for an anonymous bind"
|
|
1154
|
-
msgstr "
|
|
1247
|
+
msgstr ""
|
|
1248
|
+
"Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser "
|
|
1249
|
+
"vide pour une connexion anonyme"
|
|
1155
1250
|
|
|
1156
1251
|
#: core/app_settings.py:305 core/app_settings.py:367
|
|
1157
1252
|
msgid "Bind password"
|
|
@@ -1159,7 +1254,9 @@ msgstr "Mot de passe de connexion"
|
|
|
1159
1254
|
|
|
1160
1255
|
#: core/app_settings.py:307 core/app_settings.py:369
|
|
1161
1256
|
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
|
|
1162
|
-
msgstr "
|
|
1257
|
+
msgstr ""
|
|
1258
|
+
"Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de"
|
|
1259
|
+
" connexion')"
|
|
1163
1260
|
|
|
1164
1261
|
#: core/app_settings.py:317 core/app_settings.py:422
|
|
1165
1262
|
msgid "Users search base"
|
|
@@ -1167,7 +1264,9 @@ msgstr "Base de recherche des utilisateurs"
|
|
|
1167
1264
|
|
|
1168
1265
|
#: core/app_settings.py:319 core/app_settings.py:424
|
|
1169
1266
|
msgid "The distinguished name of the search base used to find users"
|
|
1170
|
-
msgstr "
|
|
1267
|
+
msgstr ""
|
|
1268
|
+
"Le nom distinctif de la base de recherche utilisée pour rechercher les "
|
|
1269
|
+
"utilisateurs"
|
|
1171
1270
|
|
|
1172
1271
|
#: core/app_settings.py:328 core/app_settings.py:433
|
|
1173
1272
|
msgid "Search filter"
|
|
@@ -1177,7 +1276,9 @@ msgstr "Filtre de recherche"
|
|
|
1177
1276
|
msgid ""
|
|
1178
1277
|
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
|
|
1179
1278
|
"valid, it must be enclosed in parentheses."
|
|
1180
|
-
msgstr "
|
|
1279
|
+
msgstr ""
|
|
1280
|
+
"Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être "
|
|
1281
|
+
"valide, il doit être entouré de parenthèses."
|
|
1181
1282
|
|
|
1182
1283
|
#: core/app_settings.py:339
|
|
1183
1284
|
msgid "User DN template"
|
|
@@ -1188,7 +1289,9 @@ msgstr "Modèle de nom distinctif utilisateur"
|
|
|
1188
1289
|
msgid ""
|
|
1189
1290
|
"The template used to construct a user's DN. It should contain one "
|
|
1190
1291
|
"placeholder (ie. %(user)s)"
|
|
1191
|
-
msgstr "
|
|
1292
|
+
msgstr ""
|
|
1293
|
+
"Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il "
|
|
1294
|
+
"doit contenir un espace réservé (ex. %(user)s)"
|
|
1192
1295
|
|
|
1193
1296
|
#: core/app_settings.py:350
|
|
1194
1297
|
msgid "LDAP synchronization settings"
|
|
@@ -1201,7 +1304,9 @@ msgstr "Activer l'export LDAP"
|
|
|
1201
1304
|
#: core/app_settings.py:380
|
|
1202
1305
|
msgid ""
|
|
1203
1306
|
"Enable automatic synchronization between local database and LDAP directory"
|
|
1204
|
-
msgstr "
|
|
1307
|
+
msgstr ""
|
|
1308
|
+
"Activer la synchronisation automatique entre la base de données locale et "
|
|
1309
|
+
"l'annuaire LDAP"
|
|
1205
1310
|
|
|
1206
1311
|
#: core/app_settings.py:389
|
|
1207
1312
|
msgid "Delete remote LDAP account when local account is deleted"
|
|
@@ -1211,7 +1316,9 @@ msgstr "Supprimer un compte LDAP distant lorsqu'un compte local est supprimé"
|
|
|
1211
1316
|
msgid ""
|
|
1212
1317
|
"Delete remote LDAP account when local account is deleted, otherwise it will "
|
|
1213
1318
|
"be disabled."
|
|
1214
|
-
msgstr "
|
|
1319
|
+
msgstr ""
|
|
1320
|
+
"Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement "
|
|
1321
|
+
"il sera désactivé."
|
|
1215
1322
|
|
|
1216
1323
|
#: core/app_settings.py:401
|
|
1217
1324
|
msgid "Account DN template"
|
|
@@ -1222,7 +1329,9 @@ msgstr "Modèle des DN de compte"
|
|
|
1222
1329
|
msgid ""
|
|
1223
1330
|
"The template used to construct an account's DN. It should contain one "
|
|
1224
1331
|
"placeholder (ie. %(user)s)"
|
|
1225
|
-
msgstr "
|
|
1332
|
+
msgstr ""
|
|
1333
|
+
"Le modèle utilisé pour construite un DN de compte (nom unique). Il doit "
|
|
1334
|
+
"contenir un emplacement (c'est à dire 1%(user)s)"
|
|
1226
1335
|
|
|
1227
1336
|
#: core/app_settings.py:412
|
|
1228
1337
|
msgid "Enable import from LDAP"
|
|
@@ -1230,7 +1339,9 @@ msgstr "Activer l'import LDAP"
|
|
|
1230
1339
|
|
|
1231
1340
|
#: core/app_settings.py:414
|
|
1232
1341
|
msgid "Enable account synchronization from LDAP directory to local database"
|
|
1233
|
-
msgstr "
|
|
1342
|
+
msgstr ""
|
|
1343
|
+
"Activer la synchronisation des comptes entre un annuaire LDAP et la base de "
|
|
1344
|
+
"données locale"
|
|
1234
1345
|
|
|
1235
1346
|
#: core/app_settings.py:444
|
|
1236
1347
|
msgid "Username attribute"
|
|
@@ -1238,7 +1349,8 @@ msgstr "Attribut nom d'utilisateur"
|
|
|
1238
1349
|
|
|
1239
1350
|
#: core/app_settings.py:446
|
|
1240
1351
|
msgid "The name of the LDAP attribute where the username can be found."
|
|
1241
|
-
msgstr "
|
|
1352
|
+
msgstr ""
|
|
1353
|
+
"Le nom de l'attribut LDAP dans lequel le nom d'utilisateur peut être trouvé."
|
|
1242
1354
|
|
|
1243
1355
|
#: core/app_settings.py:455
|
|
1244
1356
|
msgid "Enable Dovecot LDAP sync"
|
|
@@ -1246,7 +1358,9 @@ msgstr "Activer la synchronisation LDAP pour Dovecot"
|
|
|
1246
1358
|
|
|
1247
1359
|
#: core/app_settings.py:457
|
|
1248
1360
|
msgid "LDAP authentication settings will be applied to Dovecot configuration."
|
|
1249
|
-
msgstr "
|
|
1361
|
+
msgstr ""
|
|
1362
|
+
"Les paramètres d'authentification LDAP seront appliqués à la configuration "
|
|
1363
|
+
"de Dovecot."
|
|
1250
1364
|
|
|
1251
1365
|
#: core/app_settings.py:465
|
|
1252
1366
|
msgid "Dovecot LDAP config file"
|
|
@@ -1255,7 +1369,9 @@ msgstr "Fichier de configuration Dovecot pour LDAP"
|
|
|
1255
1369
|
#: core/app_settings.py:467
|
|
1256
1370
|
msgid ""
|
|
1257
1371
|
"Location of the configuration file which contains Dovecot LDAP settings."
|
|
1258
|
-
msgstr "
|
|
1372
|
+
msgstr ""
|
|
1373
|
+
"Emplacement du fichier de configuration qui contient les paramètres LDAP de "
|
|
1374
|
+
"Dovecot"
|
|
1259
1375
|
|
|
1260
1376
|
#: core/app_settings.py:480
|
|
1261
1377
|
msgid "Dashboard"
|
|
@@ -1275,7 +1391,9 @@ msgstr "Flux RSS personnalisé"
|
|
|
1275
1391
|
|
|
1276
1392
|
#: core/app_settings.py:497
|
|
1277
1393
|
msgid "Display custom RSS feed to resellers and domain administrators"
|
|
1278
|
-
msgstr "
|
|
1394
|
+
msgstr ""
|
|
1395
|
+
"Afficher un flux RSS personnalisé aux revendeurs et administrateurs de "
|
|
1396
|
+
"domaine"
|
|
1279
1397
|
|
|
1280
1398
|
#: core/app_settings.py:506
|
|
1281
1399
|
msgid "Display custom RSS feed to super admins"
|
|
@@ -1291,7 +1409,9 @@ msgstr "Masquer le widget des fonctionnalités"
|
|
|
1291
1409
|
|
|
1292
1410
|
#: core/app_settings.py:519
|
|
1293
1411
|
msgid "Hide features widget for resellers and domain administrators"
|
|
1294
|
-
msgstr "
|
|
1412
|
+
msgstr ""
|
|
1413
|
+
"Masquer le widget des fonctionnalités pour les revendeurs et les "
|
|
1414
|
+
"administrateurs de domaine"
|
|
1295
1415
|
|
|
1296
1416
|
#: core/app_settings.py:531
|
|
1297
1417
|
msgid "Theme"
|
|
@@ -1305,7 +1425,9 @@ msgstr "Couleur principale du thème"
|
|
|
1305
1425
|
msgid ""
|
|
1306
1426
|
"Primary color of the theme (hexadecimal code), used as the background color "
|
|
1307
1427
|
"of the left menu for example"
|
|
1308
|
-
msgstr "
|
|
1428
|
+
msgstr ""
|
|
1429
|
+
"Couleur principale du thème (code hexadécimal), utilisée par exemple comme "
|
|
1430
|
+
"couleur de fond dans le menu de gauche"
|
|
1309
1431
|
|
|
1310
1432
|
#: core/app_settings.py:548
|
|
1311
1433
|
msgid "Primary theme color (lighter version)"
|
|
@@ -1327,7 +1449,9 @@ msgstr "Couleur secondaire du thème"
|
|
|
1327
1449
|
msgid ""
|
|
1328
1450
|
"Secondary color of the theme (hexadecimal code), used as the background "
|
|
1329
1451
|
"color of some buttons for example"
|
|
1330
|
-
msgstr "
|
|
1452
|
+
msgstr ""
|
|
1453
|
+
"Couleur secondaire du thème (code hexadécimal), utilisée par exemple comme "
|
|
1454
|
+
"couleur de fond de certains boutons"
|
|
1331
1455
|
|
|
1332
1456
|
#: core/app_settings.py:581
|
|
1333
1457
|
msgid "Labels theme color"
|
|
@@ -1371,7 +1495,9 @@ msgstr "Envoyer un email quand de nouvelles versions sont trouvées"
|
|
|
1371
1495
|
|
|
1372
1496
|
#: core/app_settings.py:644
|
|
1373
1497
|
msgid "Send an email to notify admins about new versions"
|
|
1374
|
-
msgstr "
|
|
1498
|
+
msgstr ""
|
|
1499
|
+
"Envoyer un email pour notifier les administrateurs à propos des nouvelles "
|
|
1500
|
+
"versions"
|
|
1375
1501
|
|
|
1376
1502
|
#: core/app_settings.py:651 sievefilters/constants.py:25
|
|
1377
1503
|
msgid "Recipient"
|
|
@@ -1387,7 +1513,9 @@ msgstr "Envoyer des statistiques"
|
|
|
1387
1513
|
|
|
1388
1514
|
#: core/app_settings.py:664
|
|
1389
1515
|
msgid "Send statistics to Modoboa public API (counters and used extensions)"
|
|
1390
|
-
msgstr "
|
|
1516
|
+
msgstr ""
|
|
1517
|
+
"Envoyer des statistiques à l'API publique de Modoboa (compteurs et "
|
|
1518
|
+
"extensions utilisées)"
|
|
1391
1519
|
|
|
1392
1520
|
#: core/app_settings.py:683
|
|
1393
1521
|
msgid "Enable inactive account tracking"
|
|
@@ -1397,7 +1525,9 @@ msgstr "Activer le suivi des comptes inactifs"
|
|
|
1397
1525
|
msgid ""
|
|
1398
1526
|
"Allow the administrator to set a threshold (in days) beyond which an account"
|
|
1399
1527
|
" is considered inactive if the user hasn't logged in"
|
|
1400
|
-
msgstr "
|
|
1528
|
+
msgstr ""
|
|
1529
|
+
"Autoriser les administrateurs à définir in seuil (en jours) à partir duquel "
|
|
1530
|
+
"un compte est considéré comme inactif si l'utilisateur ne s'est pas connecté"
|
|
1401
1531
|
|
|
1402
1532
|
#: core/app_settings.py:695
|
|
1403
1533
|
msgid "Inactive account threshold"
|
|
@@ -1407,7 +1537,9 @@ msgstr "Seuil des comptes inactifs"
|
|
|
1407
1537
|
msgid ""
|
|
1408
1538
|
"An account with a last login date greater than this threshold (in days) will"
|
|
1409
1539
|
" be considered as inactive"
|
|
1410
|
-
msgstr "
|
|
1540
|
+
msgstr ""
|
|
1541
|
+
"Un compte avec une date de dernière connexion antérieure à ce seuil sera "
|
|
1542
|
+
"considéré comme inactif"
|
|
1411
1543
|
|
|
1412
1544
|
#: core/app_settings.py:707
|
|
1413
1545
|
msgid "Top notifications check interval"
|
|
@@ -1425,28 +1557,41 @@ msgstr "Age maximal d'un enregistrement du journal"
|
|
|
1425
1557
|
msgid "The maximum age in days of a log record"
|
|
1426
1558
|
msgstr "L'age maximal en jours d'un enregistrement du journal"
|
|
1427
1559
|
|
|
1428
|
-
#: core/app_settings.py:
|
|
1560
|
+
#: core/app_settings.py:727
|
|
1561
|
+
msgid "Retention time in message history"
|
|
1562
|
+
msgstr "Durée de rétention dans l'historique des messages"
|
|
1563
|
+
|
|
1564
|
+
#: core/app_settings.py:730
|
|
1565
|
+
msgid "Retention time (in days) of a message in the message history section"
|
|
1566
|
+
msgstr ""
|
|
1567
|
+
"Durée de rétention (en jours) d'un message dans l'historique des messages"
|
|
1568
|
+
|
|
1569
|
+
#: core/app_settings.py:737
|
|
1429
1570
|
msgid "Items per page"
|
|
1430
1571
|
msgstr "Eléments par page"
|
|
1431
1572
|
|
|
1432
|
-
#: core/app_settings.py:
|
|
1573
|
+
#: core/app_settings.py:739
|
|
1433
1574
|
msgid "Number of displayed items per page"
|
|
1434
1575
|
msgstr "Nombre d'éléments affichés par page"
|
|
1435
1576
|
|
|
1436
|
-
#: core/app_settings.py:
|
|
1577
|
+
#: core/app_settings.py:746
|
|
1437
1578
|
msgid "Default top redirection"
|
|
1438
1579
|
msgstr "Redirection par défaut"
|
|
1439
1580
|
|
|
1440
|
-
#: core/app_settings.py:
|
|
1581
|
+
#: core/app_settings.py:748
|
|
1441
1582
|
msgid "The default redirection used when no application is specified"
|
|
1442
|
-
msgstr "
|
|
1583
|
+
msgstr ""
|
|
1584
|
+
"La redirection appliquée par défaut quand aucune application n'est spécifiée"
|
|
1443
1585
|
|
|
1444
1586
|
#: core/checks.py:15
|
|
1445
1587
|
msgid ""
|
|
1446
1588
|
"You have USE_TZ set to False, this may result in issues during transitions "
|
|
1447
1589
|
"between summer/winter time (ie the same local time occuring twice due to "
|
|
1448
1590
|
"clock change)."
|
|
1449
|
-
msgstr "
|
|
1591
|
+
msgstr ""
|
|
1592
|
+
"Vous avez défini USE_TZ à False, ce qui peut entraîner des problèmes lors "
|
|
1593
|
+
"des transitions entre l'heure d'été et l'heure d'hiver (c.-à-d. La même "
|
|
1594
|
+
"heure locale se produisant deux fois en raison d'un changement d'horloge)."
|
|
1450
1595
|
|
|
1451
1596
|
#: core/checks.py:19
|
|
1452
1597
|
msgid "Set `USE_TZ = True` in settings.py"
|
|
@@ -1458,33 +1603,45 @@ msgstr "La méthode de chiffrement que vous utilisez est obsolète."
|
|
|
1458
1603
|
|
|
1459
1604
|
#: core/checks.py:24
|
|
1460
1605
|
msgid "Upgrade your password scheme to a stronger one"
|
|
1461
|
-
msgstr "
|
|
1606
|
+
msgstr ""
|
|
1607
|
+
"Mettez à jour votre méthode de chiffrement de mot de passe vers une plus "
|
|
1608
|
+
"sûre"
|
|
1462
1609
|
|
|
1463
1610
|
#: core/checks.py:30
|
|
1464
1611
|
msgid ""
|
|
1465
1612
|
"Oauth2 application for dovecot has not been found. Webmail and some other "
|
|
1466
1613
|
"features won't be available."
|
|
1467
|
-
msgstr "
|
|
1614
|
+
msgstr ""
|
|
1615
|
+
"Application Oauth2 non trouvée pour dovecot. Le webmail ainsi que d'autres "
|
|
1616
|
+
"fonctionnalités ne seront pas disponibles."
|
|
1468
1617
|
|
|
1469
1618
|
#: core/checks.py:34
|
|
1470
1619
|
msgid ""
|
|
1471
1620
|
"Visit : "
|
|
1472
1621
|
"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
|
|
1473
1622
|
"oauth2"
|
|
1474
|
-
msgstr "
|
|
1623
|
+
msgstr ""
|
|
1624
|
+
"Visiter : "
|
|
1625
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
|
|
1626
|
+
"oauth2"
|
|
1475
1627
|
|
|
1476
1628
|
#: core/checks.py:41
|
|
1477
1629
|
msgid ""
|
|
1478
1630
|
"Oauth2 application for radicale has not been found. Calendar and some other "
|
|
1479
1631
|
"features won't be available."
|
|
1480
|
-
msgstr "
|
|
1632
|
+
msgstr ""
|
|
1633
|
+
"Application Oauth2 pour Radicale non trouvée. Le calendrier ainsi que "
|
|
1634
|
+
"d'autres fonctionnalités ne seront pas disponibles."
|
|
1481
1635
|
|
|
1482
1636
|
#: core/checks.py:45
|
|
1483
1637
|
msgid ""
|
|
1484
1638
|
"Visit : "
|
|
1485
1639
|
"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
|
|
1486
1640
|
"oauth2"
|
|
1487
|
-
msgstr "
|
|
1641
|
+
msgstr ""
|
|
1642
|
+
"Consulter : "
|
|
1643
|
+
"https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
|
|
1644
|
+
"oauth2"
|
|
1488
1645
|
|
|
1489
1646
|
#: core/constants.py:6
|
|
1490
1647
|
msgid "Simple user"
|
|
@@ -1571,7 +1728,9 @@ msgstr "Une ou plusieurs mises à jour sont disponibles!"
|
|
|
1571
1728
|
#: core/handlers.py:138
|
|
1572
1729
|
#, python-format
|
|
1573
1730
|
msgid "You are still using a deprecated password scheme (%s)"
|
|
1574
|
-
msgstr "
|
|
1731
|
+
msgstr ""
|
|
1732
|
+
"Vous utilisez encore une méthode de chiffrement de mot de passe obsolète "
|
|
1733
|
+
"(%s)"
|
|
1575
1734
|
|
|
1576
1735
|
#: core/management/commands/communicate_with_public_api.py:42
|
|
1577
1736
|
msgid "[modoboa] Update(s) available"
|
|
@@ -1611,7 +1770,8 @@ msgstr "Une adresse e-mail alternative ou de secours."
|
|
|
1611
1770
|
|
|
1612
1771
|
#: core/models.py:150
|
|
1613
1772
|
msgid "Failed to update password: LDAP module not installed"
|
|
1614
|
-
msgstr "
|
|
1773
|
+
msgstr ""
|
|
1774
|
+
"Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé"
|
|
1615
1775
|
|
|
1616
1776
|
#: core/models.py:185 policyd/core.py:117
|
|
1617
1777
|
msgid "account"
|
|
@@ -1631,7 +1791,9 @@ msgstr "L'utilisateur de base '{}' doit avoir une adresse email correcte"
|
|
|
1631
1791
|
|
|
1632
1792
|
#: core/models.py:383
|
|
1633
1793
|
msgid "username and email fields must not differ for '{}'"
|
|
1634
|
-
msgstr "
|
|
1794
|
+
msgstr ""
|
|
1795
|
+
"les champs nom d'utilisateur et email ne doivent pas être différents pour "
|
|
1796
|
+
"'{}'"
|
|
1635
1797
|
|
|
1636
1798
|
#: core/password_validation.py:25
|
|
1637
1799
|
msgid "Password must contain at least {} digit."
|
|
@@ -1663,7 +1825,9 @@ msgstr[2] "Le mot de passe doit contenir au moins {} caractères spéciaux."
|
|
|
1663
1825
|
|
|
1664
1826
|
#: core/password_validation.py:70
|
|
1665
1827
|
msgid "Your password must contain a combination of different character types."
|
|
1666
|
-
msgstr "
|
|
1828
|
+
msgstr ""
|
|
1829
|
+
"Votre mot de passe doit contenir une combinaison de différents types de "
|
|
1830
|
+
"caractère."
|
|
1667
1831
|
|
|
1668
1832
|
#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102
|
|
1669
1833
|
msgid "API endpoint"
|
|
@@ -1720,9 +1884,15 @@ msgid ""
|
|
|
1720
1884
|
msgid_plural ""
|
|
1721
1885
|
"\n"
|
|
1722
1886
|
" The following updates are available:\n"
|
|
1723
|
-
msgstr[0] "
|
|
1724
|
-
|
|
1725
|
-
|
|
1887
|
+
msgstr[0] ""
|
|
1888
|
+
"\n"
|
|
1889
|
+
"La mise à jour suivante est disponible :\n"
|
|
1890
|
+
msgstr[1] ""
|
|
1891
|
+
"\n"
|
|
1892
|
+
"Les mises à jour suivantes sont disponibles :\n"
|
|
1893
|
+
msgstr[2] ""
|
|
1894
|
+
"\n"
|
|
1895
|
+
"Les mises à jour suivantes sont disponibles :\n"
|
|
1726
1896
|
|
|
1727
1897
|
#: core/utils.py:43
|
|
1728
1898
|
msgid "The core part of Modoboa"
|
|
@@ -1736,12 +1906,16 @@ msgstr "Utiliseur '%s' connecté avec succès"
|
|
|
1736
1906
|
#: core/views/auth.py:109
|
|
1737
1907
|
#, python-format
|
|
1738
1908
|
msgid "Password scheme mismatch. Updating %s password"
|
|
1739
|
-
msgstr "
|
|
1909
|
+
msgstr ""
|
|
1910
|
+
"La méthode de chiffrement du mot de passe diffère. Mise à jour du mot de "
|
|
1911
|
+
"passe de %s"
|
|
1740
1912
|
|
|
1741
1913
|
#: core/views/auth.py:116
|
|
1742
1914
|
#, python-format
|
|
1743
1915
|
msgid "Password hash parameter missmatch. Updating %s password"
|
|
1744
|
-
msgstr "
|
|
1916
|
+
msgstr ""
|
|
1917
|
+
"Le paramètre de hash du mot de passe ne correspond pas. Mise à jour %s du "
|
|
1918
|
+
"mot de passe"
|
|
1745
1919
|
|
|
1746
1920
|
#: core/views/auth.py:154
|
|
1747
1921
|
msgid "User '{}' successfully logged out"
|
|
@@ -1757,7 +1931,9 @@ msgstr "Activer les recherches inversées"
|
|
|
1757
1931
|
|
|
1758
1932
|
#: dmarc/forms.py:23
|
|
1759
1933
|
msgid "Enable reverse DNS lookups (reports will be longer to display)"
|
|
1760
|
-
msgstr "
|
|
1934
|
+
msgstr ""
|
|
1935
|
+
"Activer les recherches DNS inversées (les rapports seront plus longs à "
|
|
1936
|
+
"afficher)"
|
|
1761
1937
|
|
|
1762
1938
|
#: dmarc/forms.py:42
|
|
1763
1939
|
msgid "DMARC"
|
|
@@ -1944,7 +2120,9 @@ msgstr "Filtre d'exclusion de dossier"
|
|
|
1944
2120
|
msgid ""
|
|
1945
2121
|
"Use a regular expression to explicitly include folders in sync. Example: "
|
|
1946
2122
|
"^Trash$|Del"
|
|
1947
|
-
msgstr "
|
|
2123
|
+
msgstr ""
|
|
2124
|
+
"Utiliser une expression régulière pour explicitement inclure des dossiers à "
|
|
2125
|
+
"synchroniser. Exemple : ^Trash$|Del"
|
|
1948
2126
|
|
|
1949
2127
|
#: imap_migration/app_settings.py:74
|
|
1950
2128
|
msgid "Folder Filter Inclusions"
|
|
@@ -1955,27 +2133,29 @@ msgid ""
|
|
|
1955
2133
|
"A comma seperated list of folders to explicitly include in sync even if "
|
|
1956
2134
|
"filtered by the Folder Filter Exclusions. Example: debian.user, "
|
|
1957
2135
|
"debian.personal "
|
|
1958
|
-
msgstr "
|
|
2136
|
+
msgstr ""
|
|
2137
|
+
"Une liste de dossiers séparés par des virgules à explicitement inclure "
|
|
2138
|
+
"pendant la synchronisation même s'ils sont concernés par le filtre "
|
|
2139
|
+
"d'exclusion. Exemple debian.user, debian.personal"
|
|
1959
2140
|
|
|
1960
2141
|
#: imap_migration/apps.py:20
|
|
1961
2142
|
msgid "IMAP Migration"
|
|
1962
2143
|
msgstr "Migration IMAP"
|
|
1963
2144
|
|
|
1964
|
-
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
|
|
1965
|
-
#, python-brace-format
|
|
1966
|
-
msgid "Connection to IMAP server failed: {error}"
|
|
1967
|
-
msgstr "La connexion au serveur IMAP a échoué : {error}"
|
|
1968
|
-
|
|
1969
2145
|
#: imap_migration/checks.py:12
|
|
1970
2146
|
msgid ""
|
|
1971
2147
|
"Automatic domain/mailbox creation is disabled which means IMAP "
|
|
1972
2148
|
"authentication won't work."
|
|
1973
|
-
msgstr "
|
|
2149
|
+
msgstr ""
|
|
2150
|
+
"La création automatique de domaine/compte est désactivée, ce qui veut dire "
|
|
2151
|
+
"que l'authentification IMAP ne fonctionnera pas."
|
|
1974
2152
|
|
|
1975
2153
|
#: imap_migration/checks.py:16
|
|
1976
2154
|
msgid ""
|
|
1977
2155
|
"Go to the online parameters panel (admin tab) and activate this feature."
|
|
1978
|
-
msgstr "
|
|
2156
|
+
msgstr ""
|
|
2157
|
+
"Rendez vous sur le panneau de configuration des paramètres (onglet "
|
|
2158
|
+
"Administration) et activez cette fonctionnalité."
|
|
1979
2159
|
|
|
1980
2160
|
#: ldapsync/lib.py:82
|
|
1981
2161
|
msgid "Failed to create LDAP account: {}"
|
|
@@ -2044,13 +2224,17 @@ msgstr "Admins de domaine"
|
|
|
2044
2224
|
msgid ""
|
|
2045
2225
|
"Maximum number of allowed domain administrators for a new administrator. (0 "
|
|
2046
2226
|
"to deny any creation, -1 to allow unlimited creations)"
|
|
2047
|
-
msgstr "
|
|
2227
|
+
msgstr ""
|
|
2228
|
+
"Nombre maximal d'admins de domaine pour un nouvel administrateur. (0 pour "
|
|
2229
|
+
"interdire toute création, -1 pour autoriser les création illimitées)"
|
|
2048
2230
|
|
|
2049
2231
|
#: limits/app_settings.py:41
|
|
2050
2232
|
msgid ""
|
|
2051
2233
|
"Maximum number of allowed domains for a new administrator. (0 to deny any "
|
|
2052
2234
|
"creation, -1 to allow unlimited creations)"
|
|
2053
|
-
msgstr "
|
|
2235
|
+
msgstr ""
|
|
2236
|
+
"Nombre maximal de domaines pour un nouvel administrateur. (0 pour interdire "
|
|
2237
|
+
"toute création, -1 pour autoriser les créations illimitées)"
|
|
2054
2238
|
|
|
2055
2239
|
#: limits/app_settings.py:49 limits/app_settings.py:123 limits/constants.py:22
|
|
2056
2240
|
#: limits/constants.py:76
|
|
@@ -2061,13 +2245,17 @@ msgstr "Alias de domaine"
|
|
|
2061
2245
|
msgid ""
|
|
2062
2246
|
"Maximum number of allowed domain aliases for a new administrator. (0 to deny"
|
|
2063
2247
|
" any creation, -1 to allow unlimited creations)"
|
|
2064
|
-
msgstr "
|
|
2248
|
+
msgstr ""
|
|
2249
|
+
"Nombre maximal d'alias de domaine pour un nouvel administrateur. (0 pour "
|
|
2250
|
+
"interdire toute création, -1 pour autoriser les créations illimitées)"
|
|
2065
2251
|
|
|
2066
2252
|
#: limits/app_settings.py:64
|
|
2067
2253
|
msgid ""
|
|
2068
2254
|
"Maximum number of allowed mailboxes for a new administrator. (0 to deny any "
|
|
2069
2255
|
"creation, -1 to allow unlimited creations)"
|
|
2070
|
-
msgstr "
|
|
2256
|
+
msgstr ""
|
|
2257
|
+
"Nombre maximal de boites pour un nouvel administrateur. (0 pour interdire "
|
|
2258
|
+
"toute création, -1 pour autoriser les créations illimitées)"
|
|
2071
2259
|
|
|
2072
2260
|
#: limits/app_settings.py:73 limits/app_settings.py:146 limits/constants.py:39
|
|
2073
2261
|
#: limits/constants.py:92
|
|
@@ -2078,7 +2266,9 @@ msgstr "Alias de boite"
|
|
|
2078
2266
|
msgid ""
|
|
2079
2267
|
"Maximum number of allowed aliases for a new administrator. (0 to deny any "
|
|
2080
2268
|
"creation, -1 to allow unlimited creations)"
|
|
2081
|
-
msgstr "
|
|
2269
|
+
msgstr ""
|
|
2270
|
+
"Nombre maximal d'alias de boite pour un nouvel administrateur. (0 pour "
|
|
2271
|
+
"interdire toute création, -1 pour autoriser les créations illimitées)"
|
|
2082
2272
|
|
|
2083
2273
|
#: limits/app_settings.py:84 limits/constants.py:59
|
|
2084
2274
|
msgid "Quota"
|
|
@@ -2088,7 +2278,9 @@ msgstr "Quota"
|
|
|
2088
2278
|
msgid ""
|
|
2089
2279
|
"The quota a reseller will be allowed to share between the domains he "
|
|
2090
2280
|
"creates. (0 means no quota)"
|
|
2091
|
-
msgstr "
|
|
2281
|
+
msgstr ""
|
|
2282
|
+
"Le quota qu'un revendeur sera autorisé à partager entre les domaines qu'il "
|
|
2283
|
+
"créé. (0 signifie pas de quota)"
|
|
2092
2284
|
|
|
2093
2285
|
#: limits/app_settings.py:98
|
|
2094
2286
|
msgid "Default per-domain limits"
|
|
@@ -2106,25 +2298,34 @@ msgstr "Activer ou désactiver les limites par domaine"
|
|
|
2106
2298
|
msgid ""
|
|
2107
2299
|
"Maximum number of allowed domain administrators for a new domain. (0 to deny"
|
|
2108
2300
|
" any creation, -1 to allow unlimited creations)"
|
|
2109
|
-
msgstr "
|
|
2301
|
+
msgstr ""
|
|
2302
|
+
"Nombre maximal d'administrateurs de domaine autorisés pour un nouveau "
|
|
2303
|
+
"domaine (0 pour interdire toute création, -1 pour autoriser les créations "
|
|
2304
|
+
"illimitées)"
|
|
2110
2305
|
|
|
2111
2306
|
#: limits/app_settings.py:126
|
|
2112
2307
|
msgid ""
|
|
2113
2308
|
"Maximum number of allowed domain aliases for a new domain. (0 to deny any "
|
|
2114
2309
|
"creation, -1 to allow unlimited creations)"
|
|
2115
|
-
msgstr "
|
|
2310
|
+
msgstr ""
|
|
2311
|
+
"Nombre maximal d'alias de domaine autorisés pour un nouveau domaine. (0 pour"
|
|
2312
|
+
" interdire toute création, -1 pour autoriser les créations illimitées)"
|
|
2116
2313
|
|
|
2117
2314
|
#: limits/app_settings.py:138
|
|
2118
2315
|
msgid ""
|
|
2119
2316
|
"Maximum number of allowed mailboxes for a new domain. (0 to deny any "
|
|
2120
2317
|
"creation, -1 to allow unlimited creations)"
|
|
2121
|
-
msgstr "
|
|
2318
|
+
msgstr ""
|
|
2319
|
+
"Nombre maximal de boites aux lettres autorisées pour un nouveau domaine. (0 "
|
|
2320
|
+
"pour interdire toute création, -1 pour autoriser les créations illimitées)"
|
|
2122
2321
|
|
|
2123
2322
|
#: limits/app_settings.py:149
|
|
2124
2323
|
msgid ""
|
|
2125
2324
|
"Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
|
|
2126
2325
|
" -1 to allow unlimited creations)"
|
|
2127
|
-
msgstr "
|
|
2326
|
+
msgstr ""
|
|
2327
|
+
"Nombre maximal d'alias autorisés pour un nouveau domaine. (0 pour interdire "
|
|
2328
|
+
"toute création, -1 pour autoriser les créations illimitées)"
|
|
2128
2329
|
|
|
2129
2330
|
#: limits/apps.py:16
|
|
2130
2331
|
msgid "Limits"
|
|
@@ -2168,7 +2369,8 @@ msgstr "Nombre maximal d'alias autorisés pour ce domaine."
|
|
|
2168
2369
|
|
|
2169
2370
|
#: limits/constants.py:102
|
|
2170
2371
|
msgid "Maximum number of domain admins allowed for this domain."
|
|
2171
|
-
msgstr "
|
|
2372
|
+
msgstr ""
|
|
2373
|
+
"Nombre maximal d'administrateurs de domaine autorisés pour ce domaine."
|
|
2172
2374
|
|
|
2173
2375
|
#: limits/lib.py:19
|
|
2174
2376
|
#, python-format
|
|
@@ -2189,7 +2391,9 @@ msgstr "illimité"
|
|
|
2189
2391
|
|
|
2190
2392
|
#: maillog/api/v2/serializers.py:35
|
|
2191
2393
|
msgid "You must provide start and end dates when period is custom"
|
|
2192
|
-
msgstr "
|
|
2394
|
+
msgstr ""
|
|
2395
|
+
"Vous devez fournir des dates de début et fin quand la période est "
|
|
2396
|
+
"personnalisée"
|
|
2193
2397
|
|
|
2194
2398
|
#: maillog/apps.py:20
|
|
2195
2399
|
msgid "Path to the log file"
|
|
@@ -2287,11 +2491,11 @@ msgstr "Comptes"
|
|
|
2287
2491
|
msgid "Personal account information"
|
|
2288
2492
|
msgstr "Informations de compte personnel"
|
|
2289
2493
|
|
|
2290
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2494
|
+
#: pdfcredentials/api/v2/serializers.py:86
|
|
2291
2495
|
msgid "Directory is not writable"
|
|
2292
2496
|
msgstr "Le répertoire n'est pas accessible en écriture"
|
|
2293
2497
|
|
|
2294
|
-
#: pdfcredentials/api/v2/serializers.py:
|
|
2498
|
+
#: pdfcredentials/api/v2/serializers.py:114
|
|
2295
2499
|
msgid "No document available for this user"
|
|
2296
2500
|
msgstr "Aucun document disponible pour cet utilisateur"
|
|
2297
2501
|
|
|
@@ -2301,7 +2505,9 @@ msgstr "Activer les identifiants PDF"
|
|
|
2301
2505
|
|
|
2302
2506
|
#: pdfcredentials/app_settings.py:21
|
|
2303
2507
|
msgid "Enabled PDF credentials document generation on account creation."
|
|
2304
|
-
msgstr "
|
|
2508
|
+
msgstr ""
|
|
2509
|
+
"Activer la génération d'un document PDF d'identifiants à la création d'un "
|
|
2510
|
+
"compte."
|
|
2305
2511
|
|
|
2306
2512
|
#: pdfcredentials/app_settings.py:32
|
|
2307
2513
|
msgid "Documents storage"
|
|
@@ -2327,7 +2533,9 @@ msgstr "Supprimer les documents après le premier téléchargement"
|
|
|
2327
2533
|
msgid ""
|
|
2328
2534
|
"Automatically delete a document just after its first download from this "
|
|
2329
2535
|
"interface"
|
|
2330
|
-
msgstr "
|
|
2536
|
+
msgstr ""
|
|
2537
|
+
"Supprimer automatiquement un document juste après son premier téléchargement"
|
|
2538
|
+
" depuis cette interface"
|
|
2331
2539
|
|
|
2332
2540
|
#: pdfcredentials/app_settings.py:68
|
|
2333
2541
|
msgid "Generate documents only at account creation"
|
|
@@ -2337,7 +2545,10 @@ msgstr "Générer les documents à la création des comptes uniquement"
|
|
|
2337
2545
|
msgid ""
|
|
2338
2546
|
"Generate a new document only when a new account is created. If set to no, a "
|
|
2339
2547
|
"new document will be created each time a password is updated."
|
|
2340
|
-
msgstr "
|
|
2548
|
+
msgstr ""
|
|
2549
|
+
"Génère un nouveau document uniquement lors de la création d'un compte. Si "
|
|
2550
|
+
"défini à non, un nouveau document sera généré chaque fois qu'un mot de passe"
|
|
2551
|
+
" est changé."
|
|
2341
2552
|
|
|
2342
2553
|
#: pdfcredentials/app_settings.py:84
|
|
2343
2554
|
msgid "Customization options"
|
|
@@ -2375,7 +2586,9 @@ msgstr "Inclure les paramètres de connexion pour client mail"
|
|
|
2375
2586
|
msgid ""
|
|
2376
2587
|
"Include required SMTP and IMAP connection information to configure a mail "
|
|
2377
2588
|
"client, a tablet or a phone"
|
|
2378
|
-
msgstr "
|
|
2589
|
+
msgstr ""
|
|
2590
|
+
"Inclure les paramètres de connexion nécessaires pour configurer un client "
|
|
2591
|
+
"mail, une tablette ou un téléphone"
|
|
2379
2592
|
|
|
2380
2593
|
#: pdfcredentials/app_settings.py:123 pdfcredentials/documents.py:133
|
|
2381
2594
|
msgid "SMTP server address"
|
|
@@ -2436,7 +2649,11 @@ msgid ""
|
|
|
2436
2649
|
"Dear %s, this document contains the credentials you will need\n"
|
|
2437
2650
|
"to connect to Modoboa. Learn the content and destroy\n"
|
|
2438
2651
|
"the document as soon as possible.\n"
|
|
2439
|
-
msgstr "
|
|
2652
|
+
msgstr ""
|
|
2653
|
+
"\n"
|
|
2654
|
+
"Cher %s, ce document contient les identifiants dont vous aurez\n"
|
|
2655
|
+
"besoin pour vous connecter à Modoboa. Apprenez les puis détruisez\n"
|
|
2656
|
+
"ce document le plus rapidement possible.\n"
|
|
2440
2657
|
|
|
2441
2658
|
#: pdfcredentials/documents.py:95
|
|
2442
2659
|
msgid "Web panel:"
|
|
@@ -2455,7 +2672,9 @@ msgid ""
|
|
|
2455
2672
|
"\n"
|
|
2456
2673
|
"Here you can view your emails anytime online, create filters or manage\n"
|
|
2457
2674
|
"your contacts.\n"
|
|
2458
|
-
msgstr "
|
|
2675
|
+
msgstr ""
|
|
2676
|
+
"\n"
|
|
2677
|
+
"D'ici vous pouvez consulter vos emails en ligne n'importe quand, créer des filtres ou gérer vos contacts.\n"
|
|
2459
2678
|
|
|
2460
2679
|
#: pdfcredentials/documents.py:126
|
|
2461
2680
|
msgid "Please change your password!"
|
|
@@ -2467,13 +2686,17 @@ msgstr "Configuration PC/Tablette/Smartphone :"
|
|
|
2467
2686
|
|
|
2468
2687
|
#: pdfcredentials/documents.py:153
|
|
2469
2688
|
msgid "Use those settings for your computer, tablet or phone."
|
|
2470
|
-
msgstr "
|
|
2689
|
+
msgstr ""
|
|
2690
|
+
"Utilisez ces paramètres pour votre ordinateur, votre tablette ou votre "
|
|
2691
|
+
"téléphone."
|
|
2471
2692
|
|
|
2472
2693
|
#: pdfcredentials/handlers.py:35
|
|
2473
2694
|
msgid ""
|
|
2474
2695
|
"Failed to create PDF_credentials directory. Please check the permissions or "
|
|
2475
2696
|
"the path."
|
|
2476
|
-
msgstr "
|
|
2697
|
+
msgstr ""
|
|
2698
|
+
"Echec lors de la création du répertoire PDF_credentials. Veuillez vérifier "
|
|
2699
|
+
"les permissions et le chemin d'accès."
|
|
2477
2700
|
|
|
2478
2701
|
#: pdfcredentials/handlers.py:64
|
|
2479
2702
|
msgid "Download PDF credentials"
|
|
@@ -2481,18 +2704,24 @@ msgstr "Télécharger les identifiants PDF"
|
|
|
2481
2704
|
|
|
2482
2705
|
#: pdfcredentials/lib.py:29
|
|
2483
2706
|
msgid "Can't write to selected directory to store PDF documents"
|
|
2484
|
-
msgstr "
|
|
2707
|
+
msgstr ""
|
|
2708
|
+
"Impossible d'écrire dans le répertoire sélectionné pour stocker les "
|
|
2709
|
+
"documents PDF"
|
|
2485
2710
|
|
|
2486
2711
|
#: pdfcredentials/lib.py:35
|
|
2487
2712
|
#, python-format
|
|
2488
2713
|
msgid "Failed to create the directory that will contain PDF documents (%s)"
|
|
2489
|
-
msgstr "
|
|
2714
|
+
msgstr ""
|
|
2715
|
+
"Echec lors de la création du répertoire qui contiendra les documents PDF "
|
|
2716
|
+
"(%s)"
|
|
2490
2717
|
|
|
2491
2718
|
#: pdfcredentials/lib.py:82
|
|
2492
2719
|
msgid ""
|
|
2493
2720
|
"Failed to create PDF_credentials file. Please check the permissions or the "
|
|
2494
2721
|
"path."
|
|
2495
|
-
msgstr "
|
|
2722
|
+
msgstr ""
|
|
2723
|
+
"Echec lors de la création du fichier PDF_credentials. Veuillez vérifier les "
|
|
2724
|
+
"permissions et le chemin d'accès."
|
|
2496
2725
|
|
|
2497
2726
|
#: policyd/core.py:99
|
|
2498
2727
|
msgid "Daily sending limit reached"
|
|
@@ -2509,7 +2738,8 @@ msgstr "[modoboa] Limite d'envoi atteinte"
|
|
|
2509
2738
|
#: policyd/templates/policyd/notifications/limit_reached.html:3
|
|
2510
2739
|
#, python-format
|
|
2511
2740
|
msgid "Daily limit of the following %(ltype)s has been reached: %(name)s."
|
|
2512
|
-
msgstr "
|
|
2741
|
+
msgstr ""
|
|
2742
|
+
"Limite quotidienne d'envoi du %(ltype)s suivant a été atteinte : %(name)s."
|
|
2513
2743
|
|
|
2514
2744
|
#: relaydomains/api/v1/serializers.py:24
|
|
2515
2745
|
msgid "Unsupported service"
|
|
@@ -2551,7 +2781,10 @@ msgstr "Chemin d'accès vers le fichier des clés"
|
|
|
2551
2781
|
msgid ""
|
|
2552
2782
|
"Absolute path of the file which contains paths to DKIM private keys. Must be"
|
|
2553
2783
|
" readable by _rspamd group or user."
|
|
2554
|
-
msgstr "
|
|
2784
|
+
msgstr ""
|
|
2785
|
+
"Chemin absolu vers le fichier qui contient les chemins vers les clés privées"
|
|
2786
|
+
" DKIM. Doit être accessible en lecture par l'utilisateur ou le groupe "
|
|
2787
|
+
"_rspamd."
|
|
2555
2788
|
|
|
2556
2789
|
#: rspamd/app_settings.py:30
|
|
2557
2790
|
msgid "Selector map path"
|
|
@@ -2561,7 +2794,9 @@ msgstr "Chemin d'accès vers le fichier des sélecteurs"
|
|
|
2561
2794
|
msgid ""
|
|
2562
2795
|
"Absolute path of the file which contains names of DKIM selectors. Must be "
|
|
2563
2796
|
"readable by _rspamd group or user."
|
|
2564
|
-
msgstr "
|
|
2797
|
+
msgstr ""
|
|
2798
|
+
"Chemin absolu vers le fichier qui contient le nom des sélecteurs DKIM. Doit "
|
|
2799
|
+
"être accessible en lecture par l'utilisateur ou le groupe _rspamd."
|
|
2565
2800
|
|
|
2566
2801
|
#: rspamd/app_settings.py:51
|
|
2567
2802
|
msgid "Rspamd dashboard location"
|
|
@@ -2572,7 +2807,9 @@ msgid ""
|
|
|
2572
2807
|
"Location of the rspamd dashboard. Can either be a relative URL (eg. "
|
|
2573
2808
|
"'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
|
|
2574
2809
|
"guidance on the Super-Admin dashboard."
|
|
2575
|
-
msgstr "
|
|
2810
|
+
msgstr ""
|
|
2811
|
+
"Emplacement du dashboard rspamd. Peut être soit une URL relative (ie. "
|
|
2812
|
+
"'/rspamd') ou une URL complète (ie. 'https://rspamd.domain.tld')."
|
|
2576
2813
|
|
|
2577
2814
|
#: rspamd/apps.py:18
|
|
2578
2815
|
msgid "Rspamd"
|
|
@@ -2697,7 +2934,8 @@ msgstr "Arrêter le traitement"
|
|
|
2697
2934
|
|
|
2698
2935
|
#: sievefilters/lib.py:49
|
|
2699
2936
|
msgid "Connection to MANAGESIEVE server failed, check your configuration"
|
|
2700
|
-
msgstr "
|
|
2937
|
+
msgstr ""
|
|
2938
|
+
"La connexion au serveur MANAGESIEVE a échoué, vérifiez votre configuration"
|
|
2701
2939
|
|
|
2702
2940
|
#: sievefilters/lib.py:76
|
|
2703
2941
|
msgid "Not enough space on server"
|
|
@@ -2752,7 +2990,9 @@ msgstr "Mot de passe oublié ?"
|
|
|
2752
2990
|
msgid ""
|
|
2753
2991
|
"Your password has been set. You may go ahead and <a href=\"%(url)s\">sign "
|
|
2754
2992
|
"in</a> now."
|
|
2755
|
-
msgstr "
|
|
2993
|
+
msgstr ""
|
|
2994
|
+
"Votre mot de passe a été défini. Vous pouvez continuer et vous <a "
|
|
2995
|
+
"href=\"%(url)s\">connecter </a> dès maintenant."
|
|
2756
2996
|
|
|
2757
2997
|
#: templates/registration/password_reset_confirm.html:8
|
|
2758
2998
|
msgid "Change password"
|
|
@@ -2768,7 +3008,10 @@ msgstr "Soumettre"
|
|
|
2768
3008
|
msgid ""
|
|
2769
3009
|
"The password reset link was invalid, possibly because it has already been "
|
|
2770
3010
|
"used. Please request a new password reset."
|
|
2771
|
-
msgstr "
|
|
3011
|
+
msgstr ""
|
|
3012
|
+
"Le lien de réinitialisation du mot de passe était invalide, probablement "
|
|
3013
|
+
"parce qu'il a déjà été utilisé. Merci de demander une nouvelle "
|
|
3014
|
+
"réinitialisation de mot de passe."
|
|
2772
3015
|
|
|
2773
3016
|
#: templates/registration/password_reset_confirm_code.html:22
|
|
2774
3017
|
msgid "Enter the code you've just received by SMS"
|
|
@@ -2788,7 +3031,12 @@ msgid ""
|
|
|
2788
3031
|
"exists with the email you entered. You should receive them shortly.</p> "
|
|
2789
3032
|
"<p>If you don't receive an email, please make sure you've entered your "
|
|
2790
3033
|
"primary address, and check your spam folder.</p>"
|
|
2791
|
-
msgstr "
|
|
3034
|
+
msgstr ""
|
|
3035
|
+
"<p>Nous vous avons envoyé par email les instructions pour définir votre mot "
|
|
3036
|
+
"de passe, pour peu qu'un compte avec l'email que vous avez renseigné existe."
|
|
3037
|
+
" Vous devriez les recevoir rapidement.</p><p>Si vous ne recevez pas d'email,"
|
|
3038
|
+
" merci de vérifier que vous avez renseigné votre adresse principale et de "
|
|
3039
|
+
"vérifier votre dossier spam.</p>"
|
|
2792
3040
|
|
|
2793
3041
|
#: templates/registration/password_reset_email.html:4
|
|
2794
3042
|
#: templates/registration/password_reset_email_v2.html:4
|
|
@@ -2796,14 +3044,18 @@ msgstr "<p>Nous vous avons envoyé par email les instructions pour définir votr
|
|
|
2796
3044
|
msgid ""
|
|
2797
3045
|
"To initiate the password reset process for your %(username)s Modoboa "
|
|
2798
3046
|
"account, click the link below:"
|
|
2799
|
-
msgstr "
|
|
3047
|
+
msgstr ""
|
|
3048
|
+
"Pour initier la procédure de réinitialisation du mot de passe de votre "
|
|
3049
|
+
"compte Modoboa %(username)s, cliquez sur le lien ci-dessous :"
|
|
2800
3050
|
|
|
2801
3051
|
#: templates/registration/password_reset_email.html:10
|
|
2802
3052
|
#: templates/registration/password_reset_email_v2.html:10
|
|
2803
3053
|
msgid ""
|
|
2804
3054
|
"If clicking the link above doesn't work, please copy and paste the URL in a "
|
|
2805
3055
|
"new browser window instead."
|
|
2806
|
-
msgstr "
|
|
3056
|
+
msgstr ""
|
|
3057
|
+
"Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller "
|
|
3058
|
+
"cette URL dans une nouvelle fenêtre navigateur à la place."
|
|
2807
3059
|
|
|
2808
3060
|
#: templates/registration/password_reset_email.html:14
|
|
2809
3061
|
#: templates/registration/password_reset_email_v2.html:14
|
|
@@ -2834,7 +3086,10 @@ msgstr "Mot de passe jetable"
|
|
|
2834
3086
|
msgid ""
|
|
2835
3087
|
"Enter the code from the two-factor app on your mobile device. If you've lost"
|
|
2836
3088
|
" your device, you may enter one of your recovery codes."
|
|
2837
|
-
msgstr "
|
|
3089
|
+
msgstr ""
|
|
3090
|
+
"Renseignez le code provenant de l'application double-facteur de votre "
|
|
3091
|
+
"téléphone mobile. Si vous avez perdu votre téléphone, vous pouvez utiliser "
|
|
3092
|
+
"l'un de vos codes de récupération."
|
|
2838
3093
|
|
|
2839
3094
|
#: templates/registration/twofactor_code_verify.html:42
|
|
2840
3095
|
msgid "Verify code"
|
|
@@ -2871,7 +3126,8 @@ msgstr "Taille maximale d'une pièce jointe"
|
|
|
2871
3126
|
|
|
2872
3127
|
#: webmail/app_settings.py:19
|
|
2873
3128
|
msgid "Maximum attachment size in bytes (or KB, MB, GB if specified)"
|
|
2874
|
-
msgstr "
|
|
3129
|
+
msgstr ""
|
|
3130
|
+
"Taille maximale d'une pièce jointe en octets (ou KB, MG, GB si précisé)"
|
|
2875
3131
|
|
|
2876
3132
|
#: webmail/app_settings.py:67
|
|
2877
3133
|
msgid "SMTP settings"
|
|
@@ -2903,7 +3159,7 @@ msgstr "Le serveur nécessite une authentification"
|
|
|
2903
3159
|
|
|
2904
3160
|
#: webmail/app_settings.py:118
|
|
2905
3161
|
msgid "Display"
|
|
2906
|
-
msgstr "
|
|
3162
|
+
msgstr "Afficher"
|
|
2907
3163
|
|
|
2908
3164
|
#: webmail/app_settings.py:124
|
|
2909
3165
|
msgid "Default message display mode"
|
|
@@ -2923,7 +3179,7 @@ msgstr "Activer/Désactiver l'affichage des liens HTML"
|
|
|
2923
3179
|
|
|
2924
3180
|
#: webmail/app_settings.py:144
|
|
2925
3181
|
msgid "Number of displayed emails per page"
|
|
2926
|
-
msgstr "Nombre
|
|
3182
|
+
msgstr "Nombre d'emails affichés par page"
|
|
2927
3183
|
|
|
2928
3184
|
#: webmail/app_settings.py:147
|
|
2929
3185
|
msgid "Sets the maximum number of messages displayed in a page"
|
|
@@ -3001,14 +3257,26 @@ msgstr "Texte de signature"
|
|
|
3001
3257
|
msgid "User defined email signature"
|
|
3002
3258
|
msgstr "Signature email personnalisée"
|
|
3003
3259
|
|
|
3260
|
+
#: webmail/exceptions.py:18
|
|
3261
|
+
msgid "Server response"
|
|
3262
|
+
msgstr "Réponse du serveur"
|
|
3263
|
+
|
|
3004
3264
|
#: webmail/lib/attachments.py:112
|
|
3005
3265
|
msgid "Failed to remove attachment: "
|
|
3006
3266
|
msgstr "Impossible de supprimer la pièce jointe :"
|
|
3007
3267
|
|
|
3268
|
+
#: webmail/lib/imapemail.py:272
|
|
3269
|
+
msgid "wrote:"
|
|
3270
|
+
msgstr "a écrit :"
|
|
3271
|
+
|
|
3008
3272
|
#: webmail/lib/imapemail.py:306
|
|
3009
3273
|
msgid "Date"
|
|
3010
3274
|
msgstr "Date"
|
|
3011
3275
|
|
|
3276
|
+
#: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
|
|
3277
|
+
msgid "Original message"
|
|
3278
|
+
msgstr "Message original"
|
|
3279
|
+
|
|
3012
3280
|
#: webmail/lib/imaputils.py:221
|
|
3013
3281
|
msgid "Failed to retrieve hierarchy delimiter"
|
|
3014
3282
|
msgstr "Echec lors de la récupération du séparateur de hierarchie"
|