modoboa 2.6.4__py3-none-any.whl → 2.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -0
  2. modoboa/admin/app_settings.py +12 -0
  3. modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
  4. modoboa/admin/jobs.py +86 -0
  5. modoboa/admin/management/commands/modo.py +0 -2
  6. modoboa/admin/tests/test_mailbox_operations.py +4 -4
  7. modoboa/admin/tests/test_mx.py +68 -56
  8. modoboa/amavis/jobs.py +11 -0
  9. modoboa/amavis/tests/test_jobs.py +18 -0
  10. modoboa/amavis/tests/test_viewsets.py +2 -3
  11. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
  12. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
  13. modoboa/autoconfig/tests.py +2 -1
  14. modoboa/autoconfig/views.py +11 -3
  15. modoboa/autoreply/models.py +4 -4
  16. modoboa/calendars/backends/caldav_.py +17 -13
  17. modoboa/calendars/jobs.py +7 -0
  18. modoboa/calendars/mocks.py +4 -1
  19. modoboa/calendars/serializers.py +14 -9
  20. modoboa/calendars/tests.py +10 -9
  21. modoboa/calendars/viewsets.py +3 -1
  22. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  23. modoboa/contacts/models.py +1 -0
  24. modoboa/contacts/serializers.py +5 -2
  25. modoboa/contacts/tasks.py +9 -3
  26. modoboa/contacts/tests.py +32 -6
  27. modoboa/contacts/viewsets.py +7 -1
  28. modoboa/core/api/v2/serializers.py +0 -7
  29. modoboa/core/api/v2/tests.py +0 -10
  30. modoboa/core/app_settings.py +0 -22
  31. modoboa/core/commands/deploy.py +13 -0
  32. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  33. modoboa/core/commands/templates/settings.py.tpl +21 -0
  34. modoboa/core/jobs.py +34 -0
  35. modoboa/core/management/commands/load_initial_data.py +1 -1
  36. modoboa/core/password_hashers/base.py +4 -1
  37. modoboa/core/tests/test_core.py +0 -14
  38. modoboa/core/tests/test_jobs.py +40 -0
  39. modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  40. modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-CCuN9mGB.js} +1 -1
  41. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  42. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  43. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  44. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  45. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  46. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  47. modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-CTjrXYPf.js} +1 -1
  48. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  49. modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-BN13MNN_.js} +1 -1
  50. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  52. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  53. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  55. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  56. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  57. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  58. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  59. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  60. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  61. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  62. modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-DD7p3i6F.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-DoIoNYC4.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  65. modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-BXvznFYz.js} +3 -3
  66. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  67. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  68. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  69. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  70. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  71. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  72. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  73. modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-CyBl5wj2.js} +15 -15
  74. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  75. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  76. modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-C2txD49L.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js} +1 -1
  78. modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-DHYITkn4.js} +1 -1
  79. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  80. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  81. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  82. modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-CrrEJpNI.js} +1 -1
  83. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  84. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  85. modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-DFKYkPAs.js} +1 -1
  86. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  87. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  88. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  89. modoboa/frontend_dist/assets/ProviderGeneralForm-DO-IpJMQ.js +1 -0
  90. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  92. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  93. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  94. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  95. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  97. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  98. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  100. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  101. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  102. modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-MDbeolOo.js} +1 -1
  103. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  105. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  106. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  107. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  108. modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-CBtX8JF-.js} +1 -1
  109. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  110. modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  111. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  112. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  113. modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-Cn-vKB3s.js} +1 -1
  114. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  116. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  118. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  119. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  120. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  121. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  122. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  123. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  125. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  127. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  128. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  129. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  130. modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-83Qnr5iB.js} +1 -1
  131. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  132. modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  133. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  134. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  135. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  136. modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-f7wcr2AZ.js} +1 -1
  137. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  138. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  140. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  142. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  144. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  145. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  147. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  148. modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-KUsk6LHW.js} +1 -1
  149. modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-BW9cZW0P.js} +1 -1
  150. modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-Ge0hjIsH.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-BbFeFfsk.js} +1 -1
  152. modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-DtuzP_CS.js} +1 -1
  153. modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DMJlQTe0.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-Du64lcXT.js} +1 -1
  155. modoboa/frontend_dist/assets/domains.store-1U61jeCV.js +1 -0
  156. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  157. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  158. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  159. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  160. modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dv00bmw9.js} +1 -1
  161. modoboa/frontend_dist/assets/index-jui3edpn.js +1001 -0
  162. modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-OcfdXL_-.js} +1 -1
  163. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  164. modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-DOO7TRTJ.js} +1 -1
  165. modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-C0g-piJn.js} +1 -1
  166. modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-Dz2Gzei-.js} +1 -1
  167. modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-CLm32Weu.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DMIAQ7cd.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DLnFzCwV.js} +1 -1
  170. modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CrpE0b4w.js} +1 -1
  171. modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-B7cr7q9U.js} +1 -1
  172. modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-WF93n81Q.js} +1 -1
  173. modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-_0oOYChG.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  175. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  176. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  177. modoboa/frontend_dist/index.html +2 -2
  178. modoboa/imap_migration/api/v2/serializers.py +13 -0
  179. modoboa/imap_migration/models.py +3 -3
  180. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  181. modoboa/imap_migration/tests.py +28 -0
  182. modoboa/lib/cryptutils.py +2 -2
  183. modoboa/lib/sysutils.py +1 -1
  184. modoboa/lib/tests/__init__.py +0 -1
  185. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  186. modoboa/locale/br/LC_MESSAGES/django.po +753 -317
  187. modoboa/locale/cs/LC_MESSAGES/django.po +671 -309
  188. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +801 -378
  190. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de/LC_MESSAGES/django.po +1116 -455
  192. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/de_DE/LC_MESSAGES/django.po +745 -318
  194. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  195. modoboa/locale/el_GR/LC_MESSAGES/django.po +825 -393
  196. modoboa/locale/en/LC_MESSAGES/django.po +669 -309
  197. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/es/LC_MESSAGES/django.po +810 -390
  199. modoboa/locale/es_MX/LC_MESSAGES/django.po +669 -309
  200. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fi/LC_MESSAGES/django.po +756 -316
  202. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/fr/LC_MESSAGES/django.po +674 -313
  204. modoboa/locale/hu/LC_MESSAGES/django.po +669 -309
  205. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/it/LC_MESSAGES/django.po +807 -380
  207. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  208. modoboa/locale/ja_JP/LC_MESSAGES/django.po +951 -419
  209. modoboa/locale/ka/LC_MESSAGES/django.po +669 -309
  210. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/nl_NL/LC_MESSAGES/django.po +807 -387
  212. modoboa/locale/no/LC_MESSAGES/django.po +669 -309
  213. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pl_PL/LC_MESSAGES/django.po +826 -396
  215. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_BR/LC_MESSAGES/django.po +830 -392
  217. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_PT/LC_MESSAGES/django.po +788 -371
  219. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +763 -316
  221. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  222. modoboa/locale/ru/LC_MESSAGES/django.po +1336 -1046
  223. modoboa/locale/si/LC_MESSAGES/django.po +669 -309
  224. modoboa/locale/sk/LC_MESSAGES/django.po +671 -309
  225. modoboa/locale/sk_SK/LC_MESSAGES/django.po +671 -309
  226. modoboa/locale/sl_SI/LC_MESSAGES/django.po +695 -315
  227. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/sv/LC_MESSAGES/django.po +819 -387
  229. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr/LC_MESSAGES/django.po +737 -315
  231. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  232. modoboa/locale/tr_TR/LC_MESSAGES/django.po +711 -310
  233. modoboa/locale/uk/LC_MESSAGES/django.po +671 -309
  234. modoboa/locale/zh/LC_MESSAGES/django.po +668 -309
  235. modoboa/locale/zh_CN/LC_MESSAGES/django.po +668 -309
  236. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  237. modoboa/locale/zh_TW/LC_MESSAGES/django.po +747 -316
  238. modoboa/maillog/jobs.py +11 -0
  239. modoboa/maillog/tests/test_views.py +5 -4
  240. modoboa/parameters/api/v2/tests.py +1 -1
  241. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  242. modoboa/policyd/tests.py +4 -2
  243. modoboa/rspamd/tests.py +20 -0
  244. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  245. modoboa/webmail/app_settings.py +37 -0
  246. modoboa/webmail/constants.py +21 -1
  247. modoboa/webmail/factories.py +19 -0
  248. modoboa/webmail/jobs.py +27 -0
  249. modoboa/webmail/lib/__init__.py +0 -2
  250. modoboa/webmail/lib/imapemail.py +9 -11
  251. modoboa/webmail/lib/imapheader.py +25 -13
  252. modoboa/webmail/lib/imaputils.py +51 -13
  253. modoboa/webmail/lib/sendmail.py +88 -105
  254. modoboa/webmail/lib/utils.py +109 -0
  255. modoboa/webmail/migrations/0001_initial.py +90 -0
  256. modoboa/webmail/migrations/__init__.py +0 -0
  257. modoboa/webmail/mocks.py +12 -3
  258. modoboa/webmail/models.py +102 -0
  259. modoboa/webmail/serializers.py +84 -4
  260. modoboa/webmail/tests/data.py +21 -0
  261. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  262. modoboa/webmail/tests/test_viewsets.py +108 -0
  263. modoboa/webmail/urls.py +5 -0
  264. modoboa/webmail/viewsets.py +39 -9
  265. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  266. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/RECORD +271 -254
  267. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  268. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  269. modoboa/core/management/commands/cleanlogs.py +0 -53
  270. modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
  271. modoboa/frontend_dist/assets/AccountPasswordSubForm-DpADntAL.js +0 -1
  272. modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +0 -1
  273. modoboa/frontend_dist/assets/AddressBook-CrFqzlzZ.js +0 -1
  274. modoboa/frontend_dist/assets/AdminLayout-BbCt7YxX.js +0 -1
  275. modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +0 -1
  276. modoboa/frontend_dist/assets/AliasRecipientForm-jjj5yJJw.js +0 -1
  277. modoboa/frontend_dist/assets/AuditTrailView-sWnED3E9.js +0 -1
  278. modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
  279. modoboa/frontend_dist/assets/ChoiceField-RDT6XcnX.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  281. modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +0 -1
  282. modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
  283. modoboa/frontend_dist/assets/ConfirmDialog-Du7aqKbR.js +0 -1
  284. modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +0 -1
  285. modoboa/frontend_dist/assets/CreationForm-CjtILq0_.js +0 -1
  286. modoboa/frontend_dist/assets/DashboardView-DFNwusDZ.js +0 -1
  287. modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +0 -1
  288. modoboa/frontend_dist/assets/EmailField-DmPc4pyP.js +0 -1
  289. modoboa/frontend_dist/assets/EmailView-BE3vYZtJ.js +0 -1
  290. modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
  291. modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +0 -1
  292. modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
  293. modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +0 -1
  294. modoboa/frontend_dist/assets/InformationView-eB2ayeLD.js +0 -1
  295. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  296. modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +0 -5
  297. modoboa/frontend_dist/assets/MenuItems-dl38msRA.js +0 -1
  298. modoboa/frontend_dist/assets/MessagesView-BZ7NUOwo.js +0 -1
  299. modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +0 -1
  300. modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
  301. modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
  302. modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
  303. modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
  304. modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
  305. modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
  306. modoboa/frontend_dist/assets/QuarantineView-BOXSobRz.js +0 -1
  307. modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
  308. modoboa/frontend_dist/assets/ResourcesForm-D0YBapCG.js +0 -1
  309. modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
  310. modoboa/frontend_dist/assets/SettingsView-DIvKGRBY.css +0 -1
  311. modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +0 -6
  312. modoboa/frontend_dist/assets/StatisticsView-CyY_CNcI.js +0 -1
  313. modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +0 -1
  314. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  315. modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
  316. modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +0 -1
  317. modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +0 -1
  318. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  319. modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +0 -1
  320. modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +0 -1
  321. modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +0 -1
  322. modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +0 -1
  323. modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +0 -1
  324. modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +0 -1
  325. modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +0 -1
  326. modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +0 -1
  327. modoboa/frontend_dist/assets/VExpansionPanels-BeMgiS7A.js +0 -1
  328. modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +0 -1
  329. modoboa/frontend_dist/assets/VForm-DkphQD3e.js +0 -1
  330. modoboa/frontend_dist/assets/VInput-CbqehdOu.js +0 -1
  331. modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +0 -1
  332. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  333. modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +0 -1
  334. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  335. modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +0 -1
  336. modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +0 -1
  337. modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +0 -1
  338. modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +0 -1
  339. modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
  340. modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +0 -1
  341. modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +0 -1
  342. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  343. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  344. modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +0 -1
  345. modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +0 -1
  346. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  347. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  348. modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +0 -1
  349. modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +0 -1
  350. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  351. modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +0 -1
  352. modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
  353. modoboa/frontend_dist/assets/filter-DHKXX97M.js +0 -1
  354. modoboa/frontend_dist/assets/global.store-DYMmGKpn.js +0 -1
  355. modoboa/frontend_dist/assets/importExport-C-adpHJX.js +0 -1
  356. modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
  357. modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
  358. modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
  359. modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +0 -1
  360. modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +0 -1
  361. {modoboa-2.6.4.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  362. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  363. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  364. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -13,10 +13,11 @@ msgid ""
13
13
  msgstr ""
14
14
  "Project-Id-Version: Modoboa\n"
15
15
  "Report-Msgid-Bugs-To: \n"
16
- "POT-Creation-Date: 2025-08-28 09:41+0200\n"
16
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
17
17
  "PO-Revision-Date: 2024-07-17 11:45+0200\n"
18
18
  "Last-Translator: Mike C. <miguelmclara@gmail.com>\n"
19
- "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/modoboa/language/pt_PT/)\n"
19
+ "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
20
+ "modoboa/language/pt_PT/)\n"
20
21
  "Language: pt_PT\n"
21
22
  "MIME-Version: 1.0\n"
22
23
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -59,16 +60,16 @@ msgid "Cannot be greater than domain quota"
59
60
  msgstr ""
60
61
 
61
62
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
62
- #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
63
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
63
64
  #, fuzzy
64
65
  #| msgid "Permissions"
65
66
  msgid "Permission denied."
66
67
  msgstr "Permissões"
67
68
 
68
69
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
69
- #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
70
- #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
71
- #: transport/backends.py:40
70
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
71
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
72
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
72
73
  msgid "This field is required"
73
74
  msgstr "Este campo é obrigatório"
74
75
 
@@ -77,7 +78,7 @@ msgid ""
77
78
  "List of administered domains (resellers and domain administrators only)."
78
79
  msgstr ""
79
80
 
80
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
81
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
81
82
  msgid "Not allowed for this role."
82
83
  msgstr ""
83
84
 
@@ -85,15 +86,14 @@ msgstr ""
85
86
  msgid "Must be equal to mailbox full_address"
86
87
  msgstr ""
87
88
 
88
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
89
- #: calendars/serializers.py:175 calendars/serializers.py:177
90
- #: pdfcredentials/api/v2/serializers.py:91
89
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
90
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
91
91
  #, fuzzy
92
92
  #| msgid "A mailbox is required"
93
93
  msgid "This field is required."
94
94
  msgstr "É necessária uma caixa de correio"
95
95
 
96
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
96
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
97
97
  #, fuzzy
98
98
  #| msgid "Domain does not exist"
99
99
  msgid "Local domain {} does not exist"
@@ -103,7 +103,7 @@ msgstr "O domínio não existe"
103
103
  msgid "A list of recipient"
104
104
  msgstr ""
105
105
 
106
- #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
106
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:313
107
107
  #, fuzzy
108
108
  #| msgid "User '%s' already exists"
109
109
  msgid "This alias already exists"
@@ -142,53 +142,53 @@ msgstr ""
142
142
  msgid "User '%s' already exists"
143
143
  msgstr "O utilizador '%s' já existe"
144
144
 
145
- #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
145
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
146
146
  msgid "Must be a positive integer"
147
147
  msgstr "Tem de ser um inteiro, positivo"
148
148
 
149
- #: admin/api/v2/serializers.py:265
149
+ #: admin/api/v2/serializers.py:271
150
150
  msgid "openssl not found, please make sure it is installed."
151
151
  msgstr ""
152
152
 
153
- #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
153
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
154
154
  #, fuzzy
155
155
  #| msgid "Domain modified"
156
156
  msgid "Directory not found."
157
157
  msgstr "Domínio alterado"
158
158
 
159
- #: admin/api/v2/serializers.py:279
159
+ #: admin/api/v2/serializers.py:285
160
160
  msgid "This field only allows valid IP addresses (or networks)"
161
161
  msgstr ""
162
162
 
163
- #: admin/api/v2/serializers.py:292
163
+ #: admin/api/v2/serializers.py:298
164
164
  msgid "Please disable imap migration before disabling this option."
165
165
  msgstr ""
166
166
 
167
- #: admin/api/v2/serializers.py:305
167
+ #: admin/api/v2/serializers.py:311
168
168
  msgid "Define at least one authorized network / address"
169
169
  msgstr ""
170
170
 
171
- #: admin/api/v2/serializers.py:581
171
+ #: admin/api/v2/serializers.py:588
172
172
  msgid "The left part of an email address can't be more than 64 characters."
173
173
  msgstr ""
174
174
 
175
- #: admin/api/v2/serializers.py:603
175
+ #: admin/api/v2/serializers.py:610
176
176
  #, fuzzy
177
177
  #| msgid "A mailbox is required"
178
178
  msgid "A mailbox is required to create aliases."
179
179
  msgstr "É necessária uma caixa de correio"
180
180
 
181
- #: admin/api/v2/serializers.py:772
181
+ #: admin/api/v2/serializers.py:783
182
182
  #, fuzzy
183
183
  #| msgid "Unknown domain %s"
184
184
  msgid "Unknown status"
185
185
  msgstr "Domínio desconhecido: %s"
186
186
 
187
- #: admin/api/v2/viewsets.py:84
187
+ #: admin/api/v2/viewsets.py:95
188
188
  msgid "You don't have access to this domain"
189
189
  msgstr "Não tem acesso a este domínio"
190
190
 
191
- #: admin/api/v2/viewsets.py:87
191
+ #: admin/api/v2/viewsets.py:98
192
192
  msgid "You can't delete your own domain"
193
193
  msgstr "Não é possível eliminar o seu próprio domínio"
194
194
 
@@ -210,8 +210,8 @@ msgstr ""
210
210
 
211
211
  #: admin/app_settings.py:37
212
212
  msgid ""
213
- "A list of IP or network address every MX record should match. A warning will"
214
- " be sent if a record does not respect it."
213
+ "A list of IP or network address every MX record should match. A warning will "
214
+ "be sent if a record does not respect it."
215
215
  msgstr ""
216
216
 
217
217
  #: admin/app_settings.py:47
@@ -272,38 +272,48 @@ msgstr ""
272
272
  msgid "Check every domain against major DNSBL providers"
273
273
  msgstr ""
274
274
 
275
- #: admin/app_settings.py:116
275
+ #: admin/app_settings.py:117
276
+ msgid "Notify domain admins about DNS issues"
277
+ msgstr ""
278
+
279
+ #: admin/app_settings.py:120
280
+ msgid ""
281
+ "Send a notification by email to domain administrators when DNS issues are "
282
+ "encountered"
283
+ msgstr ""
284
+
285
+ #: admin/app_settings.py:128
276
286
  msgid "Custom DNS server"
277
287
  msgstr ""
278
288
 
279
- #: admin/app_settings.py:118
289
+ #: admin/app_settings.py:130
280
290
  msgid "Use a custom DNS server instead of local server configuration"
281
291
  msgstr ""
282
292
 
283
- #: admin/app_settings.py:126
293
+ #: admin/app_settings.py:138
284
294
  msgid "DKIM keys storage directory"
285
295
  msgstr ""
286
296
 
287
- #: admin/app_settings.py:128
297
+ #: admin/app_settings.py:140
288
298
  msgid ""
289
299
  "Absolute path of the directory where DKIM private keys will be stored. Make "
290
300
  "sure this directory belongs to root user and is not readable by the outside "
291
301
  "world."
292
302
  msgstr ""
293
303
 
294
- #: admin/app_settings.py:137
304
+ #: admin/app_settings.py:149
295
305
  msgid "Default DKIM key length"
296
306
  msgstr ""
297
307
 
298
- #: admin/app_settings.py:139
308
+ #: admin/app_settings.py:151
299
309
  msgid "Default length in bits for newly generated DKIM keys."
300
310
  msgstr ""
301
311
 
302
- #: admin/app_settings.py:146
312
+ #: admin/app_settings.py:158
303
313
  msgid "Default domain quota"
304
314
  msgstr "Quota pré-definida para o domínio"
305
315
 
306
- #: admin/app_settings.py:148
316
+ #: admin/app_settings.py:160
307
317
  msgid ""
308
318
  "Default quota (in MB) applied to freshly created domains with no value "
309
319
  "specified. A value of 0 means no quota."
@@ -311,28 +321,28 @@ msgstr ""
311
321
  "Quota (em MB) a aplicar a domínios recentemente criados sem valor "
312
322
  "especificado. Um valor de 0 implica sem quota."
313
323
 
314
- #: admin/app_settings.py:156
324
+ #: admin/app_settings.py:168
315
325
  #, fuzzy
316
326
  #| msgid "Default domain quota"
317
327
  msgid "Default domain sending limit"
318
328
  msgstr "Quota pré-definida para o domínio"
319
329
 
320
- #: admin/app_settings.py:158
330
+ #: admin/app_settings.py:170
321
331
  msgid ""
322
332
  "Number of messages freshly created domains will be allowed to send per day. "
323
333
  "Leave empty for no limit."
324
334
  msgstr ""
325
335
 
326
- #: admin/app_settings.py:170 limits/app_settings.py:61
336
+ #: admin/app_settings.py:182 limits/app_settings.py:61
327
337
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
328
338
  msgid "Mailboxes"
329
339
  msgstr ""
330
340
 
331
- #: admin/app_settings.py:176
341
+ #: admin/app_settings.py:188
332
342
  msgid "Handle mailboxes on filesystem"
333
343
  msgstr "Lidar com caixas de correio no sistema de ficheiros"
334
344
 
335
- #: admin/app_settings.py:178
345
+ #: admin/app_settings.py:190
336
346
  msgid ""
337
347
  "Rename or remove mailboxes on the filesystem when they get renamed or "
338
348
  "removed within Modoboa"
@@ -340,13 +350,13 @@ msgstr ""
340
350
  "Renomear ou remover as caixas de correio no sistema de ficheiros quando "
341
351
  "estas são renomeadas no Modoboa"
342
352
 
343
- #: admin/app_settings.py:186 admin/models/domain.py:36
353
+ #: admin/app_settings.py:198 admin/models/domain.py:36
344
354
  #, fuzzy
345
355
  #| msgid "Default domain quota"
346
356
  msgid "Default mailbox quota"
347
357
  msgstr "Quota pré-definida para o domínio"
348
358
 
349
- #: admin/app_settings.py:188
359
+ #: admin/app_settings.py:200
350
360
  #, fuzzy
351
361
  #| msgid ""
352
362
  #| "Default quota (in MB) applied to freshly created domains with no value "
@@ -358,47 +368,76 @@ msgstr ""
358
368
  "Quota (em MB) a aplicar a domínios recentemente criados sem valor "
359
369
  "especificado. Um valor de 0 implica sem quota."
360
370
 
361
- #: admin/app_settings.py:197
371
+ #: admin/app_settings.py:209
362
372
  #, fuzzy
363
373
  #| msgid "Default domain quota"
364
374
  msgid "Default mailbox sending limit"
365
375
  msgstr "Quota pré-definida para o domínio"
366
376
 
367
- #: admin/app_settings.py:199
377
+ #: admin/app_settings.py:211
368
378
  msgid ""
369
379
  "Number of messages freshly created mailboxes will be allowed to send per "
370
380
  "day. Leave empty for no limit."
371
381
  msgstr ""
372
382
 
373
- #: admin/app_settings.py:207
383
+ #: admin/app_settings.py:219
374
384
  msgid "Automatic account removal"
375
385
  msgstr "Remoção automática de conta"
376
386
 
377
- #: admin/app_settings.py:209
387
+ #: admin/app_settings.py:221
378
388
  msgid "When a mailbox is removed, also remove the associated account"
379
389
  msgstr ""
380
390
  "Ao remover uma caixa de correio estará também a remover a conta associada"
381
391
 
382
- #: admin/app_settings.py:218
392
+ #: admin/app_settings.py:230
383
393
  msgid "Automatic domain/mailbox creation"
384
394
  msgstr "Criação automatica de domino/caixa de correio"
385
395
 
386
- #: admin/app_settings.py:221
387
- msgid ""
388
- "Create a domain and a mailbox when an account is automatically created."
396
+ #: admin/app_settings.py:233
397
+ msgid "Create a domain and a mailbox when an account is automatically created."
389
398
  msgstr ""
390
399
  "Criar um dominio e uma caixa de correio quando uma conta é criada "
391
400
  "automátiamente."
392
401
 
393
- #: admin/app_settings.py:230
402
+ #: admin/app_settings.py:242
394
403
  msgid "Create an alias when a mailbox is renamed"
395
404
  msgstr ""
396
405
 
397
- #: admin/app_settings.py:233
406
+ #: admin/app_settings.py:245
398
407
  msgid "Create an alias using the old address when a mailbox is renamed."
399
408
  msgstr ""
400
409
 
401
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
410
+ #: admin/app_settings.py:257
411
+ #, fuzzy
412
+ #| msgid "alias"
413
+ msgid "Aliases"
414
+ msgstr "alias"
415
+
416
+ #: admin/app_settings.py:263
417
+ msgid "Alias can target any domain"
418
+ msgstr ""
419
+
420
+ #: admin/app_settings.py:265
421
+ msgid "Allow aliases to target any domain, not just the local domains."
422
+ msgstr ""
423
+
424
+ #: admin/app_settings.py:272
425
+ msgid "Alias target block list"
426
+ msgstr ""
427
+
428
+ #: admin/app_settings.py:274
429
+ msgid "A list of domains that aliases cannot target (comma separated)."
430
+ msgstr ""
431
+
432
+ #: admin/app_settings.py:282
433
+ msgid "Alias target allow list"
434
+ msgstr ""
435
+
436
+ #: admin/app_settings.py:284
437
+ msgid "A list of domains that aliases can target (comma separated)."
438
+ msgstr ""
439
+
440
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
402
441
  msgid "Administration"
403
442
  msgstr "Administração"
404
443
 
@@ -420,6 +459,37 @@ msgstr ""
420
459
  msgid "Closed"
421
460
  msgstr ""
422
461
 
462
+ #: admin/dns_checker.py:96
463
+ msgid "MX {} listed by DNSBL provider {}"
464
+ msgstr ""
465
+
466
+ #: admin/dns_checker.py:138
467
+ #, fuzzy
468
+ #| msgid "Domain modified"
469
+ msgid "Domain has no MX record"
470
+ msgstr "Domínio alterado"
471
+
472
+ #: admin/dns_checker.py:141
473
+ msgid "Domain {} has no MX record"
474
+ msgstr ""
475
+
476
+ #: admin/dns_checker.py:159
477
+ msgid "Invalid MX record: {}"
478
+ msgstr ""
479
+
480
+ #: admin/dns_checker.py:166
481
+ #, python-brace-format
482
+ msgid "MX record for domain {0} is invalid: {1}"
483
+ msgstr ""
484
+
485
+ #: admin/dns_checker.py:177
486
+ msgid "[modoboa] MX issue(s) for domain {}"
487
+ msgstr ""
488
+
489
+ #: admin/dns_checker.py:224
490
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
491
+ msgstr ""
492
+
423
493
  #: admin/handlers.py:179
424
494
  msgid "domain alias"
425
495
  msgstr "'Alias' de domínio"
@@ -429,63 +499,57 @@ msgstr "'Alias' de domínio"
429
499
  msgid "Account import failed (%s): domain does not exist"
430
500
  msgstr "Importação da conta falhou (%s): domínio não existe"
431
501
 
432
- #: admin/handlers.py:242 admin/models/mailbox.py:342
433
- #, fuzzy
434
- #| msgid "Mailbox %s already exists"
435
- msgid "Mailbox {} already exists"
436
- msgstr "Caixa de correio %s já existe"
437
-
438
- #: admin/handlers.py:251
502
+ #: admin/handlers.py:246
439
503
  #, python-format
440
504
  msgid "Account import failed (%s): wrong quota value"
441
505
  msgstr "Importação da conta falhou (%s): valor para quota inválido"
442
506
 
443
- #: admin/lib.py:121
507
+ #: admin/lib.py:126
444
508
  #, fuzzy
445
509
  #| msgid "You can't delete your own domain"
446
510
  msgid "You are not allowed to import domains"
447
511
  msgstr "Não é possível eliminar o seu próprio domínio"
448
512
 
449
- #: admin/lib.py:130
513
+ #: admin/lib.py:135
450
514
  msgid "You are not allowed to import domain aliases."
451
515
  msgstr ""
452
516
 
453
- #: admin/lib.py:222 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
454
- #: admin/tests/test_mx.py:171
517
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
518
+ #: admin/tests/test_mx.py:157
455
519
  #, python-format
456
520
  msgid "No DNS record found for %s"
457
521
  msgstr ""
458
522
 
459
- #: admin/lib.py:225
523
+ #: admin/lib.py:230
460
524
  #, python-format
461
525
  msgid "No %(type)s record for %(name)s"
462
526
  msgstr ""
463
527
 
464
- #: admin/lib.py:229 admin/tests/test_mx.py:156
528
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
465
529
  msgid "No working name servers found"
466
530
  msgstr ""
467
531
 
468
- #: admin/lib.py:232 admin/tests/test_mx.py:160
532
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
469
533
  #, python-format
470
534
  msgid "DNS resolution timeout, unable to query %s at the moment"
471
535
  msgstr ""
472
536
 
473
- #: admin/lib.py:236
537
+ #: admin/lib.py:241
474
538
  msgid "DNS name is too long: {}"
475
539
  msgstr ""
476
540
 
477
- #: admin/lib.py:267
541
+ #: admin/lib.py:272
478
542
  #, fuzzy, python-brace-format
479
543
  #| msgid "Invalid quota value for domain '%s'"
480
544
  msgid "Invalid IP address format for {domain}; {addr}"
481
545
  msgstr "Valor de quota inválido para o dominio '%s'"
482
546
 
483
- #: admin/lib.py:360
547
+ #: admin/lib.py:365
484
548
  #, python-format
485
549
  msgid "Object already exists: %s"
486
550
  msgstr "Este objeto já existe: %s"
487
551
 
488
- #: admin/lib.py:364
552
+ #: admin/lib.py:369
489
553
  #, python-format
490
554
  msgid "%d objects imported successfully"
491
555
  msgstr "%d objetos importados com sucesso"
@@ -518,87 +582,62 @@ msgstr ""
518
582
  msgid "Failed to generate DKIM public key"
519
583
  msgstr ""
520
584
 
521
- #: admin/management/commands/subcommands/_mx.py:133
522
- msgid "MX {} listed by DNSBL provider {}"
523
- msgstr ""
524
-
525
- #: admin/management/commands/subcommands/_mx.py:174
526
- #, fuzzy
527
- #| msgid "Domain modified"
528
- msgid "Domain has no MX record"
529
- msgstr "Domínio alterado"
530
-
531
- #: admin/management/commands/subcommands/_mx.py:177
532
- msgid "Domain {} has no MX record"
533
- msgstr ""
534
-
535
- #: admin/management/commands/subcommands/_mx.py:195
536
- msgid "Invalid MX record: {}"
537
- msgstr ""
538
-
539
- #: admin/management/commands/subcommands/_mx.py:202
540
- #, python-brace-format
541
- msgid "MX record for domain {0} is invalid: {1}"
542
- msgstr ""
543
-
544
- #: admin/management/commands/subcommands/_mx.py:213
545
- msgid "[modoboa] MX issue(s) for domain {}"
546
- msgstr ""
547
-
548
- #: admin/management/commands/subcommands/_mx.py:269
549
- msgid "[modoboa] DNSBL issue(s) for domain {}"
550
- msgstr ""
551
-
552
- #: admin/models/alias.py:42
585
+ #: admin/models/alias.py:43
553
586
  #, fuzzy
554
587
  #| msgid "Domain modified"
555
588
  msgid "Domain not found."
556
589
  msgstr "Domínio alterado"
557
590
 
558
- #: admin/models/alias.py:97 admin/models/mailbox.py:85
591
+ #: admin/models/alias.py:117 admin/models/mailbox.py:85
559
592
  msgid "address"
560
593
  msgstr "endereços"
561
594
 
562
- #: admin/models/alias.py:99
595
+ #: admin/models/alias.py:119
563
596
  #, fuzzy
564
597
  #| msgid "The alias name"
565
598
  msgid "The alias address."
566
599
  msgstr "O nome do 'alias'"
567
600
 
568
- #: admin/models/alias.py:103 admin/models/domain.py:45
601
+ #: admin/models/alias.py:123 admin/models/domain.py:45
569
602
  #: admin/models/domain_alias.py:45 autoreply/models.py:25
570
603
  msgid "enabled"
571
604
  msgstr "ativo"
572
605
 
573
- #: admin/models/alias.py:104 admin/models/domain_alias.py:46
606
+ #: admin/models/alias.py:124 admin/models/domain_alias.py:46
574
607
  msgid "Check to activate this alias"
575
608
  msgstr "Marcar para ativar este alias"
576
609
 
577
- #: admin/models/alias.py:108
610
+ #: admin/models/alias.py:128
578
611
  msgid "Description"
579
612
  msgstr "Descrição"
580
613
 
581
- #: admin/models/alias.py:109
614
+ #: admin/models/alias.py:129
582
615
  msgid "Expire at"
583
616
  msgstr ""
584
617
 
585
- #: admin/models/alias.py:150
618
+ #: admin/models/alias.py:170
586
619
  msgid "alias"
587
620
  msgstr "alias"
588
621
 
589
- #: admin/models/alias.py:183
622
+ #: admin/models/alias.py:203
590
623
  #, fuzzy
591
624
  #| msgid "Invalid request"
592
625
  msgid "Invalid address"
593
626
  msgstr "Pedido inválido"
594
627
 
595
- #: admin/models/alias.py:202
628
+ #: admin/models/alias.py:206
629
+ #, fuzzy
630
+ #| msgid "The domain name"
631
+ msgid "Target domain not allowed"
632
+ msgstr "O nome do domínio"
633
+
634
+ #: admin/models/alias.py:224
596
635
  #, fuzzy
597
636
  #| msgid "Local recipient %s not found"
598
637
  msgid "Local recipient {}@{} not found"
599
638
  msgstr "O destinatário local %s não foi encontrado"
600
639
 
601
- #: admin/models/alias.py:251
640
+ #: admin/models/alias.py:273
602
641
  #, fuzzy
603
642
  #| msgid "Invalid line: %s"
604
643
  msgid "Invalid line: {}"
@@ -718,6 +757,12 @@ msgstr "Domínio criado"
718
757
  msgid "Domain does not exist"
719
758
  msgstr "O domínio não existe"
720
759
 
760
+ #: admin/models/mailbox.py:342
761
+ #, fuzzy
762
+ #| msgid "Mailbox %s already exists"
763
+ msgid "Mailbox {} already exists"
764
+ msgstr "Caixa de correio %s já existe"
765
+
721
766
  #: admin/templates/admin/notifications/domain_in_dnsbl.html:3
722
767
  #, python-format
723
768
  msgid ""
@@ -737,22 +782,388 @@ msgstr ""
737
782
  msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
738
783
  msgstr ""
739
784
 
740
- #: admin/tests/test_mx.py:155
785
+ #: admin/tests/test_mx.py:141
741
786
  #, python-format
742
787
  msgid "No MX record for %s"
743
788
  msgstr ""
744
789
 
745
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
790
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
746
791
  #, python-format
747
792
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
748
793
  msgstr ""
749
794
 
750
- #: admin/tests/test_mx.py:199
795
+ #: admin/tests/test_mx.py:185
751
796
  #, fuzzy, python-format
752
797
  #| msgid "Domain modified"
753
798
  msgid "No AAAA record for %s"
754
799
  msgstr "Domínio alterado"
755
800
 
801
+ #: amavis/app_settings.py:11
802
+ #, fuzzy
803
+ #| msgid "LDAP settings"
804
+ msgid "Amavis settings"
805
+ msgstr "Definições IMAP"
806
+
807
+ #: amavis/app_settings.py:17
808
+ msgid "Localpart is case sensitive"
809
+ msgstr ""
810
+
811
+ #: amavis/app_settings.py:19
812
+ msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive"
813
+ msgstr ""
814
+
815
+ #: amavis/app_settings.py:27
816
+ #, fuzzy
817
+ #| msgid "Recipient"
818
+ msgid "Recipient delimiter"
819
+ msgstr "Destinatário"
820
+
821
+ #: amavis/app_settings.py:29
822
+ msgid "Value should match amavisd.conf variable $recipient_delimiter"
823
+ msgstr ""
824
+
825
+ #: amavis/app_settings.py:41
826
+ #, fuzzy
827
+ #| msgid "Quantity"
828
+ msgid "Quarantine settings"
829
+ msgstr "Quarentena"
830
+
831
+ #: amavis/app_settings.py:47
832
+ #, fuzzy
833
+ #| msgid "Maximum log record age"
834
+ msgid "Maximum message age"
835
+ msgstr "Idade máxima do registo no log"
836
+
837
+ #: amavis/app_settings.py:49
838
+ msgid "Quarantine messages maximum age (in days) before deletion"
839
+ msgstr ""
840
+
841
+ #: amavis/app_settings.py:60
842
+ msgid "Message releasing"
843
+ msgstr ""
844
+
845
+ #: amavis/app_settings.py:66
846
+ #, fuzzy
847
+ #| msgid "rejected messages"
848
+ msgid "Remove released messages"
849
+ msgstr "mensagens rejeitadas"
850
+
851
+ #: amavis/app_settings.py:68
852
+ msgid "Remove messages marked as released while cleaning up the database"
853
+ msgstr ""
854
+
855
+ #: amavis/app_settings.py:76
856
+ #, fuzzy
857
+ #| msgid "Secured connection mode"
858
+ msgid "Amavis connection mode"
859
+ msgstr "Modo de ligação segura"
860
+
861
+ #: amavis/app_settings.py:78
862
+ #, fuzzy
863
+ #| msgid "Use an SSL/TLS connection to access the LDAP server"
864
+ msgid "Mode used to access the PDP server"
865
+ msgstr "Usar SSL/TLS na ligaçao de acesso ao servidor LDAP"
866
+
867
+ #: amavis/app_settings.py:85
868
+ #, fuzzy
869
+ #| msgid "Server address"
870
+ msgid "PDP server address"
871
+ msgstr "Endereço do Servidor"
872
+
873
+ #: amavis/app_settings.py:87
874
+ msgid "PDP server address (if inet mode)"
875
+ msgstr ""
876
+
877
+ #: amavis/app_settings.py:95
878
+ #, fuzzy
879
+ #| msgid "Server port"
880
+ msgid "PDP server port"
881
+ msgstr "Porta do Servidor"
882
+
883
+ #: amavis/app_settings.py:97
884
+ msgid "PDP server port (if inet mode)"
885
+ msgstr ""
886
+
887
+ #: amavis/app_settings.py:105
888
+ msgid "PDP server socket"
889
+ msgstr ""
890
+
891
+ #: amavis/app_settings.py:107
892
+ msgid "Path to the PDP server socket (if unix mode)"
893
+ msgstr ""
894
+
895
+ #: amavis/app_settings.py:115
896
+ msgid "Allow direct release"
897
+ msgstr ""
898
+
899
+ #: amavis/app_settings.py:117
900
+ msgid "Allow users to directly release their messages"
901
+ msgstr ""
902
+
903
+ #: amavis/app_settings.py:124
904
+ msgid "Enable self-service mode"
905
+ msgstr ""
906
+
907
+ #: amavis/app_settings.py:126
908
+ msgid "Activate the 'self-service' mode"
909
+ msgstr ""
910
+
911
+ #: amavis/app_settings.py:133
912
+ #, fuzzy
913
+ #| msgid "Authentication"
914
+ msgid "Notifications sender"
915
+ msgstr "Autenticação"
916
+
917
+ #: amavis/app_settings.py:135
918
+ #, fuzzy
919
+ #| msgid "The backend used for authentication"
920
+ msgid "The e-mail address used to send notitications"
921
+ msgstr "Backend usado para autenticação"
922
+
923
+ #: amavis/app_settings.py:146
924
+ msgid "Manual learning"
925
+ msgstr ""
926
+
927
+ #: amavis/app_settings.py:152
928
+ msgid "Enable manual learning"
929
+ msgstr ""
930
+
931
+ #: amavis/app_settings.py:154
932
+ msgid "Allow super administrators to manually train Spamassassin"
933
+ msgstr ""
934
+
935
+ #: amavis/app_settings.py:161
936
+ msgid "Is Spamassassin local?"
937
+ msgstr ""
938
+
939
+ #: amavis/app_settings.py:163
940
+ msgid "Tell if Spamassassin is running on the same server than modoboa"
941
+ msgstr ""
942
+
943
+ #: amavis/app_settings.py:171
944
+ #, fuzzy
945
+ #| msgid "Default top redirection"
946
+ msgid "Default user"
947
+ msgstr "Editor predefinido"
948
+
949
+ #: amavis/app_settings.py:173
950
+ msgid "Name of the user owning the default bayesian database"
951
+ msgstr ""
952
+
953
+ #: amavis/app_settings.py:181
954
+ #, fuzzy
955
+ #| msgid "Server address"
956
+ msgid "Spamd address"
957
+ msgstr "Endereço do Servidor"
958
+
959
+ #: amavis/app_settings.py:183
960
+ msgid "The IP address where spamd can be reached"
961
+ msgstr ""
962
+
963
+ #: amavis/app_settings.py:191
964
+ msgid "Spamd port"
965
+ msgstr ""
966
+
967
+ #: amavis/app_settings.py:193
968
+ msgid "The TCP port spamd is listening on"
969
+ msgstr ""
970
+
971
+ #: amavis/app_settings.py:202
972
+ msgid "Enable per-domain manual learning"
973
+ msgstr ""
974
+
975
+ #: amavis/app_settings.py:205
976
+ #, fuzzy
977
+ #| msgid "Maximum number of domain administrators this user can create"
978
+ msgid ""
979
+ "Allow domain administrators to train Spamassassin (within dedicated per-"
980
+ "domain databases)"
981
+ msgstr ""
982
+ "Número máximo de administradores de domínio que este utilizador pode criar"
983
+
984
+ #: amavis/app_settings.py:215
985
+ msgid "Enable per-user manual learning"
986
+ msgstr ""
987
+
988
+ #: amavis/app_settings.py:218
989
+ msgid ""
990
+ "Allow simple users to personally train Spamassassin (within a dedicated "
991
+ "database)"
992
+ msgstr ""
993
+
994
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
995
+ #, fuzzy
996
+ #| msgid "Display"
997
+ msgid "Display"
998
+ msgstr "Exibir"
999
+
1000
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
1001
+ #, fuzzy
1002
+ #| msgid "Number of displayed items per page"
1003
+ msgid "Number of displayed emails per page"
1004
+ msgstr "Número de e-mails a visíveis por página"
1005
+
1006
+ #: amavis/app_settings.py:246
1007
+ #, fuzzy
1008
+ #| msgid "Sets the maximum number of messages displayed in a page"
1009
+ msgid "Set the maximum number of messages displayed in a page"
1010
+ msgstr "Define o número máximo de mensagens a mostrar por página"
1011
+
1012
+ #: amavis/app_settings.py:266 amavis/app_settings.py:273
1013
+ msgid "Amavis"
1014
+ msgstr ""
1015
+
1016
+ #: amavis/checks/settings_checks.py:8
1017
+ msgid ""
1018
+ "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used "
1019
+ "by the Amavis database."
1020
+ msgstr ""
1021
+
1022
+ #: amavis/checks/settings_checks.py:12
1023
+ msgid ""
1024
+ "Check your database character encoding and set/update "
1025
+ "AMAVIS_DEFAULT_DATABASE_ENCODING."
1026
+ msgstr ""
1027
+
1028
+ #: amavis/checks/settings_checks.py:19
1029
+ msgid "Modoboa Amavis has not been tested using the selected database engine."
1030
+ msgstr ""
1031
+
1032
+ #: amavis/checks/settings_checks.py:20
1033
+ msgid "Try using PostgreSQL, MySQL or MariaDB."
1034
+ msgstr ""
1035
+
1036
+ #: amavis/handlers.py:141
1037
+ msgid "Pending requests"
1038
+ msgstr ""
1039
+
1040
+ #: amavis/lib.py:59
1041
+ #, fuzzy, python-format
1042
+ msgid "Connection to amavis failed: %s"
1043
+ msgstr "Ligação ao servidor IMAP falhou : %s"
1044
+
1045
+ #: amavis/lib.py:133
1046
+ msgid "Failed to find {} binary"
1047
+ msgstr ""
1048
+
1049
+ #: amavis/lib.py:148
1050
+ #, fuzzy
1051
+ #| msgid "Local recipient %s not found"
1052
+ msgid "No recipient found"
1053
+ msgstr "O destinatário local %s não foi encontrado"
1054
+
1055
+ #: amavis/lib.py:159
1056
+ #, fuzzy
1057
+ #| msgid "Domain modified"
1058
+ msgid "Local domain not found"
1059
+ msgstr "Domínio alterado"
1060
+
1061
+ #: amavis/management/commands/amnotify.py:59
1062
+ #, fuzzy
1063
+ #| msgid "%s: limit reached"
1064
+ msgid "[modoboa] Pending release requests"
1065
+ msgstr "%s: limite atingido"
1066
+
1067
+ #: amavis/models.py:101
1068
+ #, fuzzy
1069
+ #| msgid "Search filter"
1070
+ msgid "Virus filter"
1071
+ msgstr "Filtro de pesquisa"
1072
+
1073
+ #: amavis/models.py:105 amavis/models.py:119 amavis/models.py:133
1074
+ msgid "yes"
1075
+ msgstr ""
1076
+
1077
+ #: amavis/models.py:106 amavis/models.py:120 amavis/models.py:134
1078
+ msgid "no"
1079
+ msgstr ""
1080
+
1081
+ #: amavis/models.py:107 amavis/models.py:121 amavis/models.py:135
1082
+ msgid "default"
1083
+ msgstr ""
1084
+
1085
+ #: amavis/models.py:111
1086
+ msgid "Bypass virus checks or not. Choose 'default' to use global settings."
1087
+ msgstr ""
1088
+
1089
+ #: amavis/models.py:115
1090
+ #, fuzzy
1091
+ #| msgid "Search filter"
1092
+ msgid "Spam filter"
1093
+ msgstr "Filtro de pesquisa"
1094
+
1095
+ #: amavis/models.py:125
1096
+ msgid "Bypass spam checks or not. Choose 'default' to use global settings."
1097
+ msgstr ""
1098
+
1099
+ #: amavis/models.py:129
1100
+ #, fuzzy
1101
+ #| msgid "Search filter"
1102
+ msgid "Banned filter"
1103
+ msgstr "Filtro de pesquisa"
1104
+
1105
+ #: amavis/models.py:139
1106
+ msgid "Bypass banned checks or not. Choose 'default' to use global settings."
1107
+ msgstr ""
1108
+
1109
+ #: amavis/models.py:170
1110
+ msgid "Spam marker"
1111
+ msgstr ""
1112
+
1113
+ #: amavis/models.py:176
1114
+ msgid ""
1115
+ "Modify spam subject using the specified text. Choose 'default' to use global "
1116
+ "settings."
1117
+ msgstr ""
1118
+
1119
+ #: amavis/templates/amavis/notifications/pending_requests.html:3
1120
+ #, python-format
1121
+ msgid "%(counter)s release request is pending for action."
1122
+ msgid_plural "%(counter)s release requests are pending for action."
1123
+ msgstr[0] ""
1124
+ msgstr[1] ""
1125
+
1126
+ #: amavis/templates/amavis/notifications/pending_requests.html:8
1127
+ msgid "Sketch:"
1128
+ msgstr ""
1129
+
1130
+ #: amavis/templates/amavis/notifications/pending_requests.html:10
1131
+ msgid "From:"
1132
+ msgstr ""
1133
+
1134
+ #: amavis/templates/amavis/notifications/pending_requests.html:11
1135
+ msgid "To:"
1136
+ msgstr ""
1137
+
1138
+ #: amavis/templates/amavis/notifications/pending_requests.html:12
1139
+ #, fuzzy
1140
+ #| msgid "Date"
1141
+ msgid "Date:"
1142
+ msgstr "Data"
1143
+
1144
+ #: amavis/templates/amavis/notifications/pending_requests.html:13
1145
+ #, fuzzy
1146
+ #| msgid "Subject"
1147
+ msgid "Subject:"
1148
+ msgstr "Assunto"
1149
+
1150
+ #: amavis/templates/amavis/notifications/pending_requests.html:14
1151
+ #, fuzzy
1152
+ #| msgid "sent messages"
1153
+ msgid "Act on this message:"
1154
+ msgstr "mensagens enviadas"
1155
+
1156
+ #: amavis/templates/amavis/notifications/pending_requests.html:16
1157
+ #, python-format
1158
+ msgid "Please visit %(listingurl)s for a full listing."
1159
+ msgstr ""
1160
+
1161
+ #: amavis/viewsets.py:122
1162
+ #, fuzzy
1163
+ #| msgid "Invalid request"
1164
+ msgid "Invalid request"
1165
+ msgstr "Pedido inválido"
1166
+
756
1167
  #: autoreply/api/v2/serializers.py:27
757
1168
  msgid "Value can't be less than 1 day"
758
1169
  msgstr ""
@@ -775,8 +1186,7 @@ msgstr "Geral"
775
1186
 
776
1187
  #: autoreply/app_settings.py:18
777
1188
  #, fuzzy
778
- #| msgid ""
779
- #| "Timeout in seconds between two auto-replies to the same recipient"
1189
+ #| msgid "Timeout in seconds between two auto-replies to the same recipient"
780
1190
  msgid "Period between two auto-replies"
781
1191
  msgstr ""
782
1192
  "Tempo limite em segundos entre duas respostas automáticas para o mesmo "
@@ -784,8 +1194,7 @@ msgstr ""
784
1194
 
785
1195
  #: autoreply/app_settings.py:20
786
1196
  #, fuzzy
787
- #| msgid ""
788
- #| "Timeout in seconds between two auto-replies to the same recipient"
1197
+ #| msgid "Timeout in seconds between two auto-replies to the same recipient"
789
1198
  msgid ""
790
1199
  "Number of days to wait before sending a new auto-reply to the same recipient"
791
1200
  msgstr ""
@@ -878,7 +1287,7 @@ msgid "Allow domain administrators to manage user calendars (read and write)"
878
1287
  msgstr ""
879
1288
  "Número máximo de administradores de domínio que este utilizador pode criar"
880
1289
 
881
- #: calendars/app_settings.py:60 core/app_settings.py:676
1290
+ #: calendars/app_settings.py:60 core/app_settings.py:664
882
1291
  #: rspamd/app_settings.py:45
883
1292
  msgid "Miscellaneous"
884
1293
  msgstr "Vários"
@@ -892,15 +1301,15 @@ msgid ""
892
1301
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
893
1302
  msgstr ""
894
1303
 
895
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
1304
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205
896
1305
  msgid "Calendars"
897
1306
  msgstr ""
898
1307
 
899
- #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
1308
+ #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
900
1309
  msgid "Server location is not set, please fix it."
901
1310
  msgstr ""
902
1311
 
903
- #: calendars/viewsets.py:197
1312
+ #: calendars/viewsets.py:199
904
1313
  msgid "Uploaded file is too big (max: {} bytes)"
905
1314
  msgstr ""
906
1315
 
@@ -930,7 +1339,7 @@ msgstr "Definições do serviço de directório"
930
1339
  msgid "Interval in seconds between 2 synchronization requests"
931
1340
  msgstr ""
932
1341
 
933
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
1342
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:195
934
1343
  #, fuzzy
935
1344
  #| msgid "Domains"
936
1345
  msgid "Contacts"
@@ -984,12 +1393,12 @@ msgstr "Linha inválida"
984
1393
  msgid "2FA is already enabled"
985
1394
  msgstr ""
986
1395
 
987
- #: core/api/v1/serializers.py:86
1396
+ #: core/api/v1/serializers.py:87
988
1397
  #, python-format
989
1398
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
990
1399
  msgstr ""
991
1400
 
992
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
1401
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
993
1402
  #, fuzzy
994
1403
  #| msgid "Old password"
995
1404
  msgid "Invalid password"
@@ -1003,27 +1412,20 @@ msgstr ""
1003
1412
  msgid "Local"
1004
1413
  msgstr "Local"
1005
1414
 
1006
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
1007
- #, fuzzy
1008
- #| msgid "Profile"
1009
- msgid "User profile"
1010
- msgstr "Perfil"
1011
-
1012
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1013
- #: core/api/v2/serializers.py:228
1415
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1416
+ #: core/api/v2/serializers.py:221
1014
1417
  msgid "Invalid syntax"
1015
1418
  msgstr "Sintax inválida"
1016
1419
 
1017
- #: core/api/v2/serializers.py:233
1420
+ #: core/api/v2/serializers.py:226
1018
1421
  msgid "Invalid rounds number"
1019
1422
  msgstr "Número de linhas inválido"
1020
1423
 
1021
- #: core/api/v2/serializers.py:433 core/forms.py:81
1424
+ #: core/api/v2/serializers.py:426 core/forms.py:81
1022
1425
  msgid "This code is invalid"
1023
1426
  msgstr ""
1024
1427
 
1025
- #: core/api/v2/serializers.py:503 core/views/auth.py:194
1026
- #: core/views/auth.py:247
1428
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1027
1429
  msgid "Please use the following code to recover your Modoboa password: {}"
1028
1430
  msgstr ""
1029
1431
 
@@ -1033,261 +1435,273 @@ msgstr ""
1033
1435
  msgid "Administration console"
1034
1436
  msgstr "Administração"
1035
1437
 
1036
- #: core/api/v2/viewsets.py:187
1438
+ #: core/api/v2/viewsets.py:184 dmarc/models.py:11
1439
+ #, fuzzy
1440
+ #| msgid "Quantity"
1441
+ msgid "Quarantine"
1442
+ msgstr "Quarentena"
1443
+
1444
+ #: core/api/v2/viewsets.py:186
1445
+ #, fuzzy
1446
+ #| msgid "Quantity"
1447
+ msgid "Amavis quarantine"
1448
+ msgstr "Quarentena"
1449
+
1450
+ #: core/api/v2/viewsets.py:197
1037
1451
  #, fuzzy
1038
1452
  #| msgid "Address"
1039
1453
  msgid "Address book"
1040
1454
  msgstr "Endereço"
1041
1455
 
1042
- #: core/api/v2/viewsets.py:197
1456
+ #: core/api/v2/viewsets.py:207
1043
1457
  msgid "Calendar"
1044
1458
  msgstr ""
1045
1459
 
1046
- #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1047
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1460
+ #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1461
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1048
1462
  #, fuzzy
1049
1463
  #| msgid "E-mail"
1050
1464
  msgid "Webmail"
1051
1465
  msgstr "Webmail"
1052
1466
 
1053
- #: core/app_settings.py:37
1467
+ #: core/app_settings.py:25
1054
1468
  msgid "Authentication"
1055
1469
  msgstr "Autenticação"
1056
1470
 
1057
- #: core/app_settings.py:43
1471
+ #: core/app_settings.py:31
1058
1472
  msgid "Authentication type"
1059
1473
  msgstr "Tipo de autenticação"
1060
1474
 
1061
- #: core/app_settings.py:45
1475
+ #: core/app_settings.py:33
1062
1476
  msgid "The backend used for authentication"
1063
1477
  msgstr "Backend usado para autenticação"
1064
1478
 
1065
- #: core/app_settings.py:52
1479
+ #: core/app_settings.py:40
1066
1480
  msgid "Default password scheme"
1067
1481
  msgstr "Esquema pré-definido para passwords"
1068
1482
 
1069
- #: core/app_settings.py:54
1483
+ #: core/app_settings.py:42
1070
1484
  msgid "Scheme used to crypt mailbox passwords"
1071
1485
  msgstr "Esquema usado para encriptar as passwords das caixas de correio"
1072
1486
 
1073
- #: core/app_settings.py:61
1487
+ #: core/app_settings.py:49
1074
1488
  msgid "Rounds"
1075
1489
  msgstr ""
1076
1490
 
1077
- #: core/app_settings.py:63
1491
+ #: core/app_settings.py:51
1078
1492
  msgid ""
1079
1493
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1080
1494
  "between 1000 and 999999999, inclusive."
1081
1495
  msgstr ""
1082
1496
 
1083
- #: core/app_settings.py:73
1497
+ #: core/app_settings.py:61
1084
1498
  #, fuzzy
1085
1499
  #| msgid "Default password scheme"
1086
1500
  msgid "Update password scheme at login"
1087
1501
  msgstr "Esquema pré-definido para passwords"
1088
1502
 
1089
- #: core/app_settings.py:76
1503
+ #: core/app_settings.py:64
1090
1504
  msgid "Update user password at login to use the default password scheme"
1091
1505
  msgstr ""
1092
1506
 
1093
- #: core/app_settings.py:84
1507
+ #: core/app_settings.py:72
1094
1508
  #, fuzzy
1095
1509
  #| msgid "Default password scheme"
1096
1510
  msgid "Default password"
1097
1511
  msgstr "Esquema pré-definido para passwords"
1098
1512
 
1099
- #: core/app_settings.py:86
1513
+ #: core/app_settings.py:74
1100
1514
  msgid "Default password for automatically created accounts."
1101
1515
  msgstr ""
1102
1516
 
1103
- #: core/app_settings.py:93
1517
+ #: core/app_settings.py:81
1104
1518
  #, fuzzy
1105
1519
  #| msgid "Bind password"
1106
1520
  msgid "Random password length"
1107
1521
  msgstr "Password para bind"
1108
1522
 
1109
- #: core/app_settings.py:95
1523
+ #: core/app_settings.py:83
1110
1524
  msgid "Length of randomly generated passwords."
1111
1525
  msgstr ""
1112
1526
 
1113
- #: core/app_settings.py:103
1527
+ #: core/app_settings.py:91
1114
1528
  msgid "Allow special characters for random password"
1115
1529
  msgstr ""
1116
1530
 
1117
- #: core/app_settings.py:106
1531
+ #: core/app_settings.py:94
1118
1532
  msgid "Enable special characters in randomly generated passwords."
1119
1533
  msgstr ""
1120
1534
 
1121
- #: core/app_settings.py:114
1535
+ #: core/app_settings.py:102
1122
1536
  #, fuzzy
1123
1537
  #| msgid "Default password scheme"
1124
1538
  msgid "Update password service URL"
1125
1539
  msgstr "Esquema pré-definido para passwords"
1126
1540
 
1127
- #: core/app_settings.py:116
1541
+ #: core/app_settings.py:104
1128
1542
  msgid ""
1129
1543
  "The URL of an external page where users will be able to update their "
1130
1544
  "password. It applies only to non local users, ie. those automatically "
1131
1545
  "created after a successful external authentication (LDAP, SMTP)."
1132
1546
  msgstr ""
1133
1547
 
1134
- #: core/app_settings.py:126
1548
+ #: core/app_settings.py:114
1135
1549
  msgid "Password recovery announcement"
1136
1550
  msgstr ""
1137
1551
 
1138
- #: core/app_settings.py:128
1552
+ #: core/app_settings.py:116
1139
1553
  msgid "A temporary message that will be displayed on the reset password page."
1140
1554
  msgstr ""
1141
1555
 
1142
- #: core/app_settings.py:137
1556
+ #: core/app_settings.py:125
1143
1557
  msgid "Enable password recovery by SMS"
1144
1558
  msgstr ""
1145
1559
 
1146
- #: core/app_settings.py:140
1560
+ #: core/app_settings.py:128
1147
1561
  msgid "Enable password recovery by SMS for users who filled a phone number."
1148
1562
  msgstr ""
1149
1563
 
1150
- #: core/app_settings.py:148
1564
+ #: core/app_settings.py:136
1151
1565
  msgid "SMS provider"
1152
1566
  msgstr ""
1153
1567
 
1154
- #: core/app_settings.py:151
1568
+ #: core/app_settings.py:139
1155
1569
  msgid "Choose a provider to send password recovery SMS"
1156
1570
  msgstr ""
1157
1571
 
1158
- #: core/app_settings.py:163
1572
+ #: core/app_settings.py:151
1159
1573
  msgid "LDAP"
1160
1574
  msgstr ""
1161
1575
 
1162
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1576
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1163
1577
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1164
- #: webmail/app_settings.py:73
1578
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1165
1579
  msgid "Server address"
1166
1580
  msgstr "Endereço do Servidor"
1167
1581
 
1168
- #: core/app_settings.py:171
1582
+ #: core/app_settings.py:159
1169
1583
  msgid "The IP address or the DNS name of the LDAP server"
1170
1584
  msgstr "O endereço IP do servidor de DNS do servidor LDAP"
1171
1585
 
1172
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1586
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1173
1587
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1174
- #: webmail/app_settings.py:91
1588
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1175
1589
  msgid "Server port"
1176
1590
  msgstr "Porta do Servidor"
1177
1591
 
1178
- #: core/app_settings.py:180
1592
+ #: core/app_settings.py:168
1179
1593
  msgid "The TCP port number used by the LDAP server"
1180
1594
  msgstr " A porta TCP usada pelo servidor LDAP"
1181
1595
 
1182
- #: core/app_settings.py:188
1596
+ #: core/app_settings.py:176
1183
1597
  msgid "Enable secondary server (fallback)"
1184
1598
  msgstr ""
1185
1599
 
1186
- #: core/app_settings.py:191
1600
+ #: core/app_settings.py:179
1187
1601
  msgid ""
1188
1602
  "Enable a secondary LDAP server which will be used if the primary one fails"
1189
1603
  msgstr ""
1190
1604
 
1191
- #: core/app_settings.py:199
1605
+ #: core/app_settings.py:187
1192
1606
  #, fuzzy
1193
1607
  #| msgid "Server address"
1194
1608
  msgid "Secondary server address"
1195
1609
  msgstr "Endereço do Servidor"
1196
1610
 
1197
- #: core/app_settings.py:202
1611
+ #: core/app_settings.py:190
1198
1612
  #, fuzzy
1199
1613
  #| msgid "The IP address or the DNS name of the LDAP server"
1200
1614
  msgid "The IP address or the DNS name of the seondary LDAP server"
1201
1615
  msgstr "O endereço IP do servidor de DNS do servidor LDAP"
1202
1616
 
1203
- #: core/app_settings.py:209
1617
+ #: core/app_settings.py:197
1204
1618
  #, fuzzy
1205
1619
  #| msgid "Server port"
1206
1620
  msgid "Secondary server port"
1207
1621
  msgstr "Porta do Servidor"
1208
1622
 
1209
- #: core/app_settings.py:212
1623
+ #: core/app_settings.py:200
1210
1624
  #, fuzzy
1211
1625
  #| msgid "The TCP port number used by the LDAP server"
1212
1626
  msgid "The TCP port number used by the LDAP secondary server"
1213
1627
  msgstr " A porta TCP usada pelo servidor LDAP"
1214
1628
 
1215
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1629
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1216
1630
  #: webmail/app_settings.py:45
1217
1631
  msgid "Use a secured connection"
1218
1632
  msgstr "Utilizar uma ligação segura"
1219
1633
 
1220
- #: core/app_settings.py:221
1634
+ #: core/app_settings.py:209
1221
1635
  #, fuzzy
1222
1636
  #| msgid "Use an SSL/TLS connection to access the LDAP server"
1223
1637
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1224
1638
  msgstr "Usar SSL/TLS na ligaçao de acesso ao servidor LDAP"
1225
1639
 
1226
- #: core/app_settings.py:228
1640
+ #: core/app_settings.py:216
1227
1641
  msgid "Active Directory"
1228
1642
  msgstr "Active Directory"
1229
1643
 
1230
- #: core/app_settings.py:230
1644
+ #: core/app_settings.py:218
1231
1645
  msgid "Tell if the LDAP server is an Active Directory one"
1232
1646
  msgstr "Especificar se o servidor LDAP e um Active Directory"
1233
1647
 
1234
- #: core/app_settings.py:237
1648
+ #: core/app_settings.py:225
1235
1649
  msgid "Administrator groups"
1236
1650
  msgstr "Grupos de Administrador"
1237
1651
 
1238
- #: core/app_settings.py:239
1652
+ #: core/app_settings.py:227
1239
1653
  msgid ""
1240
- "Members of those LDAP Posix groups will be created as domain administrators."
1241
- " Use ';' characters to separate groups."
1654
+ "Members of those LDAP Posix groups will be created as domain administrators. "
1655
+ "Use ';' characters to separate groups."
1242
1656
  msgstr ""
1243
1657
  "Os membros destes grupos \"LDAP Posix\" serão criados como administradores "
1244
1658
  "de domínio. Use ';' para separar os grupos."
1245
1659
 
1246
- #: core/app_settings.py:248
1660
+ #: core/app_settings.py:236
1247
1661
  #, fuzzy
1248
1662
  #| msgid "Group name"
1249
1663
  msgid "Group type"
1250
1664
  msgstr "Nome do grupo"
1251
1665
 
1252
- #: core/app_settings.py:250
1666
+ #: core/app_settings.py:238
1253
1667
  msgid "The LDAP group type to use with your directory."
1254
1668
  msgstr ""
1255
1669
 
1256
- #: core/app_settings.py:257
1670
+ #: core/app_settings.py:245
1257
1671
  msgid "Groups search base"
1258
1672
  msgstr "Base para pesquisa de Grupos"
1259
1673
 
1260
- #: core/app_settings.py:259
1674
+ #: core/app_settings.py:247
1261
1675
  msgid "The distinguished name of the search base used to find groups"
1262
1676
  msgstr "O nome único para a base de pesquisa, usado para encontrar grupos"
1263
1677
 
1264
- #: core/app_settings.py:267
1678
+ #: core/app_settings.py:255
1265
1679
  msgid "Password attribute"
1266
1680
  msgstr "Atributo de palavra-passe"
1267
1681
 
1268
- #: core/app_settings.py:269
1682
+ #: core/app_settings.py:257
1269
1683
  msgid "The attribute used to store user passwords"
1270
1684
  msgstr "O atributo utilizado para armazenar palavras-passe"
1271
1685
 
1272
- #: core/app_settings.py:276
1686
+ #: core/app_settings.py:264
1273
1687
  #, fuzzy
1274
1688
  #| msgid "Authentication method"
1275
1689
  msgid "LDAP authentication settings"
1276
1690
  msgstr "Método de autenticação"
1277
1691
 
1278
- #: core/app_settings.py:284
1692
+ #: core/app_settings.py:272
1279
1693
  msgid "Authentication method"
1280
1694
  msgstr "Método de autenticação"
1281
1695
 
1282
- #: core/app_settings.py:287
1696
+ #: core/app_settings.py:275
1283
1697
  msgid "Choose the authentication method to use"
1284
1698
  msgstr "Escolher o método de autenticação"
1285
1699
 
1286
- #: core/app_settings.py:294 core/app_settings.py:357
1700
+ #: core/app_settings.py:282 core/app_settings.py:345
1287
1701
  msgid "Bind DN"
1288
1702
  msgstr "\"Bind DN\""
1289
1703
 
1290
- #: core/app_settings.py:296 core/app_settings.py:359
1704
+ #: core/app_settings.py:284 core/app_settings.py:347
1291
1705
  msgid ""
1292
1706
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1293
1707
  "for an anonymous bind"
@@ -1295,27 +1709,28 @@ msgstr ""
1295
1709
  "O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario "
1296
1710
  "para \"bind\" anónimo"
1297
1711
 
1298
- #: core/app_settings.py:305 core/app_settings.py:367
1712
+ #: core/app_settings.py:293 core/app_settings.py:355
1299
1713
  msgid "Bind password"
1300
1714
  msgstr "Password para bind"
1301
1715
 
1302
- #: core/app_settings.py:307 core/app_settings.py:369
1716
+ #: core/app_settings.py:295 core/app_settings.py:357
1303
1717
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1304
- msgstr "A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')"
1718
+ msgstr ""
1719
+ "A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')"
1305
1720
 
1306
- #: core/app_settings.py:317 core/app_settings.py:422
1721
+ #: core/app_settings.py:305 core/app_settings.py:410
1307
1722
  msgid "Users search base"
1308
1723
  msgstr "Base para pesquisa de utilizadores"
1309
1724
 
1310
- #: core/app_settings.py:319 core/app_settings.py:424
1725
+ #: core/app_settings.py:307 core/app_settings.py:412
1311
1726
  msgid "The distinguished name of the search base used to find users"
1312
1727
  msgstr "O nome único a usar para pesquisa de utilizadores"
1313
1728
 
1314
- #: core/app_settings.py:328 core/app_settings.py:433
1729
+ #: core/app_settings.py:316 core/app_settings.py:421
1315
1730
  msgid "Search filter"
1316
1731
  msgstr "Filtro de pesquisa"
1317
1732
 
1318
- #: core/app_settings.py:330 core/app_settings.py:435
1733
+ #: core/app_settings.py:318 core/app_settings.py:423
1319
1734
  msgid ""
1320
1735
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1321
1736
  "valid, it must be enclosed in parentheses."
@@ -1323,11 +1738,11 @@ msgstr ""
1323
1738
  "Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre "
1324
1739
  "parênteses para ser válido"
1325
1740
 
1326
- #: core/app_settings.py:339
1741
+ #: core/app_settings.py:327
1327
1742
  msgid "User DN template"
1328
1743
  msgstr "Template DN de utilizador"
1329
1744
 
1330
- #: core/app_settings.py:341
1745
+ #: core/app_settings.py:329
1331
1746
  #, python-format
1332
1747
  msgid ""
1333
1748
  "The template used to construct a user's DN. It should contain one "
@@ -1336,38 +1751,38 @@ msgstr ""
1336
1751
  "O template usado para construir o DN (nome único). Deve apenas conter um "
1337
1752
  "'placeholder' (ex: %(user)s) "
1338
1753
 
1339
- #: core/app_settings.py:350
1754
+ #: core/app_settings.py:338
1340
1755
  #, fuzzy
1341
1756
  #| msgid "LDAP settings"
1342
1757
  msgid "LDAP synchronization settings"
1343
1758
  msgstr "Definições do serviço de directório"
1344
1759
 
1345
- #: core/app_settings.py:378
1760
+ #: core/app_settings.py:366
1346
1761
  msgid "Enable export to LDAP"
1347
1762
  msgstr ""
1348
1763
 
1349
- #: core/app_settings.py:380
1764
+ #: core/app_settings.py:368
1350
1765
  msgid ""
1351
1766
  "Enable automatic synchronization between local database and LDAP directory"
1352
1767
  msgstr ""
1353
1768
 
1354
- #: core/app_settings.py:389
1769
+ #: core/app_settings.py:377
1355
1770
  msgid "Delete remote LDAP account when local account is deleted"
1356
1771
  msgstr ""
1357
1772
 
1358
- #: core/app_settings.py:392
1773
+ #: core/app_settings.py:380
1359
1774
  msgid ""
1360
1775
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1361
1776
  "be disabled."
1362
1777
  msgstr ""
1363
1778
 
1364
- #: core/app_settings.py:401
1779
+ #: core/app_settings.py:389
1365
1780
  #, fuzzy
1366
1781
  #| msgid "User DN template"
1367
1782
  msgid "Account DN template"
1368
1783
  msgstr "Template DN de utilizador"
1369
1784
 
1370
- #: core/app_settings.py:403
1785
+ #: core/app_settings.py:391
1371
1786
  #, fuzzy, python-format
1372
1787
  #| msgid ""
1373
1788
  #| "The template used to construct a user's DN. It should contain one "
@@ -1379,245 +1794,235 @@ msgstr ""
1379
1794
  "O template usado para construir o DN (nome único). Deve apenas conter um "
1380
1795
  "'placeholder' (ex: %(user)s) "
1381
1796
 
1382
- #: core/app_settings.py:412
1797
+ #: core/app_settings.py:400
1383
1798
  msgid "Enable import from LDAP"
1384
1799
  msgstr ""
1385
1800
 
1386
- #: core/app_settings.py:414
1801
+ #: core/app_settings.py:402
1387
1802
  msgid "Enable account synchronization from LDAP directory to local database"
1388
1803
  msgstr ""
1389
1804
 
1390
- #: core/app_settings.py:444
1805
+ #: core/app_settings.py:432
1391
1806
  #, fuzzy
1392
1807
  #| msgid "Password attribute"
1393
1808
  msgid "Username attribute"
1394
1809
  msgstr "Atributo de palavra-passe"
1395
1810
 
1396
- #: core/app_settings.py:446
1811
+ #: core/app_settings.py:434
1397
1812
  msgid "The name of the LDAP attribute where the username can be found."
1398
1813
  msgstr ""
1399
1814
 
1400
- #: core/app_settings.py:455
1815
+ #: core/app_settings.py:443
1401
1816
  msgid "Enable Dovecot LDAP sync"
1402
1817
  msgstr ""
1403
1818
 
1404
- #: core/app_settings.py:457
1819
+ #: core/app_settings.py:445
1405
1820
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1406
1821
  msgstr ""
1407
1822
 
1408
- #: core/app_settings.py:465
1823
+ #: core/app_settings.py:453
1409
1824
  msgid "Dovecot LDAP config file"
1410
1825
  msgstr ""
1411
1826
 
1412
- #: core/app_settings.py:467
1827
+ #: core/app_settings.py:455
1413
1828
  msgid ""
1414
1829
  "Location of the configuration file which contains Dovecot LDAP settings."
1415
1830
  msgstr ""
1416
1831
 
1417
- #: core/app_settings.py:480
1832
+ #: core/app_settings.py:468
1418
1833
  msgid "Dashboard"
1419
1834
  msgstr ""
1420
1835
 
1421
- #: core/app_settings.py:486
1836
+ #: core/app_settings.py:474
1422
1837
  #, fuzzy
1423
1838
  #| msgid "sent messages"
1424
1839
  msgid "Custom welcome message"
1425
1840
  msgstr "A criar mensagem"
1426
1841
 
1427
- #: core/app_settings.py:488
1842
+ #: core/app_settings.py:476
1428
1843
  msgid "A welcome message that will be displayed instead the default one"
1429
1844
  msgstr ""
1430
1845
 
1431
- #: core/app_settings.py:495
1846
+ #: core/app_settings.py:483
1432
1847
  msgid "Custom RSS feed"
1433
1848
  msgstr ""
1434
1849
 
1435
- #: core/app_settings.py:497
1850
+ #: core/app_settings.py:485
1436
1851
  msgid "Display custom RSS feed to resellers and domain administrators"
1437
1852
  msgstr ""
1438
1853
 
1439
- #: core/app_settings.py:506
1854
+ #: core/app_settings.py:494
1440
1855
  msgid "Display custom RSS feed to super admins"
1441
1856
  msgstr ""
1442
1857
 
1443
- #: core/app_settings.py:509
1858
+ #: core/app_settings.py:497
1444
1859
  msgid "Display custom RSS feed also to super administrators"
1445
1860
  msgstr ""
1446
1861
 
1447
- #: core/app_settings.py:517
1862
+ #: core/app_settings.py:505
1448
1863
  msgid "Hide features widget"
1449
1864
  msgstr ""
1450
1865
 
1451
- #: core/app_settings.py:519
1866
+ #: core/app_settings.py:507
1452
1867
  msgid "Hide features widget for resellers and domain administrators"
1453
1868
  msgstr ""
1454
1869
 
1455
- #: core/app_settings.py:531
1870
+ #: core/app_settings.py:519
1456
1871
  msgid "Theme"
1457
1872
  msgstr ""
1458
1873
 
1459
- #: core/app_settings.py:537
1874
+ #: core/app_settings.py:525
1460
1875
  msgid "Primary theme color"
1461
1876
  msgstr ""
1462
1877
 
1463
- #: core/app_settings.py:539
1878
+ #: core/app_settings.py:527
1464
1879
  msgid ""
1465
1880
  "Primary color of the theme (hexadecimal code), used as the background color "
1466
1881
  "of the left menu for example"
1467
1882
  msgstr ""
1468
1883
 
1469
- #: core/app_settings.py:548
1884
+ #: core/app_settings.py:536
1470
1885
  msgid "Primary theme color (lighter version)"
1471
1886
  msgstr ""
1472
1887
 
1473
- #: core/app_settings.py:551 core/app_settings.py:563
1888
+ #: core/app_settings.py:539 core/app_settings.py:551
1474
1889
  msgid "Primary color of the theme (hexadecimal code)"
1475
1890
  msgstr ""
1476
1891
 
1477
- #: core/app_settings.py:560
1892
+ #: core/app_settings.py:548
1478
1893
  msgid "Primary theme color (darker version)"
1479
1894
  msgstr ""
1480
1895
 
1481
- #: core/app_settings.py:571
1896
+ #: core/app_settings.py:559
1482
1897
  #, fuzzy
1483
1898
  #| msgid "Server port"
1484
1899
  msgid "Secondary theme color"
1485
1900
  msgstr "Porta do Servidor"
1486
1901
 
1487
- #: core/app_settings.py:573
1902
+ #: core/app_settings.py:561
1488
1903
  msgid ""
1489
1904
  "Secondary color of the theme (hexadecimal code), used as the background "
1490
1905
  "color of some buttons for example"
1491
1906
  msgstr ""
1492
1907
 
1493
- #: core/app_settings.py:581
1908
+ #: core/app_settings.py:569
1494
1909
  msgid "Labels theme color"
1495
1910
  msgstr ""
1496
1911
 
1497
- #: core/app_settings.py:583
1912
+ #: core/app_settings.py:571
1498
1913
  msgid "Theme color for labels (hexadecimal code)"
1499
1914
  msgstr ""
1500
1915
 
1501
- #: core/app_settings.py:595
1916
+ #: core/app_settings.py:583
1502
1917
  #, fuzzy
1503
1918
  #| msgid "Authentication"
1504
1919
  msgid "Notifications"
1505
1920
  msgstr "Autenticação"
1506
1921
 
1507
- #: core/app_settings.py:601
1922
+ #: core/app_settings.py:589
1508
1923
  #, fuzzy
1509
1924
  #| msgid "Server address"
1510
1925
  msgid "Sender address"
1511
1926
  msgstr "Endereço do Servidor"
1512
1927
 
1513
- #: core/app_settings.py:603
1928
+ #: core/app_settings.py:591
1514
1929
  msgid "Email address used to send notifications."
1515
1930
  msgstr ""
1516
1931
 
1517
- #: core/app_settings.py:614
1932
+ #: core/app_settings.py:602
1518
1933
  msgid "Public API"
1519
1934
  msgstr ""
1520
1935
 
1521
- #: core/app_settings.py:620
1936
+ #: core/app_settings.py:608
1522
1937
  msgid "Enable communication"
1523
1938
  msgstr ""
1524
1939
 
1525
- #: core/app_settings.py:622 core/app_settings.py:632
1940
+ #: core/app_settings.py:610 core/app_settings.py:620
1526
1941
  msgid "Automatically checks if a newer version is available"
1527
1942
  msgstr "Verifica automaticamente se existem novas versões"
1528
1943
 
1529
- #: core/app_settings.py:629
1944
+ #: core/app_settings.py:617
1530
1945
  msgid "Check new versions"
1531
1946
  msgstr "Procurar novas versões"
1532
1947
 
1533
- #: core/app_settings.py:640
1948
+ #: core/app_settings.py:628
1534
1949
  msgid "Send an email when new versions are found"
1535
1950
  msgstr ""
1536
1951
 
1537
- #: core/app_settings.py:644
1952
+ #: core/app_settings.py:632
1538
1953
  msgid "Send an email to notify admins about new versions"
1539
1954
  msgstr ""
1540
1955
 
1541
- #: core/app_settings.py:651 sievefilters/constants.py:25
1956
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1542
1957
  msgid "Recipient"
1543
1958
  msgstr "Destinatário"
1544
1959
 
1545
- #: core/app_settings.py:654
1960
+ #: core/app_settings.py:642
1546
1961
  msgid "Recipient of new versions notification emails."
1547
1962
  msgstr ""
1548
1963
 
1549
- #: core/app_settings.py:661
1964
+ #: core/app_settings.py:649
1550
1965
  msgid "Send statistics"
1551
1966
  msgstr ""
1552
1967
 
1553
- #: core/app_settings.py:664
1968
+ #: core/app_settings.py:652
1554
1969
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1555
1970
  msgstr ""
1556
1971
 
1557
- #: core/app_settings.py:683
1972
+ #: core/app_settings.py:671
1558
1973
  msgid "Enable inactive account tracking"
1559
1974
  msgstr ""
1560
1975
 
1561
- #: core/app_settings.py:686
1976
+ #: core/app_settings.py:674
1562
1977
  msgid ""
1563
- "Allow the administrator to set a threshold (in days) beyond which an account"
1564
- " is considered inactive if the user hasn't logged in"
1978
+ "Allow the administrator to set a threshold (in days) beyond which an account "
1979
+ "is considered inactive if the user hasn't logged in"
1565
1980
  msgstr ""
1566
1981
 
1567
- #: core/app_settings.py:695
1982
+ #: core/app_settings.py:683
1568
1983
  msgid "Inactive account threshold"
1569
1984
  msgstr ""
1570
1985
 
1571
- #: core/app_settings.py:698
1986
+ #: core/app_settings.py:686
1572
1987
  msgid ""
1573
- "An account with a last login date greater than this threshold (in days) will"
1574
- " be considered as inactive"
1988
+ "An account with a last login date greater than this threshold (in days) will "
1989
+ "be considered as inactive"
1575
1990
  msgstr ""
1576
1991
 
1577
- #: core/app_settings.py:707
1992
+ #: core/app_settings.py:695
1578
1993
  msgid "Top notifications check interval"
1579
1994
  msgstr "Intervalo de tempo para verificar notificações (no topo)"
1580
1995
 
1581
- #: core/app_settings.py:710
1996
+ #: core/app_settings.py:698
1582
1997
  #, fuzzy
1583
1998
  #| msgid "Interval between two top notification checks"
1584
1999
  msgid "Interval between two top notification checks (in seconds)"
1585
2000
  msgstr "Intervalo de tempo de verificação entre duas notificações (no topo)"
1586
2001
 
1587
- #: core/app_settings.py:717
2002
+ #: core/app_settings.py:705
1588
2003
  msgid "Maximum log record age"
1589
2004
  msgstr "Idade máxima do registo no log"
1590
2005
 
1591
- #: core/app_settings.py:719
2006
+ #: core/app_settings.py:707
1592
2007
  msgid "The maximum age in days of a log record"
1593
2008
  msgstr "A idade maxima do registo de um log, em dias, e de"
1594
2009
 
1595
- #: core/app_settings.py:727
2010
+ #: core/app_settings.py:715
1596
2011
  msgid "Retention time in message history"
1597
2012
  msgstr ""
1598
2013
 
1599
- #: core/app_settings.py:730
2014
+ #: core/app_settings.py:718
1600
2015
  msgid "Retention time (in days) of a message in the message history section"
1601
2016
  msgstr ""
1602
2017
 
1603
- #: core/app_settings.py:737
2018
+ #: core/app_settings.py:725
1604
2019
  msgid "Items per page"
1605
2020
  msgstr "Itens por página"
1606
2021
 
1607
- #: core/app_settings.py:739
2022
+ #: core/app_settings.py:727
1608
2023
  msgid "Number of displayed items per page"
1609
2024
  msgstr "Número de itens apresentados por página"
1610
2025
 
1611
- #: core/app_settings.py:746
1612
- msgid "Default top redirection"
1613
- msgstr "Redirecionamento pré-definido"
1614
-
1615
- #: core/app_settings.py:748
1616
- msgid "The default redirection used when no application is specified"
1617
- msgstr ""
1618
- "O redirecionamento padrão usado quando nenhuma aplicação se encontra "
1619
- "especificada"
1620
-
1621
2026
  #: core/checks.py:15
1622
2027
  msgid ""
1623
2028
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -1647,9 +2052,8 @@ msgstr ""
1647
2052
 
1648
2053
  #: core/checks.py:34
1649
2054
  msgid ""
1650
- "Visit : "
1651
- "https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
1652
- "oauth2"
2055
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
2056
+ "dovecot.html#dovecot-oauth2"
1653
2057
  msgstr ""
1654
2058
 
1655
2059
  #: core/checks.py:41
@@ -1660,9 +2064,8 @@ msgstr ""
1660
2064
 
1661
2065
  #: core/checks.py:45
1662
2066
  msgid ""
1663
- "Visit : "
1664
- "https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
1665
- "oauth2"
2067
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
2068
+ "radicale.html#radicale-oauth2"
1666
2069
  msgstr ""
1667
2070
 
1668
2071
  #: core/constants.py:6
@@ -1756,7 +2159,7 @@ msgstr "Não pode apagar a sua própria conta"
1756
2159
  msgid "One or more updates are available"
1757
2160
  msgstr "Uma nova versão está disponível!"
1758
2161
 
1759
- #: core/handlers.py:138
2162
+ #: core/handlers.py:140
1760
2163
  #, python-format
1761
2164
  msgid "You are still using a deprecated password scheme (%s)"
1762
2165
  msgstr ""
@@ -1830,8 +2233,8 @@ msgstr "O simple utilizador '%s' deve ter endereço de e-mail válido"
1830
2233
  #| msgid "username and email fields must not differ for '%s'"
1831
2234
  msgid "username and email fields must not differ for '{}'"
1832
2235
  msgstr ""
1833
- "Os campos nome de utilizador e endereço de email não deve ser diferente para"
1834
- " '%s'"
2236
+ "Os campos nome de utilizador e endereço de email não deve ser diferente para "
2237
+ "'%s'"
1835
2238
 
1836
2239
  #: core/password_validation.py:25
1837
2240
  msgid "Password must contain at least {} digit."
@@ -1933,22 +2336,22 @@ msgstr[1] "Uma nova versão está disponível!"
1933
2336
  msgid "The core part of Modoboa"
1934
2337
  msgstr "Benvindo ao Modoboa"
1935
2338
 
1936
- #: core/views/auth.py:65
2339
+ #: core/views/auth.py:82
1937
2340
  #, python-format
1938
2341
  msgid "User '%s' successfully logged in"
1939
2342
  msgstr "O utilizador '%s' fez login com sucesso"
1940
2343
 
1941
- #: core/views/auth.py:109
2344
+ #: core/views/auth.py:128
1942
2345
  #, python-format
1943
2346
  msgid "Password scheme mismatch. Updating %s password"
1944
2347
  msgstr ""
1945
2348
 
1946
- #: core/views/auth.py:116
2349
+ #: core/views/auth.py:135
1947
2350
  #, python-format
1948
2351
  msgid "Password hash parameter missmatch. Updating %s password"
1949
2352
  msgstr ""
1950
2353
 
1951
- #: core/views/auth.py:154
2354
+ #: core/views/auth.py:173
1952
2355
  #, fuzzy
1953
2356
  #| msgid "User '%s' successfully logged in"
1954
2357
  msgid "User '{}' successfully logged out"
@@ -1979,16 +2382,10 @@ msgid "Not resolved"
1979
2382
  msgstr "Sem destinatário definido"
1980
2383
 
1981
2384
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
1982
- #: webmail/constants.py:18
2385
+ #: webmail/constants.py:38
1983
2386
  msgid "None"
1984
2387
  msgstr "Nenhum"
1985
2388
 
1986
- #: dmarc/models.py:11
1987
- #, fuzzy
1988
- #| msgid "Quantity"
1989
- msgid "Quarantine"
1990
- msgstr "Quarentena"
1991
-
1992
2389
  #: dmarc/models.py:12
1993
2390
  #, fuzzy
1994
2391
  #| msgid "Subject"
@@ -2119,7 +2516,12 @@ msgstr ""
2119
2516
  msgid "Public key mismatchs"
2120
2517
  msgstr ""
2121
2518
 
2122
- #: imap_migration/api/v2/serializers.py:117
2519
+ #: imap_migration/api/v2/serializers.py:66
2520
+ #, fuzzy
2521
+ msgid "Migrated domain with name {} already exists"
2522
+ msgstr "Já existe um 'alias' com este nome"
2523
+
2524
+ #: imap_migration/api/v2/serializers.py:130
2123
2525
  #, fuzzy
2124
2526
  #| msgid "Profile updated"
2125
2527
  msgid "Access denied"
@@ -2292,11 +2694,10 @@ msgstr "Aliases de domínio"
2292
2694
 
2293
2695
  #: limits/app_settings.py:52
2294
2696
  #, fuzzy
2295
- #| msgid ""
2296
- #| "Maximum number of allowed domain aliases for a new administrator"
2697
+ #| msgid "Maximum number of allowed domain aliases for a new administrator"
2297
2698
  msgid ""
2298
- "Maximum number of allowed domain aliases for a new administrator. (0 to deny"
2299
- " any creation, -1 to allow unlimited creations)"
2699
+ "Maximum number of allowed domain aliases for a new administrator. (0 to deny "
2700
+ "any creation, -1 to allow unlimited creations)"
2300
2701
  msgstr ""
2301
2702
  "Número máximo permitido de aliases de domínio para um novo administrador"
2302
2703
 
@@ -2350,16 +2751,15 @@ msgstr ""
2350
2751
  #| msgid ""
2351
2752
  #| "Maximum number of allowed domain administrators for a new administrator"
2352
2753
  msgid ""
2353
- "Maximum number of allowed domain administrators for a new domain. (0 to deny"
2354
- " any creation, -1 to allow unlimited creations)"
2754
+ "Maximum number of allowed domain administrators for a new domain. (0 to deny "
2755
+ "any creation, -1 to allow unlimited creations)"
2355
2756
  msgstr ""
2356
2757
  "Número máximo permitido de administradores de domínio para um novo "
2357
2758
  "administrador"
2358
2759
 
2359
2760
  #: limits/app_settings.py:126
2360
2761
  #, fuzzy
2361
- #| msgid ""
2362
- #| "Maximum number of allowed domain aliases for a new administrator"
2762
+ #| msgid "Maximum number of allowed domain aliases for a new administrator"
2363
2763
  msgid ""
2364
2764
  "Maximum number of allowed domain aliases for a new domain. (0 to deny any "
2365
2765
  "creation, -1 to allow unlimited creations)"
@@ -2378,8 +2778,8 @@ msgstr "Número máximo permitido de caixas de correio para novo administrador"
2378
2778
  #, fuzzy
2379
2779
  #| msgid "Maximum number of allowed aliases for a new administrator"
2380
2780
  msgid ""
2381
- "Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
2382
- " -1 to allow unlimited creations)"
2781
+ "Maximum number of allowed aliases for a new domain. (0 to deny any creation, "
2782
+ "-1 to allow unlimited creations)"
2383
2783
  msgstr "Número máximo de aliases permitidas para um novo administrador"
2384
2784
 
2385
2785
  #: limits/apps.py:16
@@ -2401,8 +2801,7 @@ msgstr "Número máximo de caixas de correio que este utilizador por criar"
2401
2801
  #: limits/constants.py:40
2402
2802
  msgid "Maximum number of mailbox aliases this user can create"
2403
2803
  msgstr ""
2404
- "Número máximo de aliases para caixas de correio que este utilizador por "
2405
- "criar"
2804
+ "Número máximo de aliases para caixas de correio que este utilizador por criar"
2406
2805
 
2407
2806
  #: limits/constants.py:49
2408
2807
  msgid "Maximum number of domain administrators this user can create"
@@ -2430,8 +2829,7 @@ msgstr "Número máximo de caixas de correio que este utilizador por criar"
2430
2829
  #| msgid "Maximum number of mailbox aliases this user can create"
2431
2830
  msgid "Maximum number of mailbox aliases allowed for this domain."
2432
2831
  msgstr ""
2433
- "Número máximo de aliases para caixas de correio que este utilizador por "
2434
- "criar"
2832
+ "Número máximo de aliases para caixas de correio que este utilizador por criar"
2435
2833
 
2436
2834
  #: limits/constants.py:102
2437
2835
  #, fuzzy
@@ -2841,8 +3239,8 @@ msgstr ""
2841
3239
 
2842
3240
  #: rspamd/app_settings.py:21
2843
3241
  msgid ""
2844
- "Absolute path of the file which contains paths to DKIM private keys. Must be"
2845
- " readable by _rspamd group or user."
3242
+ "Absolute path of the file which contains paths to DKIM private keys. Must be "
3243
+ "readable by _rspamd group or user."
2846
3244
  msgstr ""
2847
3245
 
2848
3246
  #: rspamd/app_settings.py:30
@@ -2861,8 +3259,8 @@ msgstr ""
2861
3259
 
2862
3260
  #: rspamd/app_settings.py:53
2863
3261
  msgid ""
2864
- "Location of the rspamd dashboard. Can either be a relative URL (eg. "
2865
- "'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
3262
+ "Location of the rspamd dashboard. Can either be a relative URL (eg. '/"
3263
+ "rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
2866
3264
  "guidance on the Super-Admin dashboard."
2867
3265
  msgstr ""
2868
3266
 
@@ -2870,7 +3268,7 @@ msgstr ""
2870
3268
  msgid "Rspamd"
2871
3269
  msgstr ""
2872
3270
 
2873
- #: sievefilters/api/v2/viewsets.py:193
3271
+ #: sievefilters/api/v2/viewsets.py:203
2874
3272
  #, fuzzy, python-format
2875
3273
  #| msgid "User '%s' already exists"
2876
3274
  msgid "Filter %s already exists"
@@ -2954,7 +3352,7 @@ msgstr "é"
2954
3352
  msgid "is not"
2955
3353
  msgstr "não é"
2956
3354
 
2957
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3355
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
2958
3356
  msgid "Subject"
2959
3357
  msgstr "Assunto"
2960
3358
 
@@ -3157,8 +3555,8 @@ msgstr "Password antiga"
3157
3555
 
3158
3556
  #: templates/registration/twofactor_code_verify.html:35
3159
3557
  msgid ""
3160
- "Enter the code from the two-factor app on your mobile device. If you've lost"
3161
- " your device, you may enter one of your recovery codes."
3558
+ "Enter the code from the two-factor app on your mobile device. If you've lost "
3559
+ "your device, you may enter one of your recovery codes."
3162
3560
  msgstr ""
3163
3561
 
3164
3562
  #: templates/registration/twofactor_code_verify.html:42
@@ -3208,23 +3606,23 @@ msgstr "Tamanho máximo do anexo em bytes (ou KB, MB, GB se especificado)"
3208
3606
  msgid "SMTP settings"
3209
3607
  msgstr "Definições SMTP"
3210
3608
 
3211
- #: webmail/app_settings.py:75
3609
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3212
3610
  #, fuzzy
3213
3611
  #| msgid "Address of your IMAP server"
3214
3612
  msgid "Address of your SMTP server"
3215
3613
  msgstr "Endereço do servidor IMAP"
3216
3614
 
3217
- #: webmail/app_settings.py:82
3615
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3218
3616
  msgid "Secured connection mode"
3219
3617
  msgstr "Modo de ligação segura"
3220
3618
 
3221
- #: webmail/app_settings.py:84
3619
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3222
3620
  #, fuzzy
3223
3621
  #| msgid "Use an SSL/TLS connection to access the LDAP server"
3224
3622
  msgid "Use a secured connection to access SMTP server"
3225
3623
  msgstr "Usar uma ligação segura para aceder ao servidor SMTP"
3226
3624
 
3227
- #: webmail/app_settings.py:93
3625
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3228
3626
  #, fuzzy
3229
3627
  #| msgid "Listening port of your IMAP server"
3230
3628
  msgid "Listening port of your SMTP server"
@@ -3241,115 +3639,109 @@ msgstr "Autenticação necessária"
3241
3639
  msgid "Server needs authentication"
3242
3640
  msgstr "O servidor requer autenticação"
3243
3641
 
3244
- #: webmail/app_settings.py:118
3642
+ #: webmail/app_settings.py:113
3245
3643
  #, fuzzy
3246
- #| msgid "Display"
3247
- msgid "Display"
3248
- msgstr "Exibir"
3644
+ #| msgid "LDAP settings"
3645
+ msgid "Scheduling settings"
3646
+ msgstr "Definições do MANAGESIEVE"
3249
3647
 
3250
- #: webmail/app_settings.py:124
3648
+ #: webmail/app_settings.py:161
3251
3649
  msgid "Default message display mode"
3252
3650
  msgstr "Modo de visualização predefinido"
3253
3651
 
3254
- #: webmail/app_settings.py:126
3652
+ #: webmail/app_settings.py:163
3255
3653
  #, fuzzy
3256
3654
  #| msgid "The default redirection used when no application is specified"
3257
3655
  msgid "The default mode used when displaying a message"
3258
3656
  msgstr "O modo de visualização de mensagem que será usado por defeito"
3259
3657
 
3260
- #: webmail/app_settings.py:133
3658
+ #: webmail/app_settings.py:170
3261
3659
  msgid "Enable HTML links display"
3262
3660
  msgstr "Ativar visualização de links HTML"
3263
3661
 
3264
- #: webmail/app_settings.py:136
3662
+ #: webmail/app_settings.py:173
3265
3663
  msgid "Enable/Disable HTML links display"
3266
3664
  msgstr "Ativar/desativar"
3267
3665
 
3268
- #: webmail/app_settings.py:144
3269
- #, fuzzy
3270
- #| msgid "Number of displayed items per page"
3271
- msgid "Number of displayed emails per page"
3272
- msgstr "Número de e-mails a visíveis por página"
3273
-
3274
- #: webmail/app_settings.py:147
3666
+ #: webmail/app_settings.py:184
3275
3667
  msgid "Sets the maximum number of messages displayed in a page"
3276
3668
  msgstr "Define o número máximo de mensagens a mostrar por página"
3277
3669
 
3278
- #: webmail/app_settings.py:154
3670
+ #: webmail/app_settings.py:191
3279
3671
  msgid "Listing refresh rate"
3280
3672
  msgstr "Taxa de actualização da listagem"
3281
3673
 
3282
- #: webmail/app_settings.py:156
3674
+ #: webmail/app_settings.py:193
3283
3675
  msgid "Automatic listing refresh rate (in secconds)"
3284
3676
  msgstr ""
3285
3677
 
3286
- #: webmail/app_settings.py:163
3678
+ #: webmail/app_settings.py:200
3287
3679
  msgid "Folder container's width"
3288
3680
  msgstr "Largura do caixilho das caixas de correio"
3289
3681
 
3290
- #: webmail/app_settings.py:165
3682
+ #: webmail/app_settings.py:202
3291
3683
  msgid "The width of the folder list container"
3292
3684
  msgstr "Largura do caixilho da lista de caixa de correio"
3293
3685
 
3294
- #: webmail/app_settings.py:176
3686
+ #: webmail/app_settings.py:213
3295
3687
  msgid "Folders"
3296
3688
  msgstr ""
3297
3689
 
3298
- #: webmail/app_settings.py:182
3690
+ #: webmail/app_settings.py:219
3299
3691
  msgid "Trash folder"
3300
3692
  msgstr "Pasta para Itens Eliminados"
3301
3693
 
3302
- #: webmail/app_settings.py:184
3694
+ #: webmail/app_settings.py:221
3303
3695
  msgid "Folder where deleted messages go"
3304
3696
  msgstr "Pasta para a qual os itens eliminados são enviados"
3305
3697
 
3306
- #: webmail/app_settings.py:191
3698
+ #: webmail/app_settings.py:228
3307
3699
  msgid "Sent folder"
3308
3700
  msgstr "Pasta para Itens Enviados"
3309
3701
 
3310
- #: webmail/app_settings.py:193
3702
+ #: webmail/app_settings.py:230
3311
3703
  msgid "Folder where copies of sent messages go"
3312
3704
  msgstr "Pasta onde as copias das mensagens enviadas são guardadas"
3313
3705
 
3314
- #: webmail/app_settings.py:200
3706
+ #: webmail/app_settings.py:237
3315
3707
  msgid "Drafts folder"
3316
3708
  msgstr "Pasta para Rascunhos"
3317
3709
 
3318
- #: webmail/app_settings.py:201
3710
+ #: webmail/app_settings.py:238
3319
3711
  msgid "Folder where drafts go"
3320
3712
  msgstr "Pasta onde ficam guardados os rascunhos"
3321
3713
 
3322
- #: webmail/app_settings.py:207
3714
+ #: webmail/app_settings.py:244
3323
3715
  msgid "Junk folder"
3324
3716
  msgstr "Pasta para Itens Enviados"
3325
3717
 
3326
- #: webmail/app_settings.py:209
3718
+ #: webmail/app_settings.py:246
3327
3719
  msgid "Folder where junk messages should go"
3328
3720
  msgstr "Pasta para a qual os itens eliminados são enviados"
3329
3721
 
3330
- #: webmail/app_settings.py:220
3722
+ #: webmail/app_settings.py:257
3331
3723
  #, fuzzy
3332
3724
  #| msgid "sent messages"
3333
3725
  msgid "Composing messages"
3334
3726
  msgstr "A criar mensagem"
3335
3727
 
3336
- #: webmail/app_settings.py:226
3728
+ #: webmail/app_settings.py:263
3337
3729
  #, fuzzy
3338
3730
  #| msgid "Default top redirection"
3339
3731
  msgid "Default editor"
3340
3732
  msgstr "Editor predefinido"
3341
3733
 
3342
- #: webmail/app_settings.py:228
3734
+ #: webmail/app_settings.py:265
3343
3735
  #, fuzzy
3344
3736
  #| msgid "The default redirection used when no application is specified"
3345
3737
  msgid "The default editor to use when composing a message"
3346
3738
  msgstr "O editor a ser usado por defeito na composição de mensagens"
3347
3739
 
3348
- #: webmail/app_settings.py:235
3740
+ #: webmail/app_settings.py:272
3349
3741
  msgid "Signature text"
3350
3742
  msgstr "Assinatura"
3351
3743
 
3352
- #: webmail/app_settings.py:237
3744
+ #: webmail/app_settings.py:274
3353
3745
  msgid "User defined email signature"
3354
3746
  msgstr "Assinatura de email definida pelo utilizador"
3355
3747
 
@@ -3365,49 +3757,74 @@ msgstr "Endereço do Servidor"
3365
3757
  msgid "Failed to remove attachment: "
3366
3758
  msgstr "Falha ao remover os anexos:"
3367
3759
 
3368
- #: webmail/lib/imapemail.py:272
3760
+ #: webmail/lib/imapemail.py:270
3369
3761
  msgid "wrote:"
3370
3762
  msgstr ""
3371
3763
 
3372
- #: webmail/lib/imapemail.py:306
3764
+ #: webmail/lib/imapemail.py:304
3373
3765
  msgid "Date"
3374
3766
  msgstr "Data"
3375
3767
 
3376
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3768
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3377
3769
  #, fuzzy
3378
3770
  #| msgid "sent messages"
3379
3771
  msgid "Original message"
3380
3772
  msgstr "Todas as mensagens"
3381
3773
 
3382
- #: webmail/lib/imaputils.py:221
3774
+ #: webmail/lib/imaputils.py:222
3383
3775
  msgid "Failed to retrieve hierarchy delimiter"
3384
3776
  msgstr "Falha ao recuperar hierarquia delimitador"
3385
3777
 
3386
- #: webmail/lib/imaputils.py:472
3778
+ #: webmail/lib/imaputils.py:478
3387
3779
  msgid "Inbox"
3388
3780
  msgstr ""
3389
3781
 
3390
- #: webmail/lib/imaputils.py:476
3782
+ #: webmail/lib/imaputils.py:482
3391
3783
  msgid "Drafts"
3392
3784
  msgstr "Pasta para Rascunhos"
3393
3785
 
3394
- #: webmail/lib/imaputils.py:481
3786
+ #: webmail/lib/imaputils.py:487
3395
3787
  msgid "Junk"
3396
3788
  msgstr ""
3397
3789
 
3398
- #: webmail/lib/imaputils.py:486
3790
+ #: webmail/lib/imaputils.py:492
3399
3791
  msgid "Sent"
3400
3792
  msgstr ""
3401
3793
 
3402
- #: webmail/lib/imaputils.py:491
3794
+ #: webmail/lib/imaputils.py:500
3795
+ msgid "Scheduled"
3796
+ msgstr ""
3797
+
3798
+ #: webmail/lib/imaputils.py:507
3403
3799
  msgid "Trash"
3404
3800
  msgstr ""
3405
3801
 
3406
- #: webmail/viewsets.py:343
3802
+ #: webmail/serializers.py:220
3803
+ msgid "Moving scheduled messages is forbidden"
3804
+ msgstr ""
3805
+
3806
+ #: webmail/serializers.py:253
3807
+ msgid "Only datetime in the future is allowed"
3808
+ msgstr ""
3809
+
3810
+ #: webmail/serializers.py:258
3811
+ msgid "Provived datetime must be one minute in the future at least"
3812
+ msgstr ""
3813
+
3814
+ #: webmail/viewsets.py:359
3407
3815
  #, python-format
3408
3816
  msgid "Attachment is too big (limit: %s)"
3409
3817
  msgstr "Anexo demasiado grande (limite %s)"
3410
3818
 
3411
- #, fuzzy, python-brace-format
3412
- #~ msgid "Connection to IMAP server failed: {error}"
3413
- #~ msgstr "Ligação ao servidor IMAP falhou : %s"
3819
+ #, fuzzy
3820
+ #~| msgid "Profile"
3821
+ #~ msgid "User profile"
3822
+ #~ msgstr "Perfil"
3823
+
3824
+ #~ msgid "Default top redirection"
3825
+ #~ msgstr "Redirecionamento pré-definido"
3826
+
3827
+ #~ msgid "The default redirection used when no application is specified"
3828
+ #~ msgstr ""
3829
+ #~ "O redirecionamento padrão usado quando nenhuma aplicação se encontra "
3830
+ #~ "especificada"