modoboa 2.6.5__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 (359) 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/calendars/backends/caldav_.py +17 -13
  16. modoboa/calendars/jobs.py +7 -0
  17. modoboa/calendars/mocks.py +4 -1
  18. modoboa/calendars/serializers.py +14 -9
  19. modoboa/calendars/tests.py +10 -9
  20. modoboa/calendars/viewsets.py +3 -1
  21. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  22. modoboa/contacts/models.py +1 -0
  23. modoboa/contacts/serializers.py +5 -2
  24. modoboa/contacts/tasks.py +9 -3
  25. modoboa/contacts/tests.py +32 -6
  26. modoboa/contacts/viewsets.py +7 -1
  27. modoboa/core/api/v2/serializers.py +0 -7
  28. modoboa/core/api/v2/tests.py +0 -10
  29. modoboa/core/app_settings.py +0 -22
  30. modoboa/core/commands/deploy.py +13 -0
  31. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  32. modoboa/core/commands/templates/settings.py.tpl +21 -0
  33. modoboa/core/jobs.py +34 -0
  34. modoboa/core/management/commands/load_initial_data.py +1 -1
  35. modoboa/core/password_hashers/base.py +4 -1
  36. modoboa/core/tests/test_core.py +0 -14
  37. modoboa/core/tests/test_jobs.py +40 -0
  38. modoboa/frontend_dist/assets/{AccountAliasForm-B-hTKSFr.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  39. modoboa/frontend_dist/assets/{AccountEditView-LkP_qhf_.js → AccountEditView-CCuN9mGB.js} +1 -1
  40. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  41. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  42. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  43. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  44. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  45. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  46. modoboa/frontend_dist/assets/{AliasEditView-BVjNJekt.js → AliasEditView-CTjrXYPf.js} +1 -1
  47. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  48. modoboa/frontend_dist/assets/{AliasView-DvvI6cV9.js → AliasView-BN13MNN_.js} +1 -1
  49. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  50. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  52. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  53. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  55. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  56. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  57. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  58. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  59. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  60. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  61. modoboa/frontend_dist/assets/{DomainAdminList-BO8_4Cwt.js → DomainAdminList-DD7p3i6F.js} +1 -1
  62. modoboa/frontend_dist/assets/{DomainEditView-BXylM4aB.js → DomainEditView-DoIoNYC4.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainTransportForm-Ccw5BXyM.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainView-Bd5XQI-1.js → DomainView-BXvznFYz.js} +3 -3
  65. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  66. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  67. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  68. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  69. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  70. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  71. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  72. modoboa/frontend_dist/assets/{HtmlEditor-DNn3CY-w.js → HtmlEditor-CyBl5wj2.js} +15 -15
  73. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  74. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  75. modoboa/frontend_dist/assets/{LoadingData-CnQ_aVqa.js → LoadingData-C2txD49L.js} +1 -1
  76. modoboa/frontend_dist/assets/{LoginCallbackView-Nh_gmh8e.js → LoginCallbackView-DAvty3CI.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginView-BtC9BHuJ.js → LoginView-DHYITkn4.js} +1 -1
  78. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  79. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  80. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  81. modoboa/frontend_dist/assets/{MessageView-C1Goz-hY.js → MessageView-CrrEJpNI.js} +1 -1
  82. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  83. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  84. modoboa/frontend_dist/assets/{ParametersForm-BegEnkQM.js → ParametersForm-DFKYkPAs.js} +1 -1
  85. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  86. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  87. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  88. modoboa/frontend_dist/assets/{ProviderGeneralForm-BAELnXh6.js → ProviderGeneralForm-DO-IpJMQ.js} +1 -1
  89. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  90. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  92. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  93. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  94. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  95. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  97. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  98. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  100. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  101. modoboa/frontend_dist/assets/{VAlert-Buv8Z5G4.js → VAlert-MDbeolOo.js} +1 -1
  102. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  103. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  105. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  106. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  107. modoboa/frontend_dist/assets/{VCard-D7AwBs4w.js → VCard-CBtX8JF-.js} +1 -1
  108. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  109. modoboa/frontend_dist/assets/{VCheckboxBtn-B5evxN9K.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  110. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  111. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  112. modoboa/frontend_dist/assets/{VContainer-DY9021j4.js → VContainer-Cn-vKB3s.js} +1 -1
  113. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  114. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  116. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  118. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  119. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  120. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  121. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  122. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  123. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  125. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  127. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  128. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  129. modoboa/frontend_dist/assets/{VRow-DyK_Mj7R.js → VRow-83Qnr5iB.js} +1 -1
  130. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  131. modoboa/frontend_dist/assets/{VSelectionControl-Dkms9_P5.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  132. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  133. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  134. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  135. modoboa/frontend_dist/assets/{VTable-D8ZwwC_B.js → VTable-f7wcr2AZ.js} +1 -1
  136. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  137. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  138. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  140. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  142. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  144. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  145. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  147. modoboa/frontend_dist/assets/{accounts-BZBqbAmd.js → accounts-KUsk6LHW.js} +1 -1
  148. modoboa/frontend_dist/assets/{admin-uCrKjpln.js → admin-BW9cZW0P.js} +1 -1
  149. modoboa/frontend_dist/assets/{aliases-CFwFkX45.js → aliases-Ge0hjIsH.js} +1 -1
  150. modoboa/frontend_dist/assets/{amavis-DCy0U0TD.js → amavis-BbFeFfsk.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-B4ScfQsG.js → amavis-DtuzP_CS.js} +1 -1
  152. modoboa/frontend_dist/assets/{contacts-DKmh2q-4.js → contacts-DMJlQTe0.js} +1 -1
  153. modoboa/frontend_dist/assets/{domains-CDE4_LDF.js → domains-Du64lcXT.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains.store-a9Y5UlDV.js → domains.store-1U61jeCV.js} +1 -1
  155. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  156. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  157. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  158. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  159. modoboa/frontend_dist/assets/{index-Dwg6jPTX.js → index-Dv00bmw9.js} +1 -1
  160. modoboa/frontend_dist/assets/{index-BjibLozh.js → index-jui3edpn.js} +47 -41
  161. modoboa/frontend_dist/assets/{language.store-DGuI8jG0.js → language.store-OcfdXL_-.js} +1 -1
  162. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  163. modoboa/frontend_dist/assets/{layout-5PvsmkGR.js → layout-DOO7TRTJ.js} +1 -1
  164. modoboa/frontend_dist/assets/{layout.store-DJVcXtxk.js → layout.store-C0g-piJn.js} +1 -1
  165. modoboa/frontend_dist/assets/{logos-CMmd0hOG.js → logos-Dz2Gzei-.js} +1 -1
  166. modoboa/frontend_dist/assets/{logs-D2GOydPZ.js → logs-CLm32Weu.js} +1 -1
  167. modoboa/frontend_dist/assets/{parameters-DJdlq9sh.js → parameters-DMIAQ7cd.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters.store-DH3pPlaT.js → parameters.store-DLnFzCwV.js} +1 -1
  169. modoboa/frontend_dist/assets/{permissions-CgFJFhCp.js → permissions-CrpE0b4w.js} +1 -1
  170. modoboa/frontend_dist/assets/{ssrBoot-ChTB-PYP.js → ssrBoot-B7cr7q9U.js} +1 -1
  171. modoboa/frontend_dist/assets/{tag-CvrHE14f.js → tag-WF93n81Q.js} +1 -1
  172. modoboa/frontend_dist/assets/{theme-DFzlhSh5.js → theme-_0oOYChG.js} +1 -1
  173. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  174. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  175. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  176. modoboa/frontend_dist/index.html +2 -2
  177. modoboa/imap_migration/models.py +3 -3
  178. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  179. modoboa/imap_migration/tests.py +21 -0
  180. modoboa/lib/cryptutils.py +2 -2
  181. modoboa/lib/sysutils.py +1 -1
  182. modoboa/lib/tests/__init__.py +0 -1
  183. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  184. modoboa/locale/br/LC_MESSAGES/django.po +301 -273
  185. modoboa/locale/cs/LC_MESSAGES/django.po +286 -269
  186. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  187. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +303 -275
  188. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/de/LC_MESSAGES/django.po +297 -269
  190. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de_DE/LC_MESSAGES/django.po +303 -275
  192. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/el_GR/LC_MESSAGES/django.po +303 -275
  194. modoboa/locale/en/LC_MESSAGES/django.po +286 -269
  195. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  196. modoboa/locale/es/LC_MESSAGES/django.po +302 -274
  197. modoboa/locale/es_MX/LC_MESSAGES/django.po +286 -269
  198. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  199. modoboa/locale/fi/LC_MESSAGES/django.po +299 -271
  200. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fr/LC_MESSAGES/django.po +288 -271
  202. modoboa/locale/hu/LC_MESSAGES/django.po +286 -269
  203. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  204. modoboa/locale/it/LC_MESSAGES/django.po +303 -275
  205. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/ja_JP/LC_MESSAGES/django.po +390 -413
  207. modoboa/locale/ka/LC_MESSAGES/django.po +286 -269
  208. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  209. modoboa/locale/nl_NL/LC_MESSAGES/django.po +299 -271
  210. modoboa/locale/no/LC_MESSAGES/django.po +286 -269
  211. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  212. modoboa/locale/pl_PL/LC_MESSAGES/django.po +297 -269
  213. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pt_BR/LC_MESSAGES/django.po +298 -270
  215. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_PT/LC_MESSAGES/django.po +303 -275
  217. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/ro_RO/LC_MESSAGES/django.po +299 -271
  219. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ru/LC_MESSAGES/django.po +993 -1096
  221. modoboa/locale/si/LC_MESSAGES/django.po +286 -269
  222. modoboa/locale/sk/LC_MESSAGES/django.po +286 -269
  223. modoboa/locale/sk_SK/LC_MESSAGES/django.po +286 -269
  224. modoboa/locale/sl_SI/LC_MESSAGES/django.po +288 -269
  225. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  226. modoboa/locale/sv/LC_MESSAGES/django.po +297 -269
  227. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/tr/LC_MESSAGES/django.po +301 -272
  229. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr_TR/LC_MESSAGES/django.po +291 -269
  231. modoboa/locale/uk/LC_MESSAGES/django.po +286 -269
  232. modoboa/locale/zh/LC_MESSAGES/django.po +286 -269
  233. modoboa/locale/zh_CN/LC_MESSAGES/django.po +286 -269
  234. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  235. modoboa/locale/zh_TW/LC_MESSAGES/django.po +295 -273
  236. modoboa/maillog/jobs.py +11 -0
  237. modoboa/maillog/tests/test_views.py +5 -4
  238. modoboa/parameters/api/v2/tests.py +1 -1
  239. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  240. modoboa/policyd/tests.py +4 -2
  241. modoboa/rspamd/tests.py +20 -0
  242. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  243. modoboa/webmail/app_settings.py +37 -0
  244. modoboa/webmail/constants.py +21 -1
  245. modoboa/webmail/factories.py +19 -0
  246. modoboa/webmail/jobs.py +27 -0
  247. modoboa/webmail/lib/__init__.py +0 -2
  248. modoboa/webmail/lib/imapemail.py +9 -11
  249. modoboa/webmail/lib/imapheader.py +25 -13
  250. modoboa/webmail/lib/imaputils.py +51 -13
  251. modoboa/webmail/lib/sendmail.py +88 -105
  252. modoboa/webmail/lib/utils.py +109 -0
  253. modoboa/webmail/migrations/0001_initial.py +90 -0
  254. modoboa/webmail/migrations/__init__.py +0 -0
  255. modoboa/webmail/mocks.py +12 -3
  256. modoboa/webmail/models.py +102 -0
  257. modoboa/webmail/serializers.py +84 -4
  258. modoboa/webmail/tests/data.py +21 -0
  259. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  260. modoboa/webmail/tests/test_viewsets.py +108 -0
  261. modoboa/webmail/urls.py +5 -0
  262. modoboa/webmail/viewsets.py +39 -9
  263. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  264. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/RECORD +269 -252
  265. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  266. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  267. modoboa/core/management/commands/cleanlogs.py +0 -53
  268. modoboa/frontend_dist/assets/AccountLayout-APeC9bsN.js +0 -1
  269. modoboa/frontend_dist/assets/AccountPasswordSubForm-D4vB2yQK.js +0 -1
  270. modoboa/frontend_dist/assets/AccountView-CloBP1BY.js +0 -1
  271. modoboa/frontend_dist/assets/AddressBook-C03MXg3y.js +0 -1
  272. modoboa/frontend_dist/assets/AdminLayout-DFmyKOo6.js +0 -1
  273. modoboa/frontend_dist/assets/AlarmsView-CFhH0I5d.js +0 -1
  274. modoboa/frontend_dist/assets/AliasRecipientForm-CZ_SvjtG.js +0 -1
  275. modoboa/frontend_dist/assets/AuditTrailView-Cyq25Jle.js +0 -1
  276. modoboa/frontend_dist/assets/CalendarView-C_dSXRp9.js +0 -1
  277. modoboa/frontend_dist/assets/ChoiceField-BPhUvoyr.js +0 -1
  278. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  279. modoboa/frontend_dist/assets/ComposeEmailForm-Ns5SYs4J.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailView-DgUfiWEH.js +0 -1
  281. modoboa/frontend_dist/assets/ConfirmDialog-BMIg94-U.js +0 -1
  282. modoboa/frontend_dist/assets/ConnectedLayout-CSXdVJtV.js +0 -1
  283. modoboa/frontend_dist/assets/CreationForm-CaAZYATm.js +0 -1
  284. modoboa/frontend_dist/assets/DashboardView-DErmyUoy.js +0 -1
  285. modoboa/frontend_dist/assets/DomainsView-CC1EwRId.js +0 -1
  286. modoboa/frontend_dist/assets/EmailField-BFgga4zp.js +0 -1
  287. modoboa/frontend_dist/assets/EmailView-DPWTch_6.js +0 -1
  288. modoboa/frontend_dist/assets/EmptyLayout-DAw7fAab.js +0 -1
  289. modoboa/frontend_dist/assets/FiltersView-Cg9lkLw0.js +0 -1
  290. modoboa/frontend_dist/assets/ForwardEmailView-Dd1sxgaP.js +0 -1
  291. modoboa/frontend_dist/assets/IdentitiesView-CiHIQ9Qt.js +0 -1
  292. modoboa/frontend_dist/assets/InformationView-Cc0aBA5j.js +0 -1
  293. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  294. modoboa/frontend_dist/assets/MailboxView-DplC0IXR.js +0 -5
  295. modoboa/frontend_dist/assets/MenuItems-efx2rqwT.js +0 -1
  296. modoboa/frontend_dist/assets/MessagesView-CesYYZ9f.js +0 -1
  297. modoboa/frontend_dist/assets/MigrationsView-DSBk8T0y.js +0 -1
  298. modoboa/frontend_dist/assets/ParametersView-B8W_PAiz.js +0 -1
  299. modoboa/frontend_dist/assets/ParametersView-Dsx2M_g9.js +0 -1
  300. modoboa/frontend_dist/assets/ProviderEditView-PEAr7MA1.js +0 -1
  301. modoboa/frontend_dist/assets/ProvidersView-CHvQf3Vv.js +0 -1
  302. modoboa/frontend_dist/assets/QuarantineLayout-BWEaBK48.js +0 -1
  303. modoboa/frontend_dist/assets/QuarantineView-BzjeDhTm.js +0 -1
  304. modoboa/frontend_dist/assets/ReplyEmailView-CwQ9jsce.js +0 -1
  305. modoboa/frontend_dist/assets/ResourcesForm-noC3AXd9.js +0 -1
  306. modoboa/frontend_dist/assets/SelfServiceLayout-DQgRMu0L.js +0 -1
  307. modoboa/frontend_dist/assets/SettingsView-DJTdIeRK.css +0 -1
  308. modoboa/frontend_dist/assets/SettingsView-Dgwpfd8O.js +0 -6
  309. modoboa/frontend_dist/assets/StatisticsView-BZkVSh5o.js +0 -1
  310. modoboa/frontend_dist/assets/TimeSerieChart-BXJwhTMO.js +0 -1
  311. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  312. modoboa/frontend_dist/assets/UserLayout-CWK9ICfE.js +0 -1
  313. modoboa/frontend_dist/assets/VApp-CiIBWB_Q.js +0 -1
  314. modoboa/frontend_dist/assets/VAutocomplete-DcNqTIie.js +0 -1
  315. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  316. modoboa/frontend_dist/assets/VAvatar-BsHplcRP.js +0 -1
  317. modoboa/frontend_dist/assets/VBadge-CavP_E2g.js +0 -1
  318. modoboa/frontend_dist/assets/VCheckbox-CKW9lz5i.js +0 -1
  319. modoboa/frontend_dist/assets/VColorPicker-Bsrz8yif.js +0 -1
  320. modoboa/frontend_dist/assets/VDataTable-ocZo8ju0.js +0 -1
  321. modoboa/frontend_dist/assets/VDataTableServer-CJfpYXQW.js +0 -1
  322. modoboa/frontend_dist/assets/VDataTableVirtual-Cr8yw49k.js +0 -1
  323. modoboa/frontend_dist/assets/VDialog-CUMh3paI.js +0 -1
  324. modoboa/frontend_dist/assets/VExpansionPanels-CkwHiKsA.js +0 -1
  325. modoboa/frontend_dist/assets/VFileInput-D5qlksIG.js +0 -1
  326. modoboa/frontend_dist/assets/VForm-ClJU5x_v.js +0 -1
  327. modoboa/frontend_dist/assets/VInput-DhzSMFXh.js +0 -1
  328. modoboa/frontend_dist/assets/VMenu-B53a3gm6.js +0 -1
  329. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  330. modoboa/frontend_dist/assets/VPicker-B928ZVJQ.js +0 -1
  331. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  332. modoboa/frontend_dist/assets/VProgressCircular-viI3jDXe.js +0 -1
  333. modoboa/frontend_dist/assets/VRadioGroup-C0bqFrYg.js +0 -1
  334. modoboa/frontend_dist/assets/VSelect-y0E5_vPn.js +0 -1
  335. modoboa/frontend_dist/assets/VSheet-DQkh_hsX.js +0 -1
  336. modoboa/frontend_dist/assets/VSpacer-CBqB9uSt.js +0 -1
  337. modoboa/frontend_dist/assets/VSwitch-D4xdR9jz.js +0 -1
  338. modoboa/frontend_dist/assets/VTabs-D2c0KeF2.js +0 -1
  339. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  340. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  341. modoboa/frontend_dist/assets/VTextField-DvvH1ciR.js +0 -1
  342. modoboa/frontend_dist/assets/VTextarea-DHtXtzqP.js +0 -1
  343. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  344. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  345. modoboa/frontend_dist/assets/VToolbar-pvLQtmbU.js +0 -1
  346. modoboa/frontend_dist/assets/VWindowItem-DErNPSH8.js +0 -1
  347. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  348. modoboa/frontend_dist/assets/WebmailLayout-D7J-QJ-0.js +0 -1
  349. modoboa/frontend_dist/assets/filter-BVvMTmPG.js +0 -1
  350. modoboa/frontend_dist/assets/global.store-Bha4Z76j.js +0 -1
  351. modoboa/frontend_dist/assets/importExport-EgijWlC1.js +0 -1
  352. modoboa/frontend_dist/assets/languages-Cge6pECg.js +0 -1
  353. modoboa/frontend_dist/assets/transports-BUSYxSF4.js +0 -1
  354. modoboa/frontend_dist/assets/webmail-HVg3ZHC0.js +0 -1
  355. modoboa/frontend_dist/assets/webmail.store-D-d88s4w.js +0 -1
  356. {modoboa-2.6.5.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  357. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  358. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  359. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -26,7 +26,7 @@ msgid ""
26
26
  msgstr ""
27
27
  "Project-Id-Version: Modoboa\n"
28
28
  "Report-Msgid-Bugs-To: \n"
29
- "POT-Creation-Date: 2025-12-02 16:07+0100\n"
29
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
30
30
  "PO-Revision-Date: 2011-07-01 08:15+0000\n"
31
31
  "Last-Translator: Rafael Barretto Alves <ch3yd@hotmail.com>, "
32
32
  "2013,2015-2017,2025\n"
@@ -68,14 +68,14 @@ msgid "Cannot be greater than domain quota"
68
68
  msgstr "Não pode ser maior que a cota de domínio"
69
69
 
70
70
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
71
- #: admin/api/v2/serializers.py:570 admin/models/alias.py:45
71
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
72
72
  msgid "Permission denied."
73
73
  msgstr "Permissão negada."
74
74
 
75
75
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
76
- #: admin/api/v2/serializers.py:491 amavis/serializers.py:39
77
- #: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257
78
- #: core/api/v2/serializers.py:266 transport/backends.py:40
76
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
77
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
78
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
79
79
  msgid "This field is required"
80
80
  msgstr "Este campo é obrigatório"
81
81
 
@@ -86,7 +86,7 @@ msgstr ""
86
86
  "Lista de domínios administrados (somente revendedores e administradores de "
87
87
  "domínio)."
88
88
 
89
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552
89
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
90
90
  msgid "Not allowed for this role."
91
91
  msgstr "Não é permitido para esta função."
92
92
 
@@ -94,13 +94,12 @@ msgstr "Não é permitido para esta função."
94
94
  msgid "Must be equal to mailbox full_address"
95
95
  msgstr "Deve ser igual a full_address de caixa de correio"
96
96
 
97
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604
98
- #: calendars/serializers.py:175 calendars/serializers.py:177
99
- #: pdfcredentials/api/v2/serializers.py:91
97
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
98
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
100
99
  msgid "This field is required."
101
100
  msgstr "Este campo é obrigatório."
102
101
 
103
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621
102
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
104
103
  msgid "Local domain {} does not exist"
105
104
  msgstr "Domínio local {} não existe"
106
105
 
@@ -141,41 +140,41 @@ msgstr "Você não pode definir uma cota ilimitada."
141
140
  msgid "User '%s' already exists"
142
141
  msgstr "O usuário '%s' já existe"
143
142
 
144
- #: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261
143
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
145
144
  msgid "Must be a positive integer"
146
145
  msgstr "Deve ser um inteiro positivo"
147
146
 
148
- #: admin/api/v2/serializers.py:270
147
+ #: admin/api/v2/serializers.py:271
149
148
  msgid "openssl not found, please make sure it is installed."
150
149
  msgstr "openssl não encontrado, certifique-se que está instalado."
151
150
 
152
- #: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84
151
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
153
152
  msgid "Directory not found."
154
153
  msgstr "Diretório não encontrado."
155
154
 
156
- #: admin/api/v2/serializers.py:284
155
+ #: admin/api/v2/serializers.py:285
157
156
  msgid "This field only allows valid IP addresses (or networks)"
158
157
  msgstr "Este campo permite apenas endereços IP válidos (ou redes)"
159
158
 
160
- #: admin/api/v2/serializers.py:297
159
+ #: admin/api/v2/serializers.py:298
161
160
  msgid "Please disable imap migration before disabling this option."
162
161
  msgstr "Desative a migração imap antes de desativar esta opção."
163
162
 
164
- #: admin/api/v2/serializers.py:310
163
+ #: admin/api/v2/serializers.py:311
165
164
  msgid "Define at least one authorized network / address"
166
165
  msgstr "Defina pelo menos uma rede/endereço autorizado"
167
166
 
168
- #: admin/api/v2/serializers.py:587
167
+ #: admin/api/v2/serializers.py:588
169
168
  msgid "The left part of an email address can't be more than 64 characters."
170
169
  msgstr ""
171
170
  "A parte à esquerda de um endereço de e-mail não pode ter mais de 64 "
172
171
  "caracteres."
173
172
 
174
- #: admin/api/v2/serializers.py:609
173
+ #: admin/api/v2/serializers.py:610
175
174
  msgid "A mailbox is required to create aliases."
176
175
  msgstr "Uma caixa de correio é necessária para criar apelidos."
177
176
 
178
- #: admin/api/v2/serializers.py:782
177
+ #: admin/api/v2/serializers.py:783
179
178
  msgid "Unknown status"
180
179
  msgstr "Status desconhecido"
181
180
 
@@ -275,20 +274,30 @@ msgid "Check every domain against major DNSBL providers"
275
274
  msgstr ""
276
275
  "Verifique todos os domínios em relação aos principais provedores de DNSBL"
277
276
 
278
- #: admin/app_settings.py:116
277
+ #: admin/app_settings.py:117
278
+ msgid "Notify domain admins about DNS issues"
279
+ msgstr ""
280
+
281
+ #: admin/app_settings.py:120
282
+ msgid ""
283
+ "Send a notification by email to domain administrators when DNS issues are "
284
+ "encountered"
285
+ msgstr ""
286
+
287
+ #: admin/app_settings.py:128
279
288
  msgid "Custom DNS server"
280
289
  msgstr "Servidor de DNS personalizado"
281
290
 
282
- #: admin/app_settings.py:118
291
+ #: admin/app_settings.py:130
283
292
  msgid "Use a custom DNS server instead of local server configuration"
284
293
  msgstr ""
285
294
  "Usar um servidor DNS personalizado em vez da configuração do servidor local"
286
295
 
287
- #: admin/app_settings.py:126
296
+ #: admin/app_settings.py:138
288
297
  msgid "DKIM keys storage directory"
289
298
  msgstr "Diretório de armazenamento de chaves DKIM"
290
299
 
291
- #: admin/app_settings.py:128
300
+ #: admin/app_settings.py:140
292
301
  msgid ""
293
302
  "Absolute path of the directory where DKIM private keys will be stored. Make "
294
303
  "sure this directory belongs to root user and is not readable by the outside "
@@ -298,19 +307,19 @@ msgstr ""
298
307
  "armazenadas. Certifique-se que este diretório pertença ao usuário root e não "
299
308
  "seja legível pelo mundo exterior."
300
309
 
301
- #: admin/app_settings.py:137
310
+ #: admin/app_settings.py:149
302
311
  msgid "Default DKIM key length"
303
312
  msgstr "Comprimento padrão da chave DKIM"
304
313
 
305
- #: admin/app_settings.py:139
314
+ #: admin/app_settings.py:151
306
315
  msgid "Default length in bits for newly generated DKIM keys."
307
316
  msgstr "Comprimento padrão em bits para chaves DKIM recém-geradas."
308
317
 
309
- #: admin/app_settings.py:146
318
+ #: admin/app_settings.py:158
310
319
  msgid "Default domain quota"
311
320
  msgstr "Cota de domínio padrão"
312
321
 
313
- #: admin/app_settings.py:148
322
+ #: admin/app_settings.py:160
314
323
  msgid ""
315
324
  "Default quota (in MB) applied to freshly created domains with no value "
316
325
  "specified. A value of 0 means no quota."
@@ -318,11 +327,11 @@ msgstr ""
318
327
  "Cota padrão (em MB) aplicada para domínios recém-criados sem nenhum valor "
319
328
  "especificado. Um valor 0 significa que não há cota."
320
329
 
321
- #: admin/app_settings.py:156
330
+ #: admin/app_settings.py:168
322
331
  msgid "Default domain sending limit"
323
332
  msgstr "Limite padrão de envio de domínio"
324
333
 
325
- #: admin/app_settings.py:158
334
+ #: admin/app_settings.py:170
326
335
  msgid ""
327
336
  "Number of messages freshly created domains will be allowed to send per day. "
328
337
  "Leave empty for no limit."
@@ -330,16 +339,16 @@ msgstr ""
330
339
  "Número de mensagens que os domínios recém-criados poderão enviar por dia. "
331
340
  "Deixe vazio para ilimitado."
332
341
 
333
- #: admin/app_settings.py:170 limits/app_settings.py:61
342
+ #: admin/app_settings.py:182 limits/app_settings.py:61
334
343
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
335
344
  msgid "Mailboxes"
336
345
  msgstr "Caixas de correio"
337
346
 
338
- #: admin/app_settings.py:176
347
+ #: admin/app_settings.py:188
339
348
  msgid "Handle mailboxes on filesystem"
340
349
  msgstr "Manipular caixas de correio no sistema de arquivos"
341
350
 
342
- #: admin/app_settings.py:178
351
+ #: admin/app_settings.py:190
343
352
  msgid ""
344
353
  "Rename or remove mailboxes on the filesystem when they get renamed or "
345
354
  "removed within Modoboa"
@@ -347,11 +356,11 @@ msgstr ""
347
356
  "Renomeie ou remova caixas de correio no sistema de arquivos quando elas "
348
357
  "forem renomeadas ou removidas no Modoboa"
349
358
 
350
- #: admin/app_settings.py:186 admin/models/domain.py:36
359
+ #: admin/app_settings.py:198 admin/models/domain.py:36
351
360
  msgid "Default mailbox quota"
352
361
  msgstr "Cota de caixa de correio padrão"
353
362
 
354
- #: admin/app_settings.py:188
363
+ #: admin/app_settings.py:200
355
364
  msgid ""
356
365
  "Default mailbox quota (in MB) applied to freshly created domains with no "
357
366
  "value specified. A value of 0 means no quota."
@@ -359,11 +368,11 @@ msgstr ""
359
368
  "Cota de caixa de correio padrão (em MB) aplicada para domínios recém-criados "
360
369
  "sem nenhum valor especificado. Um valor 0 significa que não há cota."
361
370
 
362
- #: admin/app_settings.py:197
371
+ #: admin/app_settings.py:209
363
372
  msgid "Default mailbox sending limit"
364
373
  msgstr "Limite padrão de envio de caixa de correio"
365
374
 
366
- #: admin/app_settings.py:199
375
+ #: admin/app_settings.py:211
367
376
  msgid ""
368
377
  "Number of messages freshly created mailboxes will be allowed to send per "
369
378
  "day. Leave empty for no limit."
@@ -371,66 +380,66 @@ msgstr ""
371
380
  "Número de mensagens que caixas de correio recém-criadas poderão enviar por "
372
381
  "dia. Deixe vazio para ilimitado."
373
382
 
374
- #: admin/app_settings.py:207
383
+ #: admin/app_settings.py:219
375
384
  msgid "Automatic account removal"
376
385
  msgstr "Remoção automática de conta"
377
386
 
378
- #: admin/app_settings.py:209
387
+ #: admin/app_settings.py:221
379
388
  msgid "When a mailbox is removed, also remove the associated account"
380
389
  msgstr ""
381
390
  "Quando uma caixa de correio for removida, remova também a conta associada"
382
391
 
383
- #: admin/app_settings.py:218
392
+ #: admin/app_settings.py:230
384
393
  msgid "Automatic domain/mailbox creation"
385
394
  msgstr "Criação automática de domínio/caixa de correio"
386
395
 
387
- #: admin/app_settings.py:221
396
+ #: admin/app_settings.py:233
388
397
  msgid "Create a domain and a mailbox when an account is automatically created."
389
398
  msgstr ""
390
399
  "Crie um domínio e uma caixa de correio quando uma conta for criada "
391
400
  "automaticamente."
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 "Criar um apelido quando uma caixa de correio for renomeada"
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
  "Crie um apelido usando o endereço antigo quando uma caixa de correio for "
401
410
  "renomeada."
402
411
 
403
- #: admin/app_settings.py:245
412
+ #: admin/app_settings.py:257
404
413
  #, fuzzy
405
414
  #| msgid "alias"
406
415
  msgid "Aliases"
407
416
  msgstr "apelido"
408
417
 
409
- #: admin/app_settings.py:251
418
+ #: admin/app_settings.py:263
410
419
  msgid "Alias can target any domain"
411
420
  msgstr ""
412
421
 
413
- #: admin/app_settings.py:253
422
+ #: admin/app_settings.py:265
414
423
  msgid "Allow aliases to target any domain, not just the local domains."
415
424
  msgstr ""
416
425
 
417
- #: admin/app_settings.py:260
426
+ #: admin/app_settings.py:272
418
427
  msgid "Alias target block list"
419
428
  msgstr ""
420
429
 
421
- #: admin/app_settings.py:262
430
+ #: admin/app_settings.py:274
422
431
  msgid "A list of domains that aliases cannot target (comma separated)."
423
432
  msgstr ""
424
433
 
425
- #: admin/app_settings.py:270
434
+ #: admin/app_settings.py:282
426
435
  msgid "Alias target allow list"
427
436
  msgstr ""
428
437
 
429
- #: admin/app_settings.py:272
438
+ #: admin/app_settings.py:284
430
439
  msgid "A list of domains that aliases can target (comma separated)."
431
440
  msgstr ""
432
441
 
433
- #: admin/app_settings.py:326 core/api/v2/viewsets.py:174
442
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
434
443
  msgid "Administration"
435
444
  msgstr "Administração"
436
445
 
@@ -450,6 +459,35 @@ msgstr "Aberto"
450
459
  msgid "Closed"
451
460
  msgstr "Fechado"
452
461
 
462
+ #: admin/dns_checker.py:96
463
+ msgid "MX {} listed by DNSBL provider {}"
464
+ msgstr "MX {} listado pelo provedor DNSBL {}"
465
+
466
+ #: admin/dns_checker.py:138
467
+ msgid "Domain has no MX record"
468
+ msgstr "O domínio não tem registro MX"
469
+
470
+ #: admin/dns_checker.py:141
471
+ msgid "Domain {} has no MX record"
472
+ msgstr "O domínio {} não tem registro MX"
473
+
474
+ #: admin/dns_checker.py:159
475
+ msgid "Invalid MX record: {}"
476
+ msgstr "Registro MX inválido: {}"
477
+
478
+ #: admin/dns_checker.py:166
479
+ #, python-brace-format
480
+ msgid "MX record for domain {0} is invalid: {1}"
481
+ msgstr "O registro MX para {0} de domínio é inválido: {1}"
482
+
483
+ #: admin/dns_checker.py:177
484
+ msgid "[modoboa] MX issue(s) for domain {}"
485
+ msgstr "[modoboa] Problema(s) de MX para o domínio {}"
486
+
487
+ #: admin/dns_checker.py:224
488
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
489
+ msgstr "[modoboa] Problema(s) de DNSBL para o domínio {}"
490
+
453
491
  #: admin/handlers.py:179
454
492
  msgid "domain alias"
455
493
  msgstr "apelido de domínio"
@@ -472,8 +510,8 @@ msgstr "Você não tem permissão para importar domínios"
472
510
  msgid "You are not allowed to import domain aliases."
473
511
  msgstr "Você não tem permissão para importar apelidos de domínio."
474
512
 
475
- #: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
476
- #: admin/tests/test_mx.py:171
513
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
514
+ #: admin/tests/test_mx.py:157
477
515
  #, python-format
478
516
  msgid "No DNS record found for %s"
479
517
  msgstr "Nenhum registro de DNS encontrado para %s"
@@ -483,11 +521,11 @@ msgstr "Nenhum registro de DNS encontrado para %s"
483
521
  msgid "No %(type)s record for %(name)s"
484
522
  msgstr "Nenhum registro %(type)s para %(name)s"
485
523
 
486
- #: admin/lib.py:234 admin/tests/test_mx.py:156
524
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
487
525
  msgid "No working name servers found"
488
526
  msgstr "Nenhum servidor de nomes funcional encontrado"
489
527
 
490
- #: admin/lib.py:237 admin/tests/test_mx.py:160
528
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
491
529
  #, python-format
492
530
  msgid "DNS resolution timeout, unable to query %s at the moment"
493
531
  msgstr ""
@@ -544,35 +582,6 @@ msgstr "Falha ao gerar a chave privada DKIM"
544
582
  msgid "Failed to generate DKIM public key"
545
583
  msgstr "Falha ao gerar a chave pública DKIM"
546
584
 
547
- #: admin/management/commands/subcommands/_mx.py:133
548
- msgid "MX {} listed by DNSBL provider {}"
549
- msgstr "MX {} listado pelo provedor DNSBL {}"
550
-
551
- #: admin/management/commands/subcommands/_mx.py:174
552
- msgid "Domain has no MX record"
553
- msgstr "O domínio não tem registro MX"
554
-
555
- #: admin/management/commands/subcommands/_mx.py:177
556
- msgid "Domain {} has no MX record"
557
- msgstr "O domínio {} não tem registro MX"
558
-
559
- #: admin/management/commands/subcommands/_mx.py:195
560
- msgid "Invalid MX record: {}"
561
- msgstr "Registro MX inválido: {}"
562
-
563
- #: admin/management/commands/subcommands/_mx.py:202
564
- #, python-brace-format
565
- msgid "MX record for domain {0} is invalid: {1}"
566
- msgstr "O registro MX para {0} de domínio é inválido: {1}"
567
-
568
- #: admin/management/commands/subcommands/_mx.py:213
569
- msgid "[modoboa] MX issue(s) for domain {}"
570
- msgstr "[modoboa] Problema(s) de MX para o domínio {}"
571
-
572
- #: admin/management/commands/subcommands/_mx.py:269
573
- msgid "[modoboa] DNSBL issue(s) for domain {}"
574
- msgstr "[modoboa] Problema(s) de DNSBL para o domínio {}"
575
-
576
585
  #: admin/models/alias.py:43
577
586
  msgid "Domain not found."
578
587
  msgstr "Domínio não encontrado."
@@ -760,17 +769,17 @@ msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
760
769
  msgstr ""
761
770
  "O Modoboa detectou que o domínio %(domain)s não possui registro MX válido:"
762
771
 
763
- #: admin/tests/test_mx.py:155
772
+ #: admin/tests/test_mx.py:141
764
773
  #, python-format
765
774
  msgid "No MX record for %s"
766
775
  msgstr "Nenhum registro MX para %s"
767
776
 
768
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
777
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
769
778
  #, python-format
770
779
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
771
780
  msgstr "Formato de endereço IP inválido para %(domain)s; %(addr)s"
772
781
 
773
- #: admin/tests/test_mx.py:199
782
+ #: admin/tests/test_mx.py:185
774
783
  #, python-format
775
784
  msgid "No AAAA record for %s"
776
785
  msgstr "Nenhum registro AAAA para %s"
@@ -983,13 +992,13 @@ msgid ""
983
992
  "database)"
984
993
  msgstr ""
985
994
 
986
- #: amavis/app_settings.py:236 webmail/app_settings.py:118
995
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
987
996
  #, fuzzy
988
997
  #| msgid "Display details"
989
998
  msgid "Display"
990
999
  msgstr "Mostrar"
991
1000
 
992
- #: amavis/app_settings.py:243 webmail/app_settings.py:144
1001
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
993
1002
  #, fuzzy
994
1003
  #| msgid "Number of displayed items per page"
995
1004
  msgid "Number of displayed emails per page"
@@ -1276,7 +1285,7 @@ msgstr ""
1276
1285
  "Permitir aos administradores de domínio gerir calendários dos usuários "
1277
1286
  "(leitura e escrita)"
1278
1287
 
1279
- #: calendars/app_settings.py:60 core/app_settings.py:676
1288
+ #: calendars/app_settings.py:60 core/app_settings.py:664
1280
1289
  #: rspamd/app_settings.py:45
1281
1290
  msgid "Miscellaneous"
1282
1291
  msgstr "Diversos"
@@ -1296,11 +1305,11 @@ msgstr ""
1296
1305
  msgid "Calendars"
1297
1306
  msgstr "Calendários"
1298
1307
 
1299
- #: 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
1300
1309
  msgid "Server location is not set, please fix it."
1301
1310
  msgstr "Localização do servidor não informada, por favor corrija."
1302
1311
 
1303
- #: calendars/viewsets.py:197
1312
+ #: calendars/viewsets.py:199
1304
1313
  msgid "Uploaded file is too big (max: {} bytes)"
1305
1314
  msgstr "O arquivo carregado é muito grande (máx: {} bytes)"
1306
1315
 
@@ -1384,7 +1393,7 @@ msgstr ""
1384
1393
  "Falha na tentativa de edição de configurações do TFA de '%s' como usuário "
1385
1394
  "'%s'"
1386
1395
 
1387
- #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445
1396
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
1388
1397
  msgid "Invalid password"
1389
1398
  msgstr "Senha inválida"
1390
1399
 
@@ -1396,24 +1405,20 @@ msgstr "2FA não está habilitado"
1396
1405
  msgid "Local"
1397
1406
  msgstr "Local"
1398
1407
 
1399
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
1400
- msgid "User profile"
1401
- msgstr "Perfil do usuário"
1402
-
1403
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1404
- #: core/api/v2/serializers.py:228
1408
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1409
+ #: core/api/v2/serializers.py:221
1405
1410
  msgid "Invalid syntax"
1406
1411
  msgstr "Sintaxe inválida"
1407
1412
 
1408
- #: core/api/v2/serializers.py:233
1413
+ #: core/api/v2/serializers.py:226
1409
1414
  msgid "Invalid rounds number"
1410
1415
  msgstr "Número de ciclos inválido"
1411
1416
 
1412
- #: core/api/v2/serializers.py:433 core/forms.py:81
1417
+ #: core/api/v2/serializers.py:426 core/forms.py:81
1413
1418
  msgid "This code is invalid"
1414
1419
  msgstr "Este código é inválido"
1415
1420
 
1416
- #: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266
1421
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1417
1422
  msgid "Please use the following code to recover your Modoboa password: {}"
1418
1423
  msgstr ""
1419
1424
  "Por favor, use o seguinte código para recuperar sua senha do Modoboa: {}"
@@ -1441,37 +1446,37 @@ msgid "Calendar"
1441
1446
  msgstr "Calendário"
1442
1447
 
1443
1448
  #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1444
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1449
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1445
1450
  #, fuzzy
1446
1451
  #| msgid "E-mail"
1447
1452
  msgid "Webmail"
1448
1453
  msgstr "Webmail"
1449
1454
 
1450
- #: core/app_settings.py:37
1455
+ #: core/app_settings.py:25
1451
1456
  msgid "Authentication"
1452
1457
  msgstr "Autenticação"
1453
1458
 
1454
- #: core/app_settings.py:43
1459
+ #: core/app_settings.py:31
1455
1460
  msgid "Authentication type"
1456
1461
  msgstr "Tipo de autenticação"
1457
1462
 
1458
- #: core/app_settings.py:45
1463
+ #: core/app_settings.py:33
1459
1464
  msgid "The backend used for authentication"
1460
1465
  msgstr "O backend usado para autenticação"
1461
1466
 
1462
- #: core/app_settings.py:52
1467
+ #: core/app_settings.py:40
1463
1468
  msgid "Default password scheme"
1464
1469
  msgstr "Esquema padrão de senha"
1465
1470
 
1466
- #: core/app_settings.py:54
1471
+ #: core/app_settings.py:42
1467
1472
  msgid "Scheme used to crypt mailbox passwords"
1468
1473
  msgstr "Esquema usado para criptografar as senhas das caixas de correio"
1469
1474
 
1470
- #: core/app_settings.py:61
1475
+ #: core/app_settings.py:49
1471
1476
  msgid "Rounds"
1472
1477
  msgstr "Ciclos"
1473
1478
 
1474
- #: core/app_settings.py:63
1479
+ #: core/app_settings.py:51
1475
1480
  msgid ""
1476
1481
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1477
1482
  "between 1000 and 999999999, inclusive."
@@ -1479,46 +1484,46 @@ msgstr ""
1479
1484
  "Número de ciclos a ser usado (utilizado apenas por sha256crypt e "
1480
1485
  "sha512crypt). Deve estar entre 1000 e 999999999, inclusive."
1481
1486
 
1482
- #: core/app_settings.py:73
1487
+ #: core/app_settings.py:61
1483
1488
  msgid "Update password scheme at login"
1484
1489
  msgstr "Atualizar esquema de senha no login"
1485
1490
 
1486
- #: core/app_settings.py:76
1491
+ #: core/app_settings.py:64
1487
1492
  msgid "Update user password at login to use the default password scheme"
1488
1493
  msgstr ""
1489
1494
  "Atualizar senha do usuário no login para usar o esquema de senha padrão"
1490
1495
 
1491
- #: core/app_settings.py:84
1496
+ #: core/app_settings.py:72
1492
1497
  msgid "Default password"
1493
1498
  msgstr "Senha padrão"
1494
1499
 
1495
- #: core/app_settings.py:86
1500
+ #: core/app_settings.py:74
1496
1501
  msgid "Default password for automatically created accounts."
1497
1502
  msgstr "Senha padrão para contas criadas automaticamente."
1498
1503
 
1499
- #: core/app_settings.py:93
1504
+ #: core/app_settings.py:81
1500
1505
  msgid "Random password length"
1501
1506
  msgstr "Tamanho de senha aleatório"
1502
1507
 
1503
- #: core/app_settings.py:95
1508
+ #: core/app_settings.py:83
1504
1509
  msgid "Length of randomly generated passwords."
1505
1510
  msgstr "Tamanho das senhas geradas aleatoriamente."
1506
1511
 
1507
- #: core/app_settings.py:103
1512
+ #: core/app_settings.py:91
1508
1513
  msgid "Allow special characters for random password"
1509
1514
  msgstr ""
1510
1515
 
1511
- #: core/app_settings.py:106
1516
+ #: core/app_settings.py:94
1512
1517
  #, fuzzy
1513
1518
  #| msgid "Length of randomly generated passwords."
1514
1519
  msgid "Enable special characters in randomly generated passwords."
1515
1520
  msgstr "Tamanho das senhas geradas aleatoriamente."
1516
1521
 
1517
- #: core/app_settings.py:114
1522
+ #: core/app_settings.py:102
1518
1523
  msgid "Update password service URL"
1519
1524
  msgstr "Atualizar URL do serviço de senha"
1520
1525
 
1521
- #: core/app_settings.py:116
1526
+ #: core/app_settings.py:104
1522
1527
  msgid ""
1523
1528
  "The URL of an external page where users will be able to update their "
1524
1529
  "password. It applies only to non local users, ie. those automatically "
@@ -1528,105 +1533,105 @@ msgstr ""
1528
1533
  "Aplica-se apenas a usuários não locais, como por exemplo aqueles criados "
1529
1534
  "automaticamente após uma autenticação externa bem-sucedida (LDAP, SMTP)."
1530
1535
 
1531
- #: core/app_settings.py:126
1536
+ #: core/app_settings.py:114
1532
1537
  msgid "Password recovery announcement"
1533
1538
  msgstr "Anúncio de recuperação de senha"
1534
1539
 
1535
- #: core/app_settings.py:128
1540
+ #: core/app_settings.py:116
1536
1541
  msgid "A temporary message that will be displayed on the reset password page."
1537
1542
  msgstr ""
1538
1543
  "Uma mensagem temporária que será exibida na página de redefinição de senha."
1539
1544
 
1540
- #: core/app_settings.py:137
1545
+ #: core/app_settings.py:125
1541
1546
  msgid "Enable password recovery by SMS"
1542
1547
  msgstr "Ativar recuperação de senha por SMS"
1543
1548
 
1544
- #: core/app_settings.py:140
1549
+ #: core/app_settings.py:128
1545
1550
  msgid "Enable password recovery by SMS for users who filled a phone number."
1546
1551
  msgstr ""
1547
1552
  "Habilitar a recuperação de senha por SMS para usuários que preencheram um "
1548
1553
  "número de telefone."
1549
1554
 
1550
- #: core/app_settings.py:148
1555
+ #: core/app_settings.py:136
1551
1556
  msgid "SMS provider"
1552
1557
  msgstr "Provedor de SMS"
1553
1558
 
1554
- #: core/app_settings.py:151
1559
+ #: core/app_settings.py:139
1555
1560
  msgid "Choose a provider to send password recovery SMS"
1556
1561
  msgstr "Escolha um provedor para enviar SMS de recuperação de senha"
1557
1562
 
1558
- #: core/app_settings.py:163
1563
+ #: core/app_settings.py:151
1559
1564
  msgid "LDAP"
1560
1565
  msgstr "LDAP"
1561
1566
 
1562
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1567
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1563
1568
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1564
- #: webmail/app_settings.py:73
1569
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1565
1570
  msgid "Server address"
1566
1571
  msgstr "Endereço do servidor"
1567
1572
 
1568
- #: core/app_settings.py:171
1573
+ #: core/app_settings.py:159
1569
1574
  msgid "The IP address or the DNS name of the LDAP server"
1570
1575
  msgstr "O endereço IP do nome DNS do servidor LDAP"
1571
1576
 
1572
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1577
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1573
1578
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1574
- #: webmail/app_settings.py:91
1579
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1575
1580
  msgid "Server port"
1576
1581
  msgstr "Porta do servidor"
1577
1582
 
1578
- #: core/app_settings.py:180
1583
+ #: core/app_settings.py:168
1579
1584
  msgid "The TCP port number used by the LDAP server"
1580
1585
  msgstr "O número da porta TCP usada pelo servidor LDAP"
1581
1586
 
1582
- #: core/app_settings.py:188
1587
+ #: core/app_settings.py:176
1583
1588
  msgid "Enable secondary server (fallback)"
1584
1589
  msgstr "Habilitar servidor secundário (fallback)"
1585
1590
 
1586
- #: core/app_settings.py:191
1591
+ #: core/app_settings.py:179
1587
1592
  msgid ""
1588
1593
  "Enable a secondary LDAP server which will be used if the primary one fails"
1589
1594
  msgstr ""
1590
1595
  "Habilitar um servidor LDAP secundário que será usado se o primário falhar"
1591
1596
 
1592
- #: core/app_settings.py:199
1597
+ #: core/app_settings.py:187
1593
1598
  msgid "Secondary server address"
1594
1599
  msgstr "Endereço do servidor secundário"
1595
1600
 
1596
- #: core/app_settings.py:202
1601
+ #: core/app_settings.py:190
1597
1602
  msgid "The IP address or the DNS name of the seondary LDAP server"
1598
1603
  msgstr "O endereço IP ou o nome DNS do servidor LDAP secundário"
1599
1604
 
1600
- #: core/app_settings.py:209
1605
+ #: core/app_settings.py:197
1601
1606
  msgid "Secondary server port"
1602
1607
  msgstr "Porta do servidor secundário"
1603
1608
 
1604
- #: core/app_settings.py:212
1609
+ #: core/app_settings.py:200
1605
1610
  msgid "The TCP port number used by the LDAP secondary server"
1606
1611
  msgstr "O número da porta TCP usada pelo servidor secundário LDAP"
1607
1612
 
1608
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1613
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1609
1614
  #: webmail/app_settings.py:45
1610
1615
  msgid "Use a secured connection"
1611
1616
  msgstr "Usar conexão segura"
1612
1617
 
1613
- #: core/app_settings.py:221
1618
+ #: core/app_settings.py:209
1614
1619
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1615
1620
  msgstr "Usar uma conexão SSL/STARTTLS para acessar o servidor LDAP"
1616
1621
 
1617
- #: core/app_settings.py:228
1622
+ #: core/app_settings.py:216
1618
1623
  msgid "Active Directory"
1619
1624
  msgstr "Active Directory"
1620
1625
 
1621
- #: core/app_settings.py:230
1626
+ #: core/app_settings.py:218
1622
1627
  msgid "Tell if the LDAP server is an Active Directory one"
1623
1628
  msgstr "Informe se o servidor LDAP é um Active Directory"
1624
1629
 
1625
- #: core/app_settings.py:237
1630
+ #: core/app_settings.py:225
1626
1631
  msgid "Administrator groups"
1627
1632
  msgstr "Grupos de administradores"
1628
1633
 
1629
- #: core/app_settings.py:239
1634
+ #: core/app_settings.py:227
1630
1635
  msgid ""
1631
1636
  "Members of those LDAP Posix groups will be created as domain administrators. "
1632
1637
  "Use ';' characters to separate groups."
@@ -1634,47 +1639,47 @@ msgstr ""
1634
1639
  "Membros dos grupos do LDAP Posix serão criados como administradores de "
1635
1640
  "domínio. Use o caractere ';' para separar grupos."
1636
1641
 
1637
- #: core/app_settings.py:248
1642
+ #: core/app_settings.py:236
1638
1643
  msgid "Group type"
1639
1644
  msgstr "Tipo de grupo"
1640
1645
 
1641
- #: core/app_settings.py:250
1646
+ #: core/app_settings.py:238
1642
1647
  msgid "The LDAP group type to use with your directory."
1643
1648
  msgstr "O tipo de grupo LDAP para ser usado em seu diretório."
1644
1649
 
1645
- #: core/app_settings.py:257
1650
+ #: core/app_settings.py:245
1646
1651
  msgid "Groups search base"
1647
1652
  msgstr "Base de pesquisa de grupos"
1648
1653
 
1649
- #: core/app_settings.py:259
1654
+ #: core/app_settings.py:247
1650
1655
  msgid "The distinguished name of the search base used to find groups"
1651
1656
  msgstr "O nome distinto da base de pesquisa usada para encontrar grupos"
1652
1657
 
1653
- #: core/app_settings.py:267
1658
+ #: core/app_settings.py:255
1654
1659
  msgid "Password attribute"
1655
1660
  msgstr "Atributo de senha"
1656
1661
 
1657
- #: core/app_settings.py:269
1662
+ #: core/app_settings.py:257
1658
1663
  msgid "The attribute used to store user passwords"
1659
1664
  msgstr "O atributo usado para armazenar senhas de usuários"
1660
1665
 
1661
- #: core/app_settings.py:276
1666
+ #: core/app_settings.py:264
1662
1667
  msgid "LDAP authentication settings"
1663
1668
  msgstr "Configurações de autenticação LDAP"
1664
1669
 
1665
- #: core/app_settings.py:284
1670
+ #: core/app_settings.py:272
1666
1671
  msgid "Authentication method"
1667
1672
  msgstr "Método de autenticação"
1668
1673
 
1669
- #: core/app_settings.py:287
1674
+ #: core/app_settings.py:275
1670
1675
  msgid "Choose the authentication method to use"
1671
1676
  msgstr "Escolha o método de autenticação para usar"
1672
1677
 
1673
- #: core/app_settings.py:294 core/app_settings.py:357
1678
+ #: core/app_settings.py:282 core/app_settings.py:345
1674
1679
  msgid "Bind DN"
1675
1680
  msgstr "Vincular DN"
1676
1681
 
1677
- #: core/app_settings.py:296 core/app_settings.py:359
1682
+ #: core/app_settings.py:284 core/app_settings.py:347
1678
1683
  msgid ""
1679
1684
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1680
1685
  "for an anonymous bind"
@@ -1682,27 +1687,27 @@ msgstr ""
1682
1687
  "O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para "
1683
1688
  "vincular anonimamente"
1684
1689
 
1685
- #: core/app_settings.py:305 core/app_settings.py:367
1690
+ #: core/app_settings.py:293 core/app_settings.py:355
1686
1691
  msgid "Bind password"
1687
1692
  msgstr "Vincular senha"
1688
1693
 
1689
- #: core/app_settings.py:307 core/app_settings.py:369
1694
+ #: core/app_settings.py:295 core/app_settings.py:357
1690
1695
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1691
1696
  msgstr "A senha usada quando vincular ao servidor LDAP (com 'Vincular DN')"
1692
1697
 
1693
- #: core/app_settings.py:317 core/app_settings.py:422
1698
+ #: core/app_settings.py:305 core/app_settings.py:410
1694
1699
  msgid "Users search base"
1695
1700
  msgstr "Base de pesquisa de usuários"
1696
1701
 
1697
- #: core/app_settings.py:319 core/app_settings.py:424
1702
+ #: core/app_settings.py:307 core/app_settings.py:412
1698
1703
  msgid "The distinguished name of the search base used to find users"
1699
1704
  msgstr "O nome distinto da base de pesquisa usada para encontrar usuários"
1700
1705
 
1701
- #: core/app_settings.py:328 core/app_settings.py:433
1706
+ #: core/app_settings.py:316 core/app_settings.py:421
1702
1707
  msgid "Search filter"
1703
1708
  msgstr "Filtro de pesquisa"
1704
1709
 
1705
- #: core/app_settings.py:330 core/app_settings.py:435
1710
+ #: core/app_settings.py:318 core/app_settings.py:423
1706
1711
  msgid ""
1707
1712
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1708
1713
  "valid, it must be enclosed in parentheses."
@@ -1710,11 +1715,11 @@ msgstr ""
1710
1715
  "Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser "
1711
1716
  "válida, deve estar entre parênteses."
1712
1717
 
1713
- #: core/app_settings.py:339
1718
+ #: core/app_settings.py:327
1714
1719
  msgid "User DN template"
1715
1720
  msgstr "Usar template DN"
1716
1721
 
1717
- #: core/app_settings.py:341
1722
+ #: core/app_settings.py:329
1718
1723
  #, python-format
1719
1724
  msgid ""
1720
1725
  "The template used to construct a user's DN. It should contain one "
@@ -1723,26 +1728,26 @@ msgstr ""
1723
1728
  "A template usada para construir um DN de usuário. Deve conter um placeholder "
1724
1729
  "(por ex: %(user)s)"
1725
1730
 
1726
- #: core/app_settings.py:350
1731
+ #: core/app_settings.py:338
1727
1732
  msgid "LDAP synchronization settings"
1728
1733
  msgstr "Configurações de sincronização LDAP"
1729
1734
 
1730
- #: core/app_settings.py:378
1735
+ #: core/app_settings.py:366
1731
1736
  msgid "Enable export to LDAP"
1732
1737
  msgstr "Habilitar exportação para LDAP"
1733
1738
 
1734
- #: core/app_settings.py:380
1739
+ #: core/app_settings.py:368
1735
1740
  msgid ""
1736
1741
  "Enable automatic synchronization between local database and LDAP directory"
1737
1742
  msgstr ""
1738
1743
  "Ativar a sincronização automática entre o banco de dados local e o diretório "
1739
1744
  "LDAP"
1740
1745
 
1741
- #: core/app_settings.py:389
1746
+ #: core/app_settings.py:377
1742
1747
  msgid "Delete remote LDAP account when local account is deleted"
1743
1748
  msgstr "Excluir conta LDAP remota quando a conta local for excluída"
1744
1749
 
1745
- #: core/app_settings.py:392
1750
+ #: core/app_settings.py:380
1746
1751
  msgid ""
1747
1752
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1748
1753
  "be disabled."
@@ -1750,11 +1755,11 @@ msgstr ""
1750
1755
  "Exclua a conta LDAP remota quando a conta local for excluída, caso "
1751
1756
  "contrário, ela será desativada."
1752
1757
 
1753
- #: core/app_settings.py:401
1758
+ #: core/app_settings.py:389
1754
1759
  msgid "Account DN template"
1755
1760
  msgstr "Modelo de DN de conta"
1756
1761
 
1757
- #: core/app_settings.py:403
1762
+ #: core/app_settings.py:391
1758
1763
  #, python-format
1759
1764
  msgid ""
1760
1765
  "The template used to construct an account's DN. It should contain one "
@@ -1763,56 +1768,56 @@ msgstr ""
1763
1768
  "O modelo usado para construir o DN de uma conta. Ele deve conter um espaço "
1764
1769
  "reservado (ou seja. %(user)s)"
1765
1770
 
1766
- #: core/app_settings.py:412
1771
+ #: core/app_settings.py:400
1767
1772
  msgid "Enable import from LDAP"
1768
1773
  msgstr "Habilitar importação do LDAP"
1769
1774
 
1770
- #: core/app_settings.py:414
1775
+ #: core/app_settings.py:402
1771
1776
  msgid "Enable account synchronization from LDAP directory to local database"
1772
1777
  msgstr ""
1773
1778
  "Habilitar a sincronização de conta do diretório LDAP para o banco de dados "
1774
1779
  "local"
1775
1780
 
1776
- #: core/app_settings.py:444
1781
+ #: core/app_settings.py:432
1777
1782
  msgid "Username attribute"
1778
1783
  msgstr "Atributo de nome de usuário"
1779
1784
 
1780
- #: core/app_settings.py:446
1785
+ #: core/app_settings.py:434
1781
1786
  msgid "The name of the LDAP attribute where the username can be found."
1782
1787
  msgstr "O nome do atributo LDAP em que o nome de usuário pode ser encontrado."
1783
1788
 
1784
- #: core/app_settings.py:455
1789
+ #: core/app_settings.py:443
1785
1790
  msgid "Enable Dovecot LDAP sync"
1786
1791
  msgstr "Ativar sincronização LDAP do Dovecot"
1787
1792
 
1788
- #: core/app_settings.py:457
1793
+ #: core/app_settings.py:445
1789
1794
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1790
1795
  msgstr ""
1791
1796
  "As configurações de autenticação LDAP serão aplicadas à configuração do "
1792
1797
  "Dovecot."
1793
1798
 
1794
- #: core/app_settings.py:465
1799
+ #: core/app_settings.py:453
1795
1800
  msgid "Dovecot LDAP config file"
1796
1801
  msgstr "Arquivo de configuração LDAP do Dovecot"
1797
1802
 
1798
- #: core/app_settings.py:467
1803
+ #: core/app_settings.py:455
1799
1804
  msgid ""
1800
1805
  "Location of the configuration file which contains Dovecot LDAP settings."
1801
1806
  msgstr ""
1802
1807
  "Localização do arquivo de configuração que contém as configurações LDAP do "
1803
1808
  "Dovecot."
1804
1809
 
1805
- #: core/app_settings.py:480
1810
+ #: core/app_settings.py:468
1806
1811
  msgid "Dashboard"
1807
1812
  msgstr "Painel"
1808
1813
 
1809
- #: core/app_settings.py:486
1814
+ #: core/app_settings.py:474
1810
1815
  #, fuzzy
1811
1816
  #| msgid "Custom message"
1812
1817
  msgid "Custom welcome message"
1813
1818
  msgstr "Mensagem personalizada"
1814
1819
 
1815
- #: core/app_settings.py:488
1820
+ #: core/app_settings.py:476
1816
1821
  #, fuzzy
1817
1822
  #| msgid ""
1818
1823
  #| "A temporary message that will be displayed on the reset password page."
@@ -1820,17 +1825,17 @@ msgid "A welcome message that will be displayed instead the default one"
1820
1825
  msgstr ""
1821
1826
  "Uma mensagem temporária que será exibida na página de redefinição de senha."
1822
1827
 
1823
- #: core/app_settings.py:495
1828
+ #: core/app_settings.py:483
1824
1829
  msgid "Custom RSS feed"
1825
1830
  msgstr "Feed RSS personalizado"
1826
1831
 
1827
- #: core/app_settings.py:497
1832
+ #: core/app_settings.py:485
1828
1833
  msgid "Display custom RSS feed to resellers and domain administrators"
1829
1834
  msgstr ""
1830
1835
  "Mostrar um feed RSS personalizado para revendedores e administradores de "
1831
1836
  "domínio"
1832
1837
 
1833
- #: core/app_settings.py:506
1838
+ #: core/app_settings.py:494
1834
1839
  #, fuzzy
1835
1840
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1836
1841
  msgid "Display custom RSS feed to super admins"
@@ -1838,7 +1843,7 @@ msgstr ""
1838
1843
  "Mostrar um feed RSS personalizado para revendedores e administradores de "
1839
1844
  "domínio"
1840
1845
 
1841
- #: core/app_settings.py:509
1846
+ #: core/app_settings.py:497
1842
1847
  #, fuzzy
1843
1848
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1844
1849
  msgid "Display custom RSS feed also to super administrators"
@@ -1846,120 +1851,120 @@ msgstr ""
1846
1851
  "Mostrar um feed RSS personalizado para revendedores e administradores de "
1847
1852
  "domínio"
1848
1853
 
1849
- #: core/app_settings.py:517
1854
+ #: core/app_settings.py:505
1850
1855
  msgid "Hide features widget"
1851
1856
  msgstr "Ocultar widget de recursos"
1852
1857
 
1853
- #: core/app_settings.py:519
1858
+ #: core/app_settings.py:507
1854
1859
  msgid "Hide features widget for resellers and domain administrators"
1855
1860
  msgstr ""
1856
1861
  "Ocultar widget de recursos para revendedores e administradores de domínio"
1857
1862
 
1858
- #: core/app_settings.py:531
1863
+ #: core/app_settings.py:519
1859
1864
  msgid "Theme"
1860
1865
  msgstr ""
1861
1866
 
1862
- #: core/app_settings.py:537
1867
+ #: core/app_settings.py:525
1863
1868
  msgid "Primary theme color"
1864
1869
  msgstr ""
1865
1870
 
1866
- #: core/app_settings.py:539
1871
+ #: core/app_settings.py:527
1867
1872
  msgid ""
1868
1873
  "Primary color of the theme (hexadecimal code), used as the background color "
1869
1874
  "of the left menu for example"
1870
1875
  msgstr ""
1871
1876
 
1872
- #: core/app_settings.py:548
1877
+ #: core/app_settings.py:536
1873
1878
  msgid "Primary theme color (lighter version)"
1874
1879
  msgstr ""
1875
1880
 
1876
- #: core/app_settings.py:551 core/app_settings.py:563
1881
+ #: core/app_settings.py:539 core/app_settings.py:551
1877
1882
  msgid "Primary color of the theme (hexadecimal code)"
1878
1883
  msgstr ""
1879
1884
 
1880
- #: core/app_settings.py:560
1885
+ #: core/app_settings.py:548
1881
1886
  msgid "Primary theme color (darker version)"
1882
1887
  msgstr ""
1883
1888
 
1884
- #: core/app_settings.py:571
1889
+ #: core/app_settings.py:559
1885
1890
  #, fuzzy
1886
1891
  #| msgid "Secondary email"
1887
1892
  msgid "Secondary theme color"
1888
1893
  msgstr "E-mail secundário"
1889
1894
 
1890
- #: core/app_settings.py:573
1895
+ #: core/app_settings.py:561
1891
1896
  msgid ""
1892
1897
  "Secondary color of the theme (hexadecimal code), used as the background "
1893
1898
  "color of some buttons for example"
1894
1899
  msgstr ""
1895
1900
 
1896
- #: core/app_settings.py:581
1901
+ #: core/app_settings.py:569
1897
1902
  msgid "Labels theme color"
1898
1903
  msgstr ""
1899
1904
 
1900
- #: core/app_settings.py:583
1905
+ #: core/app_settings.py:571
1901
1906
  msgid "Theme color for labels (hexadecimal code)"
1902
1907
  msgstr ""
1903
1908
 
1904
- #: core/app_settings.py:595
1909
+ #: core/app_settings.py:583
1905
1910
  msgid "Notifications"
1906
1911
  msgstr "Notificações"
1907
1912
 
1908
- #: core/app_settings.py:601
1913
+ #: core/app_settings.py:589
1909
1914
  msgid "Sender address"
1910
1915
  msgstr "Endereço do remente"
1911
1916
 
1912
- #: core/app_settings.py:603
1917
+ #: core/app_settings.py:591
1913
1918
  msgid "Email address used to send notifications."
1914
1919
  msgstr "Endereço de e-mail usado para enviar notificações."
1915
1920
 
1916
- #: core/app_settings.py:614
1921
+ #: core/app_settings.py:602
1917
1922
  msgid "Public API"
1918
1923
  msgstr "API Pública"
1919
1924
 
1920
- #: core/app_settings.py:620
1925
+ #: core/app_settings.py:608
1921
1926
  msgid "Enable communication"
1922
1927
  msgstr "Habilitar comunicação"
1923
1928
 
1924
- #: core/app_settings.py:622 core/app_settings.py:632
1929
+ #: core/app_settings.py:610 core/app_settings.py:620
1925
1930
  msgid "Automatically checks if a newer version is available"
1926
1931
  msgstr "Verificar automaticamente se uma nova versão está disponível"
1927
1932
 
1928
- #: core/app_settings.py:629
1933
+ #: core/app_settings.py:617
1929
1934
  msgid "Check new versions"
1930
1935
  msgstr "Verificar novas versões"
1931
1936
 
1932
- #: core/app_settings.py:640
1937
+ #: core/app_settings.py:628
1933
1938
  msgid "Send an email when new versions are found"
1934
1939
  msgstr "Envie um e-mail quando novas versões forem encontradas"
1935
1940
 
1936
- #: core/app_settings.py:644
1941
+ #: core/app_settings.py:632
1937
1942
  msgid "Send an email to notify admins about new versions"
1938
1943
  msgstr "Envie um e-mail para notificar os administradores sobre novas versões"
1939
1944
 
1940
- #: core/app_settings.py:651 sievefilters/constants.py:25
1945
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1941
1946
  msgid "Recipient"
1942
1947
  msgstr "Destinatário"
1943
1948
 
1944
- #: core/app_settings.py:654
1949
+ #: core/app_settings.py:642
1945
1950
  msgid "Recipient of new versions notification emails."
1946
1951
  msgstr "Destinatário de e-mails de notificação de novas versões."
1947
1952
 
1948
- #: core/app_settings.py:661
1953
+ #: core/app_settings.py:649
1949
1954
  msgid "Send statistics"
1950
1955
  msgstr "Enviar estatísticas"
1951
1956
 
1952
- #: core/app_settings.py:664
1957
+ #: core/app_settings.py:652
1953
1958
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1954
1959
  msgstr ""
1955
1960
  "Enviar estatísticas à API pública do Modoboa (contadores e extensões "
1956
1961
  "utilizadas)"
1957
1962
 
1958
- #: core/app_settings.py:683
1963
+ #: core/app_settings.py:671
1959
1964
  msgid "Enable inactive account tracking"
1960
1965
  msgstr "Ativar rastreamento de conta inativa"
1961
1966
 
1962
- #: core/app_settings.py:686
1967
+ #: core/app_settings.py:674
1963
1968
  msgid ""
1964
1969
  "Allow the administrator to set a threshold (in days) beyond which an account "
1965
1970
  "is considered inactive if the user hasn't logged in"
@@ -1967,11 +1972,11 @@ msgstr ""
1967
1972
  "Permitir que o administrador defina um limite (em dias) além do qual uma "
1968
1973
  "conta é considerada inativa se o usuário não tiver feito login"
1969
1974
 
1970
- #: core/app_settings.py:695
1975
+ #: core/app_settings.py:683
1971
1976
  msgid "Inactive account threshold"
1972
1977
  msgstr "Limite de conta inativa"
1973
1978
 
1974
- #: core/app_settings.py:698
1979
+ #: core/app_settings.py:686
1975
1980
  msgid ""
1976
1981
  "An account with a last login date greater than this threshold (in days) will "
1977
1982
  "be considered as inactive"
@@ -1979,47 +1984,38 @@ msgstr ""
1979
1984
  "Uma conta com uma data de login maior que este limite (em dias) será "
1980
1985
  "considerada como inativa"
1981
1986
 
1982
- #: core/app_settings.py:707
1987
+ #: core/app_settings.py:695
1983
1988
  msgid "Top notifications check interval"
1984
1989
  msgstr "Intervalo de verificação de verificações de topo"
1985
1990
 
1986
- #: core/app_settings.py:710
1991
+ #: core/app_settings.py:698
1987
1992
  msgid "Interval between two top notification checks (in seconds)"
1988
1993
  msgstr "Intervalo entre checagem de notificações (em segundos)"
1989
1994
 
1990
- #: core/app_settings.py:717
1995
+ #: core/app_settings.py:705
1991
1996
  msgid "Maximum log record age"
1992
1997
  msgstr "Idade máxima do registro de log"
1993
1998
 
1994
- #: core/app_settings.py:719
1999
+ #: core/app_settings.py:707
1995
2000
  msgid "The maximum age in days of a log record"
1996
2001
  msgstr "A idade máxima em dias de um registro de log"
1997
2002
 
1998
- #: core/app_settings.py:727
2003
+ #: core/app_settings.py:715
1999
2004
  msgid "Retention time in message history"
2000
2005
  msgstr ""
2001
2006
 
2002
- #: core/app_settings.py:730
2007
+ #: core/app_settings.py:718
2003
2008
  msgid "Retention time (in days) of a message in the message history section"
2004
2009
  msgstr ""
2005
2010
 
2006
- #: core/app_settings.py:737
2011
+ #: core/app_settings.py:725
2007
2012
  msgid "Items per page"
2008
2013
  msgstr "Itens por página"
2009
2014
 
2010
- #: core/app_settings.py:739
2015
+ #: core/app_settings.py:727
2011
2016
  msgid "Number of displayed items per page"
2012
2017
  msgstr "Número de itens exibidos por página"
2013
2018
 
2014
- #: core/app_settings.py:746
2015
- msgid "Default top redirection"
2016
- msgstr "Redirecionamento de topo padrão"
2017
-
2018
- #: core/app_settings.py:748
2019
- msgid "The default redirection used when no application is specified"
2020
- msgstr ""
2021
- "O redirecionamento padrão usado quando nenhuma aplicação é especificada"
2022
-
2023
2019
  #: core/checks.py:15
2024
2020
  msgid ""
2025
2021
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -2364,7 +2360,7 @@ msgid "Not resolved"
2364
2360
  msgstr "Não resolvido"
2365
2361
 
2366
2362
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
2367
- #: webmail/constants.py:18
2363
+ #: webmail/constants.py:38
2368
2364
  msgid "None"
2369
2365
  msgstr "Nenhuma"
2370
2366
 
@@ -3305,7 +3301,7 @@ msgstr "é"
3305
3301
  msgid "is not"
3306
3302
  msgstr "não é"
3307
3303
 
3308
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3304
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
3309
3305
  msgid "Subject"
3310
3306
  msgstr "Assunto"
3311
3307
 
@@ -3551,25 +3547,25 @@ msgstr "Tamanho máximo de anexo em bytes (ou KB, MB, GB, se especificado)"
3551
3547
  msgid "SMTP settings"
3552
3548
  msgstr "Configurações SMTP"
3553
3549
 
3554
- #: webmail/app_settings.py:75
3550
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3555
3551
  #, fuzzy
3556
3552
  #| msgid "Address of your IMAP server"
3557
3553
  msgid "Address of your SMTP server"
3558
3554
  msgstr "Endereço do seu servidor SMTP"
3559
3555
 
3560
- #: webmail/app_settings.py:82
3556
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3561
3557
  #, fuzzy
3562
3558
  #| msgid "Use a secured connection"
3563
3559
  msgid "Secured connection mode"
3564
3560
  msgstr "Modo de conexão segura"
3565
3561
 
3566
- #: webmail/app_settings.py:84
3562
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3567
3563
  #, fuzzy
3568
3564
  #| msgid "Use a secured connection to access IMAP server"
3569
3565
  msgid "Use a secured connection to access SMTP server"
3570
3566
  msgstr "Usar uma conexão segura para acessar o servidor SMTP"
3571
3567
 
3572
- #: webmail/app_settings.py:93
3568
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3573
3569
  #, fuzzy
3574
3570
  #| msgid "Listening port of your IMAP server"
3575
3571
  msgid "Listening port of your SMTP server"
@@ -3587,107 +3583,113 @@ msgstr "Autenticação obrigatória"
3587
3583
  msgid "Server needs authentication"
3588
3584
  msgstr "Servidor precisa de autenticação"
3589
3585
 
3590
- #: webmail/app_settings.py:124
3586
+ #: webmail/app_settings.py:113
3587
+ #, fuzzy
3588
+ #| msgid "Server settings"
3589
+ msgid "Scheduling settings"
3590
+ msgstr "Configurações do servidor"
3591
+
3592
+ #: webmail/app_settings.py:161
3591
3593
  msgid "Default message display mode"
3592
3594
  msgstr "Modo de exibição padrão da mensagem"
3593
3595
 
3594
- #: webmail/app_settings.py:126
3596
+ #: webmail/app_settings.py:163
3595
3597
  #, fuzzy
3596
3598
  #| msgid "The default redirection used when no application is specified"
3597
3599
  msgid "The default mode used when displaying a message"
3598
3600
  msgstr "O modo padrão usado ao exibir uma mensagem"
3599
3601
 
3600
- #: webmail/app_settings.py:133
3602
+ #: webmail/app_settings.py:170
3601
3603
  msgid "Enable HTML links display"
3602
3604
  msgstr "Ativar exibição de links em HTML"
3603
3605
 
3604
- #: webmail/app_settings.py:136
3606
+ #: webmail/app_settings.py:173
3605
3607
  msgid "Enable/Disable HTML links display"
3606
3608
  msgstr "Ativar/Desativar exibição de links em HTML"
3607
3609
 
3608
- #: webmail/app_settings.py:147
3610
+ #: webmail/app_settings.py:184
3609
3611
  msgid "Sets the maximum number of messages displayed in a page"
3610
3612
  msgstr "Definir o número máximo de mensagens exibidas por página"
3611
3613
 
3612
- #: webmail/app_settings.py:154
3614
+ #: webmail/app_settings.py:191
3613
3615
  msgid "Listing refresh rate"
3614
3616
  msgstr "Taxa de atualização de escuta"
3615
3617
 
3616
- #: webmail/app_settings.py:156
3618
+ #: webmail/app_settings.py:193
3617
3619
  msgid "Automatic listing refresh rate (in secconds)"
3618
3620
  msgstr ""
3619
3621
 
3620
- #: webmail/app_settings.py:163
3622
+ #: webmail/app_settings.py:200
3621
3623
  msgid "Folder container's width"
3622
3624
  msgstr "Largura do contêiner da caixa de correio"
3623
3625
 
3624
- #: webmail/app_settings.py:165
3626
+ #: webmail/app_settings.py:202
3625
3627
  msgid "The width of the folder list container"
3626
3628
  msgstr "A largura do contêiner da caixa de correio"
3627
3629
 
3628
- #: webmail/app_settings.py:176
3630
+ #: webmail/app_settings.py:213
3629
3631
  msgid "Folders"
3630
3632
  msgstr ""
3631
3633
 
3632
- #: webmail/app_settings.py:182
3634
+ #: webmail/app_settings.py:219
3633
3635
  msgid "Trash folder"
3634
3636
  msgstr "Pasta para Itens Deletados"
3635
3637
 
3636
- #: webmail/app_settings.py:184
3638
+ #: webmail/app_settings.py:221
3637
3639
  msgid "Folder where deleted messages go"
3638
3640
  msgstr "Pasta que irão as mensagens deletadas"
3639
3641
 
3640
- #: webmail/app_settings.py:191
3642
+ #: webmail/app_settings.py:228
3641
3643
  msgid "Sent folder"
3642
3644
  msgstr "Pasta para Itens Recebidos"
3643
3645
 
3644
- #: webmail/app_settings.py:193
3646
+ #: webmail/app_settings.py:230
3645
3647
  msgid "Folder where copies of sent messages go"
3646
3648
  msgstr "Pasta onde irão as cópias de mensagens enviadas"
3647
3649
 
3648
- #: webmail/app_settings.py:200
3650
+ #: webmail/app_settings.py:237
3649
3651
  msgid "Drafts folder"
3650
3652
  msgstr "Pasta para Rascunhos"
3651
3653
 
3652
- #: webmail/app_settings.py:201
3654
+ #: webmail/app_settings.py:238
3653
3655
  msgid "Folder where drafts go"
3654
3656
  msgstr "Pasta onde irão os rascunhos"
3655
3657
 
3656
- #: webmail/app_settings.py:207
3658
+ #: webmail/app_settings.py:244
3657
3659
  #, fuzzy
3658
3660
  #| msgid "Sent folder"
3659
3661
  msgid "Junk folder"
3660
3662
  msgstr "Pasta para Itens Recebidos"
3661
3663
 
3662
- #: webmail/app_settings.py:209
3664
+ #: webmail/app_settings.py:246
3663
3665
  #, fuzzy
3664
3666
  #| msgid "Folder where deleted messages go"
3665
3667
  msgid "Folder where junk messages should go"
3666
3668
  msgstr "Pasta que irão as mensagens deletadas"
3667
3669
 
3668
- #: webmail/app_settings.py:220
3670
+ #: webmail/app_settings.py:257
3669
3671
  #, fuzzy
3670
3672
  #| msgid "sent messages"
3671
3673
  msgid "Composing messages"
3672
3674
  msgstr "Compondo mensagens"
3673
3675
 
3674
- #: webmail/app_settings.py:226
3676
+ #: webmail/app_settings.py:263
3675
3677
  #, fuzzy
3676
3678
  #| msgid "Default top redirection"
3677
3679
  msgid "Default editor"
3678
3680
  msgstr "Editor padrão"
3679
3681
 
3680
- #: webmail/app_settings.py:228
3682
+ #: webmail/app_settings.py:265
3681
3683
  #, fuzzy
3682
3684
  #| msgid "The default redirection used when no application is specified"
3683
3685
  msgid "The default editor to use when composing a message"
3684
3686
  msgstr "O editor padrão para usar ao escrever uma mensagem"
3685
3687
 
3686
- #: webmail/app_settings.py:235
3688
+ #: webmail/app_settings.py:272
3687
3689
  msgid "Signature text"
3688
3690
  msgstr "Texto da assinatura"
3689
3691
 
3690
- #: webmail/app_settings.py:237
3692
+ #: webmail/app_settings.py:274
3691
3693
  msgid "User defined email signature"
3692
3694
  msgstr "Assinatura de e-mail definida pelo usuário"
3693
3695
 
@@ -3703,51 +3705,77 @@ msgstr "Endereço do servidor"
3703
3705
  msgid "Failed to remove attachment: "
3704
3706
  msgstr "Falha ao remover anexo:"
3705
3707
 
3706
- #: webmail/lib/imapemail.py:272
3708
+ #: webmail/lib/imapemail.py:270
3707
3709
  msgid "wrote:"
3708
3710
  msgstr ""
3709
3711
 
3710
- #: webmail/lib/imapemail.py:306
3712
+ #: webmail/lib/imapemail.py:304
3711
3713
  msgid "Date"
3712
3714
  msgstr "Data"
3713
3715
 
3714
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3716
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3715
3717
  #, fuzzy
3716
3718
  #| msgid "All messages"
3717
3719
  msgid "Original message"
3718
3720
  msgstr "Todas as mensagens"
3719
3721
 
3720
- #: webmail/lib/imaputils.py:221
3722
+ #: webmail/lib/imaputils.py:222
3721
3723
  msgid "Failed to retrieve hierarchy delimiter"
3722
3724
  msgstr "Falha ao recuperar o delimitador de hierarquia"
3723
3725
 
3724
- #: webmail/lib/imaputils.py:472
3726
+ #: webmail/lib/imaputils.py:478
3725
3727
  msgid "Inbox"
3726
3728
  msgstr ""
3727
3729
 
3728
- #: webmail/lib/imaputils.py:476
3730
+ #: webmail/lib/imaputils.py:482
3729
3731
  #, fuzzy
3730
3732
  #| msgid "Drafts folder"
3731
3733
  msgid "Drafts"
3732
3734
  msgstr "Pasta para Rascunhos"
3733
3735
 
3734
- #: webmail/lib/imaputils.py:481
3736
+ #: webmail/lib/imaputils.py:487
3735
3737
  msgid "Junk"
3736
3738
  msgstr ""
3737
3739
 
3738
- #: webmail/lib/imaputils.py:486
3740
+ #: webmail/lib/imaputils.py:492
3739
3741
  msgid "Sent"
3740
3742
  msgstr ""
3741
3743
 
3742
- #: webmail/lib/imaputils.py:491
3744
+ #: webmail/lib/imaputils.py:500
3745
+ msgid "Scheduled"
3746
+ msgstr ""
3747
+
3748
+ #: webmail/lib/imaputils.py:507
3743
3749
  msgid "Trash"
3744
3750
  msgstr ""
3745
3751
 
3746
- #: webmail/viewsets.py:357
3752
+ #: webmail/serializers.py:220
3753
+ msgid "Moving scheduled messages is forbidden"
3754
+ msgstr ""
3755
+
3756
+ #: webmail/serializers.py:253
3757
+ msgid "Only datetime in the future is allowed"
3758
+ msgstr ""
3759
+
3760
+ #: webmail/serializers.py:258
3761
+ msgid "Provived datetime must be one minute in the future at least"
3762
+ msgstr ""
3763
+
3764
+ #: webmail/viewsets.py:359
3747
3765
  #, python-format
3748
3766
  msgid "Attachment is too big (limit: %s)"
3749
3767
  msgstr "Anexo muito grande (limite: %s)"
3750
3768
 
3769
+ #~ msgid "User profile"
3770
+ #~ msgstr "Perfil do usuário"
3771
+
3772
+ #~ msgid "Default top redirection"
3773
+ #~ msgstr "Redirecionamento de topo padrão"
3774
+
3775
+ #~ msgid "The default redirection used when no application is specified"
3776
+ #~ msgstr ""
3777
+ #~ "O redirecionamento padrão usado quando nenhuma aplicação é especificada"
3778
+
3751
3779
  #~ msgid "No alarm ID provided"
3752
3780
  #~ msgstr "Nenhum ID de alarme fornecido"
3753
3781