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
@@ -9,7 +9,7 @@ msgid ""
9
9
  msgstr ""
10
10
  "Project-Id-Version: Modoboa\n"
11
11
  "Report-Msgid-Bugs-To: \n"
12
- "POT-Creation-Date: 2025-12-02 16:07+0100\n"
12
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
13
13
  "PO-Revision-Date: 2020-05-06 11:16+0000\n"
14
14
  "Last-Translator: Antoine Nguyen <tonio@ngyn.org>\n"
15
15
  "Language-Team: Breton (http://www.transifex.com/tonio/modoboa/language/br/)\n"
@@ -51,14 +51,14 @@ msgid "Cannot be greater than domain quota"
51
51
  msgstr "N'hall ket bezañ brasoc'h evit kota an domani"
52
52
 
53
53
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
54
- #: admin/api/v2/serializers.py:570 admin/models/alias.py:45
54
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
55
55
  msgid "Permission denied."
56
56
  msgstr "Aotreadur nac'het"
57
57
 
58
58
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
59
- #: admin/api/v2/serializers.py:491 amavis/serializers.py:39
60
- #: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257
61
- #: core/api/v2/serializers.py:266 transport/backends.py:40
59
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
60
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
61
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
62
62
  msgid "This field is required"
63
63
  msgstr "Rekis eo leuniañ ar vaezienn"
64
64
 
@@ -67,7 +67,7 @@ msgid ""
67
67
  "List of administered domains (resellers and domain administrators only)."
68
68
  msgstr "Listenn domanioù meret (eilgwerzherien ha merourien zomani hepken)."
69
69
 
70
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552
70
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
71
71
  msgid "Not allowed for this role."
72
72
  msgstr "Neket aotreet evit ar rol-mañ."
73
73
 
@@ -75,13 +75,12 @@ msgstr "Neket aotreet evit ar rol-mañ."
75
75
  msgid "Must be equal to mailbox full_address"
76
76
  msgstr "Rankout a ra bezañ par ouzh boest-postell chomlec'h_klok"
77
77
 
78
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604
79
- #: calendars/serializers.py:175 calendars/serializers.py:177
80
- #: pdfcredentials/api/v2/serializers.py:91
78
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
79
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
81
80
  msgid "This field is required."
82
81
  msgstr "Ar vaezienn-mañ a zo rekiset."
83
82
 
84
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621
83
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
85
84
  msgid "Local domain {} does not exist"
86
85
  msgstr "N'eus ket eus an domani lec'hel {}"
87
86
 
@@ -124,41 +123,41 @@ msgstr "N'hallit ket termeniñ ur c'hota divevenn"
124
123
  msgid "User '%s' already exists"
125
124
  msgstr "An implijer \"%s\" a zo anezhañ endeo"
126
125
 
127
- #: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261
126
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
128
127
  msgid "Must be a positive integer"
129
128
  msgstr "Rankout a ra bezañ un anterin pozitivel"
130
129
 
131
- #: admin/api/v2/serializers.py:270
130
+ #: admin/api/v2/serializers.py:271
132
131
  msgid "openssl not found, please make sure it is installed."
133
132
  msgstr "n'heller ket kavout openssl, bezit asur emañ staliet."
134
133
 
135
- #: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84
134
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
136
135
  msgid "Directory not found."
137
136
  msgstr "Neket bet kavet an domani."
138
137
 
139
- #: admin/api/v2/serializers.py:284
138
+ #: admin/api/v2/serializers.py:285
140
139
  msgid "This field only allows valid IP addresses (or networks)"
141
140
  msgstr ""
142
141
 
143
- #: admin/api/v2/serializers.py:297
142
+ #: admin/api/v2/serializers.py:298
144
143
  msgid "Please disable imap migration before disabling this option."
145
144
  msgstr ""
146
145
 
147
- #: admin/api/v2/serializers.py:310
146
+ #: admin/api/v2/serializers.py:311
148
147
  msgid "Define at least one authorized network / address"
149
148
  msgstr "Termeniñ da vihanañ ur rouedad / chomlec'h aotreet"
150
149
 
151
- #: admin/api/v2/serializers.py:587
150
+ #: admin/api/v2/serializers.py:588
152
151
  msgid "The left part of an email address can't be more than 64 characters."
153
152
  msgstr ""
154
153
 
155
- #: admin/api/v2/serializers.py:609
154
+ #: admin/api/v2/serializers.py:610
156
155
  #, fuzzy
157
156
  #| msgid "A mailbox is required"
158
157
  msgid "A mailbox is required to create aliases."
159
158
  msgstr "Ur voest-posteloù a zo rekiset"
160
159
 
161
- #: admin/api/v2/serializers.py:782
160
+ #: admin/api/v2/serializers.py:783
162
161
  #, fuzzy
163
162
  #| msgid "Unknown"
164
163
  msgid "Unknown status"
@@ -275,19 +274,29 @@ msgstr "Enaouiñ ar gwiriañ DNSBL"
275
274
  msgid "Check every domain against major DNSBL providers"
276
275
  msgstr "Gwiriañ a ra kement domani ouzh ar bourvezerien DNSBL pennañ"
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 "Servijer DNS personnel"
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 "Implijit ur servijer DNS e-plas ur c'hefluniadur servijer lec'hel"
285
294
 
286
- #: admin/app_settings.py:126
295
+ #: admin/app_settings.py:138
287
296
  msgid "DKIM keys storage directory"
288
297
  msgstr "Kavlec'h stokiñ an alc'hwezioù DKIM"
289
298
 
290
- #: admin/app_settings.py:128
299
+ #: admin/app_settings.py:140
291
300
  msgid ""
292
301
  "Absolute path of the directory where DKIM private keys will be stored. Make "
293
302
  "sure this directory belongs to root user and is not readable by the outside "
@@ -297,19 +306,19 @@ msgstr ""
297
306
  "e vez perc'hennet ar c'havlec'h-mañ gant an implijer gwrizienn ha n'hall ket "
298
307
  "bezañ lennet gant an dud diavaez."
299
308
 
300
- #: admin/app_settings.py:137
309
+ #: admin/app_settings.py:149
301
310
  msgid "Default DKIM key length"
302
311
  msgstr "Ment dre-ziouer un alc'hwez DKIM"
303
312
 
304
- #: admin/app_settings.py:139
313
+ #: admin/app_settings.py:151
305
314
  msgid "Default length in bits for newly generated DKIM keys."
306
315
  msgstr "Ment dre-ziouer en oktedoù an alc'hwezioù DKIM ganet."
307
316
 
308
- #: admin/app_settings.py:146
317
+ #: admin/app_settings.py:158
309
318
  msgid "Default domain quota"
310
319
  msgstr "Kota domani dre-ziouer"
311
320
 
312
- #: admin/app_settings.py:148
321
+ #: admin/app_settings.py:160
313
322
  msgid ""
314
323
  "Default quota (in MB) applied to freshly created domains with no value "
315
324
  "specified. A value of 0 means no quota."
@@ -317,28 +326,28 @@ msgstr ""
317
326
  "Kota dre-ziouer (e Mo) arloet d'an domanioù krouet hep talvoudegezh spisaet. "
318
327
  "Un dalvoudegezh 0 a dalvez n'eus kota ebet."
319
328
 
320
- #: admin/app_settings.py:156
329
+ #: admin/app_settings.py:168
321
330
  #, fuzzy
322
331
  #| msgid "Default domain quota"
323
332
  msgid "Default domain sending limit"
324
333
  msgstr "Kota domani dre-ziouer"
325
334
 
326
- #: admin/app_settings.py:158
335
+ #: admin/app_settings.py:170
327
336
  msgid ""
328
337
  "Number of messages freshly created domains will be allowed to send per day. "
329
338
  "Leave empty for no limit."
330
339
  msgstr ""
331
340
 
332
- #: admin/app_settings.py:170 limits/app_settings.py:61
341
+ #: admin/app_settings.py:182 limits/app_settings.py:61
333
342
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
334
343
  msgid "Mailboxes"
335
344
  msgstr "Boest-posteloù"
336
345
 
337
- #: admin/app_settings.py:176
346
+ #: admin/app_settings.py:188
338
347
  msgid "Handle mailboxes on filesystem"
339
348
  msgstr "Merañ ar voest-posteloù war restr-sistem"
340
349
 
341
- #: admin/app_settings.py:178
350
+ #: admin/app_settings.py:190
342
351
  msgid ""
343
352
  "Rename or remove mailboxes on the filesystem when they get renamed or "
344
353
  "removed within Modoboa"
@@ -346,11 +355,11 @@ msgstr ""
346
355
  "Adenvel pe zilemel boest-posteloù war ar restr-sistem pa vezont adanvet pe "
347
356
  "dilamet diwar Modoboa"
348
357
 
349
- #: admin/app_settings.py:186 admin/models/domain.py:36
358
+ #: admin/app_settings.py:198 admin/models/domain.py:36
350
359
  msgid "Default mailbox quota"
351
360
  msgstr "Kota boest-posteloù dre-ziouer"
352
361
 
353
- #: admin/app_settings.py:188
362
+ #: admin/app_settings.py:200
354
363
  #, fuzzy
355
364
  #| msgid ""
356
365
  #| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -362,75 +371,75 @@ msgstr ""
362
371
  "Kota dre-ziouer (e Mo) arloet d'ar voest-posteloù krouet hep talvoudegezh "
363
372
  "spisaet. Un dalvoudegezh 0 a dalvez n'eus kota ebet."
364
373
 
365
- #: admin/app_settings.py:197
374
+ #: admin/app_settings.py:209
366
375
  #, fuzzy
367
376
  #| msgid "Default mailbox quota"
368
377
  msgid "Default mailbox sending limit"
369
378
  msgstr "Kota boest-posteloù dre-ziouer"
370
379
 
371
- #: admin/app_settings.py:199
380
+ #: admin/app_settings.py:211
372
381
  msgid ""
373
382
  "Number of messages freshly created mailboxes will be allowed to send per "
374
383
  "day. Leave empty for no limit."
375
384
  msgstr ""
376
385
 
377
- #: admin/app_settings.py:207
386
+ #: admin/app_settings.py:219
378
387
  msgid "Automatic account removal"
379
388
  msgstr "Em-dilamadur kont"
380
389
 
381
- #: admin/app_settings.py:209
390
+ #: admin/app_settings.py:221
382
391
  msgid "When a mailbox is removed, also remove the associated account"
383
392
  msgstr "Pa vez dilamet ur voest-posteloù, dilamit ur gont kevelet."
384
393
 
385
- #: admin/app_settings.py:218
394
+ #: admin/app_settings.py:230
386
395
  msgid "Automatic domain/mailbox creation"
387
396
  msgstr "Em-grouidigezh domani/boest-postel"
388
397
 
389
- #: admin/app_settings.py:221
398
+ #: admin/app_settings.py:233
390
399
  msgid "Create a domain and a mailbox when an account is automatically created."
391
400
  msgstr "Krouit un domani hag ur voest-posteloù pa vez em-grouet ur gont."
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 "Krouiñ un alias pa vez adanvet ur voest-posteloù"
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
  "Krouiñ un alias en ur implijout ar chomlec'h pa vez adanvet ar voest-"
401
410
  "posteloù."
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 "alias"
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 "Melestradurezh"
436
445
 
@@ -452,6 +461,39 @@ msgstr ""
452
461
  msgid "Closed"
453
462
  msgstr "Serriñ"
454
463
 
464
+ #: admin/dns_checker.py:96
465
+ msgid "MX {} listed by DNSBL provider {}"
466
+ msgstr ""
467
+
468
+ #: admin/dns_checker.py:138
469
+ #, fuzzy
470
+ #| msgid "Domain {} has no MX record"
471
+ msgid "Domain has no MX record"
472
+ msgstr "An domani {} n'eus enrolladenn MX ebet gantañ"
473
+
474
+ #: admin/dns_checker.py:141
475
+ msgid "Domain {} has no MX record"
476
+ msgstr "An domani {} n'eus enrolladenn MX ebet gantañ"
477
+
478
+ #: admin/dns_checker.py:159
479
+ #, fuzzy
480
+ #| msgid "MX records of {}"
481
+ msgid "Invalid MX record: {}"
482
+ msgstr "Enrolladennoù MX eus {}"
483
+
484
+ #: admin/dns_checker.py:166
485
+ #, python-brace-format
486
+ msgid "MX record for domain {0} is invalid: {1}"
487
+ msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}"
488
+
489
+ #: admin/dns_checker.py:177
490
+ msgid "[modoboa] MX issue(s) for domain {}"
491
+ msgstr "[modoboa] kudenn(où) MX evit an domani {}"
492
+
493
+ #: admin/dns_checker.py:224
494
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
495
+ msgstr "[modoboa] Kudenn(où) DNSBL gant an domani {}"
496
+
455
497
  #: admin/handlers.py:179
456
498
  msgid "domain alias"
457
499
  msgstr "alias an domani"
@@ -474,8 +516,8 @@ msgstr "N'hoc'h ket aotreet da emporzhiañ domanioù"
474
516
  msgid "You are not allowed to import domain aliases."
475
517
  msgstr "N'hoc'h ket aotreet da emporzhiañ aliasoù domani."
476
518
 
477
- #: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
478
- #: admin/tests/test_mx.py:171
519
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
520
+ #: admin/tests/test_mx.py:157
479
521
  #, fuzzy, python-format
480
522
  #| msgid "No DNS records found for %s"
481
523
  msgid "No DNS record found for %s"
@@ -487,11 +529,11 @@ msgstr "Enrolladenn DNS ebet kavet evit %s"
487
529
  msgid "No %(type)s record for %(name)s"
488
530
  msgstr "Enrolladenn MX ebet evit %s"
489
531
 
490
- #: admin/lib.py:234 admin/tests/test_mx.py:156
532
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
491
533
  msgid "No working name servers found"
492
534
  msgstr "N'eus bet kavet anv servijer ebet hag az afe en-dro"
493
535
 
494
- #: admin/lib.py:237 admin/tests/test_mx.py:160
536
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
495
537
  #, python-format
496
538
  msgid "DNS resolution timeout, unable to query %s at the moment"
497
539
  msgstr ""
@@ -548,39 +590,6 @@ msgstr ""
548
590
  msgid "Failed to generate DKIM public key"
549
591
  msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa "
550
592
 
551
- #: admin/management/commands/subcommands/_mx.py:133
552
- msgid "MX {} listed by DNSBL provider {}"
553
- msgstr ""
554
-
555
- #: admin/management/commands/subcommands/_mx.py:174
556
- #, fuzzy
557
- #| msgid "Domain {} has no MX record"
558
- msgid "Domain has no MX record"
559
- msgstr "An domani {} n'eus enrolladenn MX ebet gantañ"
560
-
561
- #: admin/management/commands/subcommands/_mx.py:177
562
- msgid "Domain {} has no MX record"
563
- msgstr "An domani {} n'eus enrolladenn MX ebet gantañ"
564
-
565
- #: admin/management/commands/subcommands/_mx.py:195
566
- #, fuzzy
567
- #| msgid "MX records of {}"
568
- msgid "Invalid MX record: {}"
569
- msgstr "Enrolladennoù MX eus {}"
570
-
571
- #: admin/management/commands/subcommands/_mx.py:202
572
- #, python-brace-format
573
- msgid "MX record for domain {0} is invalid: {1}"
574
- msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}"
575
-
576
- #: admin/management/commands/subcommands/_mx.py:213
577
- msgid "[modoboa] MX issue(s) for domain {}"
578
- msgstr "[modoboa] kudenn(où) MX evit an domani {}"
579
-
580
- #: admin/management/commands/subcommands/_mx.py:269
581
- msgid "[modoboa] DNSBL issue(s) for domain {}"
582
- msgstr "[modoboa] Kudenn(où) DNSBL gant an domani {}"
583
-
584
593
  #: admin/models/alias.py:43
585
594
  msgid "Domain not found."
586
595
  msgstr "Neket bet kavet an domani."
@@ -783,17 +792,17 @@ msgstr ""
783
792
  "Modoboa a zo bet diguzhet gantañ ne oa tamm enrolladenn MX reizh gant an "
784
793
  "domani %(domain)s:"
785
794
 
786
- #: admin/tests/test_mx.py:155
795
+ #: admin/tests/test_mx.py:141
787
796
  #, python-format
788
797
  msgid "No MX record for %s"
789
798
  msgstr "Enrolladenn MX ebet evit %s"
790
799
 
791
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
800
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
792
801
  #, python-format
793
802
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
794
803
  msgstr "Stumm chomlec'h IP direizh evit %(domain)s; %(addr)s"
795
804
 
796
- #: admin/tests/test_mx.py:199
805
+ #: admin/tests/test_mx.py:185
797
806
  #, fuzzy, python-format
798
807
  #| msgid "No MX record for %s"
799
808
  msgid "No AAAA record for %s"
@@ -998,13 +1007,13 @@ msgid ""
998
1007
  "database)"
999
1008
  msgstr ""
1000
1009
 
1001
- #: amavis/app_settings.py:236 webmail/app_settings.py:118
1010
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
1002
1011
  #, fuzzy
1003
1012
  #| msgid "Display details"
1004
1013
  msgid "Display"
1005
1014
  msgstr "Diskouez ar munudoù"
1006
1015
 
1007
- #: amavis/app_settings.py:243 webmail/app_settings.py:144
1016
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
1008
1017
  #, fuzzy
1009
1018
  #| msgid "Number of displayed items per page"
1010
1019
  msgid "Number of displayed emails per page"
@@ -1288,7 +1297,7 @@ msgstr "Merour an domani"
1288
1297
  msgid "Allow domain administrators to manage user calendars (read and write)"
1289
1298
  msgstr "Aotren an implijer-mañ da vont e boestoù-post an implijerien"
1290
1299
 
1291
- #: calendars/app_settings.py:60 core/app_settings.py:676
1300
+ #: calendars/app_settings.py:60 core/app_settings.py:664
1292
1301
  #: rspamd/app_settings.py:45
1293
1302
  msgid "Miscellaneous"
1294
1303
  msgstr "A-bep seurt"
@@ -1306,11 +1315,11 @@ msgstr ""
1306
1315
  msgid "Calendars"
1307
1316
  msgstr ""
1308
1317
 
1309
- #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
1318
+ #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
1310
1319
  msgid "Server location is not set, please fix it."
1311
1320
  msgstr "Neket termenet lec'hiadur ho servijer, reizhit an dra-se mar plij."
1312
1321
 
1313
- #: calendars/viewsets.py:197
1322
+ #: calendars/viewsets.py:199
1314
1323
  msgid "Uploaded file is too big (max: {} bytes)"
1315
1324
  msgstr ""
1316
1325
 
@@ -1397,7 +1406,7 @@ msgstr ""
1397
1406
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
1398
1407
  msgstr ""
1399
1408
 
1400
- #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445
1409
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
1401
1410
  #, fuzzy
1402
1411
  #| msgid "Old password"
1403
1412
  msgid "Invalid password"
@@ -1411,24 +1420,20 @@ msgstr ""
1411
1420
  msgid "Local"
1412
1421
  msgstr "Lec'hel"
1413
1422
 
1414
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
1415
- msgid "User profile"
1416
- msgstr "Profil implijer"
1417
-
1418
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1419
- #: core/api/v2/serializers.py:228
1423
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1424
+ #: core/api/v2/serializers.py:221
1420
1425
  msgid "Invalid syntax"
1421
1426
  msgstr "Sintaks direizh"
1422
1427
 
1423
- #: core/api/v2/serializers.py:233
1428
+ #: core/api/v2/serializers.py:226
1424
1429
  msgid "Invalid rounds number"
1425
1430
  msgstr "Niveroù ront direizh"
1426
1431
 
1427
- #: core/api/v2/serializers.py:433 core/forms.py:81
1432
+ #: core/api/v2/serializers.py:426 core/forms.py:81
1428
1433
  msgid "This code is invalid"
1429
1434
  msgstr ""
1430
1435
 
1431
- #: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266
1436
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1432
1437
  msgid "Please use the following code to recover your Modoboa password: {}"
1433
1438
  msgstr ""
1434
1439
 
@@ -1459,37 +1464,37 @@ msgid "Calendar"
1459
1464
  msgstr ""
1460
1465
 
1461
1466
  #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1462
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1467
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1463
1468
  #, fuzzy
1464
1469
  #| msgid "E-mail"
1465
1470
  msgid "Webmail"
1466
1471
  msgstr "Postel"
1467
1472
 
1468
- #: core/app_settings.py:37
1473
+ #: core/app_settings.py:25
1469
1474
  msgid "Authentication"
1470
1475
  msgstr "O vezañ anavezet"
1471
1476
 
1472
- #: core/app_settings.py:43
1477
+ #: core/app_settings.py:31
1473
1478
  msgid "Authentication type"
1474
1479
  msgstr "Doare anavezadur"
1475
1480
 
1476
- #: core/app_settings.py:45
1481
+ #: core/app_settings.py:33
1477
1482
  msgid "The backend used for authentication"
1478
1483
  msgstr "Drekleur implijet evit bezañ anavezet"
1479
1484
 
1480
- #: core/app_settings.py:52
1485
+ #: core/app_settings.py:40
1481
1486
  msgid "Default password scheme"
1482
1487
  msgstr "Ger-tremen dre ziouer ar brastres"
1483
1488
 
1484
- #: core/app_settings.py:54
1489
+ #: core/app_settings.py:42
1485
1490
  msgid "Scheme used to crypt mailbox passwords"
1486
1491
  msgstr "Brastres implijet evit enrinegañ gerioù-tremen ar postelerezh"
1487
1492
 
1488
- #: core/app_settings.py:61
1493
+ #: core/app_settings.py:49
1489
1494
  msgid "Rounds"
1490
1495
  msgstr "Troiadoù"
1491
1496
 
1492
- #: core/app_settings.py:63
1497
+ #: core/app_settings.py:51
1493
1498
  msgid ""
1494
1499
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1495
1500
  "between 1000 and 999999999, inclusive."
@@ -1497,149 +1502,149 @@ msgstr ""
1497
1502
  "Niver a droiadoù d'ober ganto (implijet gant sha256crypt ha sha512crypt "
1498
1503
  "hepken). Bez' e rank bezañ etre 1000 ha 999999999, e-barzh."
1499
1504
 
1500
- #: core/app_settings.py:73
1505
+ #: core/app_settings.py:61
1501
1506
  msgid "Update password scheme at login"
1502
1507
  msgstr ""
1503
1508
 
1504
- #: core/app_settings.py:76
1509
+ #: core/app_settings.py:64
1505
1510
  msgid "Update user password at login to use the default password scheme"
1506
1511
  msgstr ""
1507
1512
  "Hizivait ger-tremen an implijer d'ar mare kevreaén evit implijout ar "
1508
1513
  "brastres ger-tremen dre-ziouer"
1509
1514
 
1510
- #: core/app_settings.py:84
1515
+ #: core/app_settings.py:72
1511
1516
  msgid "Default password"
1512
1517
  msgstr "Ger-tremen dre-ziouer"
1513
1518
 
1514
- #: core/app_settings.py:86
1519
+ #: core/app_settings.py:74
1515
1520
  msgid "Default password for automatically created accounts."
1516
1521
  msgstr "Ger-tremen dre-ziouer evit ar gontoù em-grouet."
1517
1522
 
1518
- #: core/app_settings.py:93
1523
+ #: core/app_settings.py:81
1519
1524
  msgid "Random password length"
1520
1525
  msgstr "Hirder dre-zegouezh ger-tremen"
1521
1526
 
1522
- #: core/app_settings.py:95
1527
+ #: core/app_settings.py:83
1523
1528
  msgid "Length of randomly generated passwords."
1524
1529
  msgstr "Hirder ar gerioù-tremen em-c'hanet."
1525
1530
 
1526
- #: core/app_settings.py:103
1531
+ #: core/app_settings.py:91
1527
1532
  msgid "Allow special characters for random password"
1528
1533
  msgstr ""
1529
1534
 
1530
- #: core/app_settings.py:106
1535
+ #: core/app_settings.py:94
1531
1536
  #, fuzzy
1532
1537
  #| msgid "Length of randomly generated passwords."
1533
1538
  msgid "Enable special characters in randomly generated passwords."
1534
1539
  msgstr "Hirder ar gerioù-tremen em-c'hanet."
1535
1540
 
1536
- #: core/app_settings.py:114
1541
+ #: core/app_settings.py:102
1537
1542
  msgid "Update password service URL"
1538
1543
  msgstr ""
1539
1544
 
1540
- #: core/app_settings.py:116
1545
+ #: core/app_settings.py:104
1541
1546
  msgid ""
1542
1547
  "The URL of an external page where users will be able to update their "
1543
1548
  "password. It applies only to non local users, ie. those automatically "
1544
1549
  "created after a successful external authentication (LDAP, SMTP)."
1545
1550
  msgstr ""
1546
1551
 
1547
- #: core/app_settings.py:126
1552
+ #: core/app_settings.py:114
1548
1553
  msgid "Password recovery announcement"
1549
1554
  msgstr ""
1550
1555
 
1551
- #: core/app_settings.py:128
1556
+ #: core/app_settings.py:116
1552
1557
  msgid "A temporary message that will be displayed on the reset password page."
1553
1558
  msgstr ""
1554
1559
 
1555
- #: core/app_settings.py:137
1560
+ #: core/app_settings.py:125
1556
1561
  msgid "Enable password recovery by SMS"
1557
1562
  msgstr ""
1558
1563
 
1559
- #: core/app_settings.py:140
1564
+ #: core/app_settings.py:128
1560
1565
  msgid "Enable password recovery by SMS for users who filled a phone number."
1561
1566
  msgstr ""
1562
1567
 
1563
- #: core/app_settings.py:148
1568
+ #: core/app_settings.py:136
1564
1569
  msgid "SMS provider"
1565
1570
  msgstr ""
1566
1571
 
1567
- #: core/app_settings.py:151
1572
+ #: core/app_settings.py:139
1568
1573
  msgid "Choose a provider to send password recovery SMS"
1569
1574
  msgstr ""
1570
1575
 
1571
- #: core/app_settings.py:163
1576
+ #: core/app_settings.py:151
1572
1577
  msgid "LDAP"
1573
1578
  msgstr ""
1574
1579
 
1575
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1580
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1576
1581
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1577
- #: webmail/app_settings.py:73
1582
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1578
1583
  msgid "Server address"
1579
1584
  msgstr "Chomlec'h ar servijer"
1580
1585
 
1581
- #: core/app_settings.py:171
1586
+ #: core/app_settings.py:159
1582
1587
  msgid "The IP address or the DNS name of the LDAP server"
1583
1588
  msgstr "Chomlec'h IP pe anv DNS ar servijer LDAP"
1584
1589
 
1585
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1590
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1586
1591
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1587
- #: webmail/app_settings.py:91
1592
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1588
1593
  msgid "Server port"
1589
1594
  msgstr "Porzh ar servijer"
1590
1595
 
1591
- #: core/app_settings.py:180
1596
+ #: core/app_settings.py:168
1592
1597
  msgid "The TCP port number used by the LDAP server"
1593
1598
  msgstr "Niverenn borzh TCP implijet gant ar servijer LDAP"
1594
1599
 
1595
- #: core/app_settings.py:188
1600
+ #: core/app_settings.py:176
1596
1601
  msgid "Enable secondary server (fallback)"
1597
1602
  msgstr ""
1598
1603
 
1599
- #: core/app_settings.py:191
1604
+ #: core/app_settings.py:179
1600
1605
  msgid ""
1601
1606
  "Enable a secondary LDAP server which will be used if the primary one fails"
1602
1607
  msgstr ""
1603
1608
 
1604
- #: core/app_settings.py:199
1609
+ #: core/app_settings.py:187
1605
1610
  msgid "Secondary server address"
1606
1611
  msgstr ""
1607
1612
 
1608
- #: core/app_settings.py:202
1613
+ #: core/app_settings.py:190
1609
1614
  msgid "The IP address or the DNS name of the seondary LDAP server"
1610
1615
  msgstr ""
1611
1616
 
1612
- #: core/app_settings.py:209
1617
+ #: core/app_settings.py:197
1613
1618
  msgid "Secondary server port"
1614
1619
  msgstr ""
1615
1620
 
1616
- #: core/app_settings.py:212
1621
+ #: core/app_settings.py:200
1617
1622
  msgid "The TCP port number used by the LDAP secondary server"
1618
1623
  msgstr ""
1619
1624
 
1620
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1625
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1621
1626
  #: webmail/app_settings.py:45
1622
1627
  msgid "Use a secured connection"
1623
1628
  msgstr "Ober gant ur gevreadenn suraet"
1624
1629
 
1625
- #: core/app_settings.py:221
1630
+ #: core/app_settings.py:209
1626
1631
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1627
1632
  msgstr ""
1628
1633
  "Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
1629
1634
 
1630
- #: core/app_settings.py:228
1635
+ #: core/app_settings.py:216
1631
1636
  msgid "Active Directory"
1632
1637
  msgstr "Kavlec'h oberiant"
1633
1638
 
1634
- #: core/app_settings.py:230
1639
+ #: core/app_settings.py:218
1635
1640
  msgid "Tell if the LDAP server is an Active Directory one"
1636
1641
  msgstr "Lavarout a ra hag-eñ e vez ar servijer LDAP ur C'havlec'h Oberiant"
1637
1642
 
1638
- #: core/app_settings.py:237
1643
+ #: core/app_settings.py:225
1639
1644
  msgid "Administrator groups"
1640
1645
  msgstr "Strolladoù merañ"
1641
1646
 
1642
- #: core/app_settings.py:239
1647
+ #: core/app_settings.py:227
1643
1648
  msgid ""
1644
1649
  "Members of those LDAP Posix groups will be created as domain administrators. "
1645
1650
  "Use ';' characters to separate groups."
@@ -1647,47 +1652,47 @@ msgstr ""
1647
1652
  "Izili ar strolladoù LDAP Posix a vo krouet evel bezañ merourien domani. "
1648
1653
  "Implijit an arouezoù ';' evit gellet skejañ ar strolladoù."
1649
1654
 
1650
- #: core/app_settings.py:248
1655
+ #: core/app_settings.py:236
1651
1656
  msgid "Group type"
1652
1657
  msgstr "Doare ar strollad"
1653
1658
 
1654
- #: core/app_settings.py:250
1659
+ #: core/app_settings.py:238
1655
1660
  msgid "The LDAP group type to use with your directory."
1656
1661
  msgstr "An doare strollad LDAP da implijout gant ho kavlec'h."
1657
1662
 
1658
- #: core/app_settings.py:257
1663
+ #: core/app_settings.py:245
1659
1664
  msgid "Groups search base"
1660
1665
  msgstr "Diazez klask ar strolladoù"
1661
1666
 
1662
- #: core/app_settings.py:259
1667
+ #: core/app_settings.py:247
1663
1668
  msgid "The distinguished name of the search base used to find groups"
1664
1669
  msgstr "Anv dibar an diaz klask implijet evit kavout strolladoù"
1665
1670
 
1666
- #: core/app_settings.py:267
1671
+ #: core/app_settings.py:255
1667
1672
  msgid "Password attribute"
1668
1673
  msgstr "Perzhioù ar ger-tremen"
1669
1674
 
1670
- #: core/app_settings.py:269
1675
+ #: core/app_settings.py:257
1671
1676
  msgid "The attribute used to store user passwords"
1672
1677
  msgstr "Ar perzhioù implijet evit stokiñ ar gerioù-tremen implijer"
1673
1678
 
1674
- #: core/app_settings.py:276
1679
+ #: core/app_settings.py:264
1675
1680
  msgid "LDAP authentication settings"
1676
1681
  msgstr ""
1677
1682
 
1678
- #: core/app_settings.py:284
1683
+ #: core/app_settings.py:272
1679
1684
  msgid "Authentication method"
1680
1685
  msgstr "Doare dilesañ"
1681
1686
 
1682
- #: core/app_settings.py:287
1687
+ #: core/app_settings.py:275
1683
1688
  msgid "Choose the authentication method to use"
1684
1689
  msgstr "Dibabit an doare anavezadur da vezañ implijet"
1685
1690
 
1686
- #: core/app_settings.py:294 core/app_settings.py:357
1691
+ #: core/app_settings.py:282 core/app_settings.py:345
1687
1692
  msgid "Bind DN"
1688
1693
  msgstr "Liammañ DN"
1689
1694
 
1690
- #: core/app_settings.py:296 core/app_settings.py:359
1695
+ #: core/app_settings.py:284 core/app_settings.py:347
1691
1696
  msgid ""
1692
1697
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1693
1698
  "for an anonymous bind"
@@ -1695,29 +1700,29 @@ msgstr ""
1695
1700
  "An anv dibar da vezañ implijet evit en em liammañ ouzh ar servijer LDAP. "
1696
1701
  "Lezel goullo evit un liamm dizanv."
1697
1702
 
1698
- #: core/app_settings.py:305 core/app_settings.py:367
1703
+ #: core/app_settings.py:293 core/app_settings.py:355
1699
1704
  msgid "Bind password"
1700
1705
  msgstr "Liammañ ur ger-tremen"
1701
1706
 
1702
- #: core/app_settings.py:307 core/app_settings.py:369
1707
+ #: core/app_settings.py:295 core/app_settings.py:357
1703
1708
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1704
1709
  msgstr ""
1705
1710
  "Ar ger-tremen d'ober gantañ evit kevreañ ouzh ar servijer LDAP (gant "
1706
1711
  "'kevreadenn DN')"
1707
1712
 
1708
- #: core/app_settings.py:317 core/app_settings.py:422
1713
+ #: core/app_settings.py:305 core/app_settings.py:410
1709
1714
  msgid "Users search base"
1710
1715
  msgstr "Diazez enklask an implijerien"
1711
1716
 
1712
- #: core/app_settings.py:319 core/app_settings.py:424
1717
+ #: core/app_settings.py:307 core/app_settings.py:412
1713
1718
  msgid "The distinguished name of the search base used to find users"
1714
1719
  msgstr "Anv dibar an diaz enklask implijet evit kavout implijerien"
1715
1720
 
1716
- #: core/app_settings.py:328 core/app_settings.py:433
1721
+ #: core/app_settings.py:316 core/app_settings.py:421
1717
1722
  msgid "Search filter"
1718
1723
  msgstr "Sil klask"
1719
1724
 
1720
- #: core/app_settings.py:330 core/app_settings.py:435
1725
+ #: core/app_settings.py:318 core/app_settings.py:423
1721
1726
  msgid ""
1722
1727
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1723
1728
  "valid, it must be enclosed in parentheses."
@@ -1725,11 +1730,11 @@ msgstr ""
1725
1730
  "Ur chadenn sil diret (d.sk. '(objedKlas = person)'). Evit bezañ reizh, e "
1726
1731
  "rank bezañ enklozet etre krommelloù."
1727
1732
 
1728
- #: core/app_settings.py:339
1733
+ #: core/app_settings.py:327
1729
1734
  msgid "User DN template"
1730
1735
  msgstr "Patrom implijer DN"
1731
1736
 
1732
- #: core/app_settings.py:341
1737
+ #: core/app_settings.py:329
1733
1738
  #, python-format
1734
1739
  msgid ""
1735
1740
  "The template used to construct a user's DN. It should contain one "
@@ -1738,236 +1743,236 @@ msgstr ""
1738
1743
  "Ar skouer implijet evit sevel DN un implijer. Rankout a rafe enderc'hel ur "
1739
1744
  "spas miret (d.l.e %(user)s)"
1740
1745
 
1741
- #: core/app_settings.py:350
1746
+ #: core/app_settings.py:338
1742
1747
  msgid "LDAP synchronization settings"
1743
1748
  msgstr ""
1744
1749
 
1745
- #: core/app_settings.py:378
1750
+ #: core/app_settings.py:366
1746
1751
  msgid "Enable export to LDAP"
1747
1752
  msgstr ""
1748
1753
 
1749
- #: core/app_settings.py:380
1754
+ #: core/app_settings.py:368
1750
1755
  msgid ""
1751
1756
  "Enable automatic synchronization between local database and LDAP directory"
1752
1757
  msgstr ""
1753
1758
 
1754
- #: core/app_settings.py:389
1759
+ #: core/app_settings.py:377
1755
1760
  msgid "Delete remote LDAP account when local account is deleted"
1756
1761
  msgstr ""
1757
1762
 
1758
- #: core/app_settings.py:392
1763
+ #: core/app_settings.py:380
1759
1764
  msgid ""
1760
1765
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1761
1766
  "be disabled."
1762
1767
  msgstr ""
1763
1768
 
1764
- #: core/app_settings.py:401
1769
+ #: core/app_settings.py:389
1765
1770
  msgid "Account DN template"
1766
1771
  msgstr ""
1767
1772
 
1768
- #: core/app_settings.py:403
1773
+ #: core/app_settings.py:391
1769
1774
  #, python-format
1770
1775
  msgid ""
1771
1776
  "The template used to construct an account's DN. It should contain one "
1772
1777
  "placeholder (ie. %(user)s)"
1773
1778
  msgstr ""
1774
1779
 
1775
- #: core/app_settings.py:412
1780
+ #: core/app_settings.py:400
1776
1781
  msgid "Enable import from LDAP"
1777
1782
  msgstr ""
1778
1783
 
1779
- #: core/app_settings.py:414
1784
+ #: core/app_settings.py:402
1780
1785
  msgid "Enable account synchronization from LDAP directory to local database"
1781
1786
  msgstr ""
1782
1787
 
1783
- #: core/app_settings.py:444
1788
+ #: core/app_settings.py:432
1784
1789
  msgid "Username attribute"
1785
1790
  msgstr ""
1786
1791
 
1787
- #: core/app_settings.py:446
1792
+ #: core/app_settings.py:434
1788
1793
  msgid "The name of the LDAP attribute where the username can be found."
1789
1794
  msgstr ""
1790
1795
 
1791
- #: core/app_settings.py:455
1796
+ #: core/app_settings.py:443
1792
1797
  msgid "Enable Dovecot LDAP sync"
1793
1798
  msgstr ""
1794
1799
 
1795
- #: core/app_settings.py:457
1800
+ #: core/app_settings.py:445
1796
1801
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1797
1802
  msgstr ""
1798
1803
 
1799
- #: core/app_settings.py:465
1804
+ #: core/app_settings.py:453
1800
1805
  msgid "Dovecot LDAP config file"
1801
1806
  msgstr ""
1802
1807
 
1803
- #: core/app_settings.py:467
1808
+ #: core/app_settings.py:455
1804
1809
  msgid ""
1805
1810
  "Location of the configuration file which contains Dovecot LDAP settings."
1806
1811
  msgstr ""
1807
1812
 
1808
- #: core/app_settings.py:480
1813
+ #: core/app_settings.py:468
1809
1814
  msgid "Dashboard"
1810
1815
  msgstr "Taolenn-stur"
1811
1816
 
1812
- #: core/app_settings.py:486
1817
+ #: core/app_settings.py:474
1813
1818
  #, fuzzy
1814
1819
  #| msgid "Custom RSS feed"
1815
1820
  msgid "Custom welcome message"
1816
1821
  msgstr "Froud RSS personel"
1817
1822
 
1818
- #: core/app_settings.py:488
1823
+ #: core/app_settings.py:476
1819
1824
  msgid "A welcome message that will be displayed instead the default one"
1820
1825
  msgstr ""
1821
1826
 
1822
- #: core/app_settings.py:495
1827
+ #: core/app_settings.py:483
1823
1828
  msgid "Custom RSS feed"
1824
1829
  msgstr "Froud RSS personel"
1825
1830
 
1826
- #: core/app_settings.py:497
1831
+ #: core/app_settings.py:485
1827
1832
  msgid "Display custom RSS feed to resellers and domain administrators"
1828
1833
  msgstr ""
1829
1834
  "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
1830
1835
 
1831
- #: core/app_settings.py:506
1836
+ #: core/app_settings.py:494
1832
1837
  #, fuzzy
1833
1838
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1834
1839
  msgid "Display custom RSS feed to super admins"
1835
1840
  msgstr ""
1836
1841
  "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
1837
1842
 
1838
- #: core/app_settings.py:509
1843
+ #: core/app_settings.py:497
1839
1844
  #, fuzzy
1840
1845
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1841
1846
  msgid "Display custom RSS feed also to super administrators"
1842
1847
  msgstr ""
1843
1848
  "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
1844
1849
 
1845
- #: core/app_settings.py:517
1850
+ #: core/app_settings.py:505
1846
1851
  msgid "Hide features widget"
1847
1852
  msgstr "Kuzhat an arc'hweladurioù objed"
1848
1853
 
1849
- #: core/app_settings.py:519
1854
+ #: core/app_settings.py:507
1850
1855
  msgid "Hide features widget for resellers and domain administrators"
1851
1856
  msgstr ""
1852
1857
  "Kuzhat an arc'hweladurioù objed d'an eilgwerzherien ha merourien an domani"
1853
1858
 
1854
- #: core/app_settings.py:531
1859
+ #: core/app_settings.py:519
1855
1860
  msgid "Theme"
1856
1861
  msgstr ""
1857
1862
 
1858
- #: core/app_settings.py:537
1863
+ #: core/app_settings.py:525
1859
1864
  msgid "Primary theme color"
1860
1865
  msgstr ""
1861
1866
 
1862
- #: core/app_settings.py:539
1867
+ #: core/app_settings.py:527
1863
1868
  msgid ""
1864
1869
  "Primary color of the theme (hexadecimal code), used as the background color "
1865
1870
  "of the left menu for example"
1866
1871
  msgstr ""
1867
1872
 
1868
- #: core/app_settings.py:548
1873
+ #: core/app_settings.py:536
1869
1874
  msgid "Primary theme color (lighter version)"
1870
1875
  msgstr ""
1871
1876
 
1872
- #: core/app_settings.py:551 core/app_settings.py:563
1877
+ #: core/app_settings.py:539 core/app_settings.py:551
1873
1878
  msgid "Primary color of the theme (hexadecimal code)"
1874
1879
  msgstr ""
1875
1880
 
1876
- #: core/app_settings.py:560
1881
+ #: core/app_settings.py:548
1877
1882
  msgid "Primary theme color (darker version)"
1878
1883
  msgstr ""
1879
1884
 
1880
- #: core/app_settings.py:571
1885
+ #: core/app_settings.py:559
1881
1886
  #, fuzzy
1882
1887
  #| msgid "Secondary email"
1883
1888
  msgid "Secondary theme color"
1884
1889
  msgstr "Eil chomlec'h postel"
1885
1890
 
1886
- #: core/app_settings.py:573
1891
+ #: core/app_settings.py:561
1887
1892
  msgid ""
1888
1893
  "Secondary color of the theme (hexadecimal code), used as the background "
1889
1894
  "color of some buttons for example"
1890
1895
  msgstr ""
1891
1896
 
1892
- #: core/app_settings.py:581
1897
+ #: core/app_settings.py:569
1893
1898
  msgid "Labels theme color"
1894
1899
  msgstr ""
1895
1900
 
1896
- #: core/app_settings.py:583
1901
+ #: core/app_settings.py:571
1897
1902
  msgid "Theme color for labels (hexadecimal code)"
1898
1903
  msgstr ""
1899
1904
 
1900
- #: core/app_settings.py:595
1905
+ #: core/app_settings.py:583
1901
1906
  msgid "Notifications"
1902
1907
  msgstr "Kemennadennoù"
1903
1908
 
1904
- #: core/app_settings.py:601
1909
+ #: core/app_settings.py:589
1905
1910
  msgid "Sender address"
1906
1911
  msgstr "Chomlec'h ar c'haser"
1907
1912
 
1908
- #: core/app_settings.py:603
1913
+ #: core/app_settings.py:591
1909
1914
  msgid "Email address used to send notifications."
1910
1915
  msgstr "Chomlec'h postel implijet da gas kemmennoù."
1911
1916
 
1912
- #: core/app_settings.py:614
1917
+ #: core/app_settings.py:602
1913
1918
  msgid "Public API"
1914
1919
  msgstr "API foran"
1915
1920
 
1916
- #: core/app_settings.py:620
1921
+ #: core/app_settings.py:608
1917
1922
  msgid "Enable communication"
1918
1923
  msgstr "Enaouiñ ar c'hehentiñ"
1919
1924
 
1920
- #: core/app_settings.py:622 core/app_settings.py:632
1925
+ #: core/app_settings.py:610 core/app_settings.py:620
1921
1926
  msgid "Automatically checks if a newer version is available"
1922
1927
  msgstr "Em-wiriañ ma vez ur stumm nevez hegerz"
1923
1928
 
1924
- #: core/app_settings.py:629
1929
+ #: core/app_settings.py:617
1925
1930
  msgid "Check new versions"
1926
1931
  msgstr "Klask stummoù nevez"
1927
1932
 
1928
- #: core/app_settings.py:640
1933
+ #: core/app_settings.py:628
1929
1934
  msgid "Send an email when new versions are found"
1930
1935
  msgstr ""
1931
1936
 
1932
- #: core/app_settings.py:644
1937
+ #: core/app_settings.py:632
1933
1938
  msgid "Send an email to notify admins about new versions"
1934
1939
  msgstr ""
1935
1940
 
1936
- #: core/app_settings.py:651 sievefilters/constants.py:25
1941
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1937
1942
  msgid "Recipient"
1938
1943
  msgstr ""
1939
1944
 
1940
- #: core/app_settings.py:654
1945
+ #: core/app_settings.py:642
1941
1946
  msgid "Recipient of new versions notification emails."
1942
1947
  msgstr ""
1943
1948
 
1944
- #: core/app_settings.py:661
1949
+ #: core/app_settings.py:649
1945
1950
  msgid "Send statistics"
1946
1951
  msgstr "Kas statistikoù"
1947
1952
 
1948
- #: core/app_settings.py:664
1953
+ #: core/app_settings.py:652
1949
1954
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1950
1955
  msgstr ""
1951
1956
  "Kas ar statistikoù da API foran Modoboa (kontourioù hag an astennoù "
1952
1957
  "impliljet)"
1953
1958
 
1954
- #: core/app_settings.py:683
1959
+ #: core/app_settings.py:671
1955
1960
  #, fuzzy
1956
1961
  #| msgid "Inactive account threshold"
1957
1962
  msgid "Enable inactive account tracking"
1958
1963
  msgstr "Treuzoù ar c'hontoù dioberiant"
1959
1964
 
1960
- #: core/app_settings.py:686
1965
+ #: core/app_settings.py:674
1961
1966
  msgid ""
1962
1967
  "Allow the administrator to set a threshold (in days) beyond which an account "
1963
1968
  "is considered inactive if the user hasn't logged in"
1964
1969
  msgstr ""
1965
1970
 
1966
- #: core/app_settings.py:695
1971
+ #: core/app_settings.py:683
1967
1972
  msgid "Inactive account threshold"
1968
1973
  msgstr "Treuzoù ar c'hontoù dioberiant"
1969
1974
 
1970
- #: core/app_settings.py:698
1975
+ #: core/app_settings.py:686
1971
1976
  msgid ""
1972
1977
  "An account with a last login date greater than this threshold (in days) will "
1973
1978
  "be considered as inactive"
@@ -1975,46 +1980,38 @@ msgstr ""
1975
1980
  "Ur gont gant un deiziad kevreañ koshoc'h evit an treuzoù-se (e devezhioù) a "
1976
1981
  "vo kontet evel bezañ dioberiant"
1977
1982
 
1978
- #: core/app_settings.py:707
1983
+ #: core/app_settings.py:695
1979
1984
  msgid "Top notifications check interval"
1980
1985
  msgstr "Padelezh etre ar c'hemennoù gwiriañ pennañ"
1981
1986
 
1982
- #: core/app_settings.py:710
1987
+ #: core/app_settings.py:698
1983
1988
  msgid "Interval between two top notification checks (in seconds)"
1984
1989
  msgstr "Padelezh etre div gwiriadenn gemennoù pennañ (en eilennoù)"
1985
1990
 
1986
- #: core/app_settings.py:717
1991
+ #: core/app_settings.py:705
1987
1992
  msgid "Maximum log record age"
1988
1993
  msgstr "Oad enrollañ maksimom ar marilhoù"
1989
1994
 
1990
- #: core/app_settings.py:719
1995
+ #: core/app_settings.py:707
1991
1996
  msgid "The maximum age in days of a log record"
1992
1997
  msgstr "Oad brasañ e devezhioù un enrollodenn renabl"
1993
1998
 
1994
- #: core/app_settings.py:727
1999
+ #: core/app_settings.py:715
1995
2000
  msgid "Retention time in message history"
1996
2001
  msgstr ""
1997
2002
 
1998
- #: core/app_settings.py:730
2003
+ #: core/app_settings.py:718
1999
2004
  msgid "Retention time (in days) of a message in the message history section"
2000
2005
  msgstr ""
2001
2006
 
2002
- #: core/app_settings.py:737
2007
+ #: core/app_settings.py:725
2003
2008
  msgid "Items per page"
2004
2009
  msgstr "Elfennoù dre bajenn"
2005
2010
 
2006
- #: core/app_settings.py:739
2011
+ #: core/app_settings.py:727
2007
2012
  msgid "Number of displayed items per page"
2008
2013
  msgstr "Niver a elfennoù diskouezet dre bajenn"
2009
2014
 
2010
- #: core/app_settings.py:746
2011
- msgid "Default top redirection"
2012
- msgstr "Adhenchañ pennañ dre-ziouer"
2013
-
2014
- #: core/app_settings.py:748
2015
- msgid "The default redirection used when no application is specified"
2016
- msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
2017
-
2018
2015
  #: core/checks.py:15
2019
2016
  msgid ""
2020
2017
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -2368,7 +2365,7 @@ msgid "Not resolved"
2368
2365
  msgstr ""
2369
2366
 
2370
2367
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
2371
- #: webmail/constants.py:18
2368
+ #: webmail/constants.py:38
2372
2369
  msgid "None"
2373
2370
  msgstr "Hini ebet"
2374
2371
 
@@ -3337,7 +3334,7 @@ msgstr ""
3337
3334
  msgid "is not"
3338
3335
  msgstr ""
3339
3336
 
3340
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3337
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
3341
3338
  msgid "Subject"
3342
3339
  msgstr "Sujed"
3343
3340
 
@@ -3598,24 +3595,24 @@ msgstr ""
3598
3595
  msgid "SMTP settings"
3599
3596
  msgstr "Arventennoù LDAP"
3600
3597
 
3601
- #: webmail/app_settings.py:75
3598
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3602
3599
  msgid "Address of your SMTP server"
3603
3600
  msgstr ""
3604
3601
 
3605
- #: webmail/app_settings.py:82
3602
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3606
3603
  #, fuzzy
3607
3604
  #| msgid "Use a secured connection"
3608
3605
  msgid "Secured connection mode"
3609
3606
  msgstr "Ober gant ur gevreadenn suraet"
3610
3607
 
3611
- #: webmail/app_settings.py:84
3608
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3612
3609
  #, fuzzy
3613
3610
  #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
3614
3611
  msgid "Use a secured connection to access SMTP server"
3615
3612
  msgstr ""
3616
3613
  "Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
3617
3614
 
3618
- #: webmail/app_settings.py:93
3615
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3619
3616
  msgid "Listening port of your SMTP server"
3620
3617
  msgstr ""
3621
3618
 
@@ -3630,113 +3627,119 @@ msgstr "Doare dilesañ"
3630
3627
  msgid "Server needs authentication"
3631
3628
  msgstr "Doare dilesañ"
3632
3629
 
3633
- #: webmail/app_settings.py:124
3630
+ #: webmail/app_settings.py:113
3631
+ #, fuzzy
3632
+ #| msgid "DNS settings"
3633
+ msgid "Scheduling settings"
3634
+ msgstr "Arventennoù DNS"
3635
+
3636
+ #: webmail/app_settings.py:161
3634
3637
  msgid "Default message display mode"
3635
3638
  msgstr ""
3636
3639
 
3637
- #: webmail/app_settings.py:126
3640
+ #: webmail/app_settings.py:163
3638
3641
  #, fuzzy
3639
3642
  #| msgid "The default redirection used when no application is specified"
3640
3643
  msgid "The default mode used when displaying a message"
3641
3644
  msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
3642
3645
 
3643
- #: webmail/app_settings.py:133
3646
+ #: webmail/app_settings.py:170
3644
3647
  msgid "Enable HTML links display"
3645
3648
  msgstr ""
3646
3649
 
3647
- #: webmail/app_settings.py:136
3650
+ #: webmail/app_settings.py:173
3648
3651
  msgid "Enable/Disable HTML links display"
3649
3652
  msgstr ""
3650
3653
 
3651
- #: webmail/app_settings.py:147
3654
+ #: webmail/app_settings.py:184
3652
3655
  msgid "Sets the maximum number of messages displayed in a page"
3653
3656
  msgstr ""
3654
3657
 
3655
- #: webmail/app_settings.py:154
3658
+ #: webmail/app_settings.py:191
3656
3659
  msgid "Listing refresh rate"
3657
3660
  msgstr ""
3658
3661
 
3659
- #: webmail/app_settings.py:156
3662
+ #: webmail/app_settings.py:193
3660
3663
  msgid "Automatic listing refresh rate (in secconds)"
3661
3664
  msgstr ""
3662
3665
 
3663
- #: webmail/app_settings.py:163
3666
+ #: webmail/app_settings.py:200
3664
3667
  msgid "Folder container's width"
3665
3668
  msgstr ""
3666
3669
 
3667
- #: webmail/app_settings.py:165
3670
+ #: webmail/app_settings.py:202
3668
3671
  msgid "The width of the folder list container"
3669
3672
  msgstr ""
3670
3673
 
3671
- #: webmail/app_settings.py:176
3674
+ #: webmail/app_settings.py:213
3672
3675
  #, fuzzy
3673
3676
  #| msgid "Create aliases"
3674
3677
  msgid "Folders"
3675
3678
  msgstr "Krouiñ aliasoù"
3676
3679
 
3677
- #: webmail/app_settings.py:182
3680
+ #: webmail/app_settings.py:219
3678
3681
  #, fuzzy
3679
3682
  #| msgid "Create aliases"
3680
3683
  msgid "Trash folder"
3681
3684
  msgstr "Krouiñ aliasoù"
3682
3685
 
3683
- #: webmail/app_settings.py:184
3686
+ #: webmail/app_settings.py:221
3684
3687
  msgid "Folder where deleted messages go"
3685
3688
  msgstr ""
3686
3689
 
3687
- #: webmail/app_settings.py:191
3690
+ #: webmail/app_settings.py:228
3688
3691
  #, fuzzy
3689
3692
  #| msgid "Create aliases"
3690
3693
  msgid "Sent folder"
3691
3694
  msgstr "Krouiñ aliasoù"
3692
3695
 
3693
- #: webmail/app_settings.py:193
3696
+ #: webmail/app_settings.py:230
3694
3697
  msgid "Folder where copies of sent messages go"
3695
3698
  msgstr ""
3696
3699
 
3697
- #: webmail/app_settings.py:200
3700
+ #: webmail/app_settings.py:237
3698
3701
  #, fuzzy
3699
3702
  #| msgid "Create aliases"
3700
3703
  msgid "Drafts folder"
3701
3704
  msgstr "Krouiñ aliasoù"
3702
3705
 
3703
- #: webmail/app_settings.py:201
3706
+ #: webmail/app_settings.py:238
3704
3707
  msgid "Folder where drafts go"
3705
3708
  msgstr ""
3706
3709
 
3707
- #: webmail/app_settings.py:207
3710
+ #: webmail/app_settings.py:244
3708
3711
  #, fuzzy
3709
3712
  #| msgid "Create aliases"
3710
3713
  msgid "Junk folder"
3711
3714
  msgstr "Krouiñ aliasoù"
3712
3715
 
3713
- #: webmail/app_settings.py:209
3716
+ #: webmail/app_settings.py:246
3714
3717
  msgid "Folder where junk messages should go"
3715
3718
  msgstr ""
3716
3719
 
3717
- #: webmail/app_settings.py:220
3720
+ #: webmail/app_settings.py:257
3718
3721
  #, fuzzy
3719
3722
  #| msgid "Message"
3720
3723
  msgid "Composing messages"
3721
3724
  msgstr "Kemennadenn"
3722
3725
 
3723
- #: webmail/app_settings.py:226
3726
+ #: webmail/app_settings.py:263
3724
3727
  #, fuzzy
3725
3728
  #| msgid "Default top redirection"
3726
3729
  msgid "Default editor"
3727
3730
  msgstr "Adhenchañ pennañ dre-ziouer"
3728
3731
 
3729
- #: webmail/app_settings.py:228
3732
+ #: webmail/app_settings.py:265
3730
3733
  #, fuzzy
3731
3734
  #| msgid "The default redirection used when no application is specified"
3732
3735
  msgid "The default editor to use when composing a message"
3733
3736
  msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
3734
3737
 
3735
- #: webmail/app_settings.py:235
3738
+ #: webmail/app_settings.py:272
3736
3739
  msgid "Signature text"
3737
3740
  msgstr ""
3738
3741
 
3739
- #: webmail/app_settings.py:237
3742
+ #: webmail/app_settings.py:274
3740
3743
  msgid "User defined email signature"
3741
3744
  msgstr ""
3742
3745
 
@@ -3751,47 +3754,72 @@ msgstr "Chomlec'h ar servijer"
3751
3754
  msgid "Failed to remove attachment: "
3752
3755
  msgstr "N'heller ket adsevel lec'hiadur ar voest-posteloù (%s)"
3753
3756
 
3754
- #: webmail/lib/imapemail.py:272
3757
+ #: webmail/lib/imapemail.py:270
3755
3758
  msgid "wrote:"
3756
3759
  msgstr ""
3757
3760
 
3758
- #: webmail/lib/imapemail.py:306
3761
+ #: webmail/lib/imapemail.py:304
3759
3762
  msgid "Date"
3760
3763
  msgstr "Deiziad"
3761
3764
 
3762
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3765
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3763
3766
  #, fuzzy
3764
3767
  #| msgid "Message"
3765
3768
  msgid "Original message"
3766
3769
  msgstr "Kemennadenn"
3767
3770
 
3768
- #: webmail/lib/imaputils.py:221
3771
+ #: webmail/lib/imaputils.py:222
3769
3772
  msgid "Failed to retrieve hierarchy delimiter"
3770
3773
  msgstr ""
3771
3774
 
3772
- #: webmail/lib/imaputils.py:472
3775
+ #: webmail/lib/imaputils.py:478
3773
3776
  msgid "Inbox"
3774
3777
  msgstr ""
3775
3778
 
3776
- #: webmail/lib/imaputils.py:476
3779
+ #: webmail/lib/imaputils.py:482
3777
3780
  #, fuzzy
3778
3781
  #| msgid "Create aliases"
3779
3782
  msgid "Drafts"
3780
3783
  msgstr "Krouiñ aliasoù"
3781
3784
 
3782
- #: webmail/lib/imaputils.py:481
3785
+ #: webmail/lib/imaputils.py:487
3783
3786
  msgid "Junk"
3784
3787
  msgstr ""
3785
3788
 
3786
- #: webmail/lib/imaputils.py:486
3789
+ #: webmail/lib/imaputils.py:492
3787
3790
  msgid "Sent"
3788
3791
  msgstr ""
3789
3792
 
3790
- #: webmail/lib/imaputils.py:491
3793
+ #: webmail/lib/imaputils.py:500
3794
+ msgid "Scheduled"
3795
+ msgstr ""
3796
+
3797
+ #: webmail/lib/imaputils.py:507
3791
3798
  msgid "Trash"
3792
3799
  msgstr ""
3793
3800
 
3794
- #: webmail/viewsets.py:357
3801
+ #: webmail/serializers.py:220
3802
+ msgid "Moving scheduled messages is forbidden"
3803
+ msgstr ""
3804
+
3805
+ #: webmail/serializers.py:253
3806
+ msgid "Only datetime in the future is allowed"
3807
+ msgstr ""
3808
+
3809
+ #: webmail/serializers.py:258
3810
+ msgid "Provived datetime must be one minute in the future at least"
3811
+ msgstr ""
3812
+
3813
+ #: webmail/viewsets.py:359
3795
3814
  #, python-format
3796
3815
  msgid "Attachment is too big (limit: %s)"
3797
3816
  msgstr ""
3817
+
3818
+ #~ msgid "User profile"
3819
+ #~ msgstr "Profil implijer"
3820
+
3821
+ #~ msgid "Default top redirection"
3822
+ #~ msgstr "Adhenchañ pennañ dre-ziouer"
3823
+
3824
+ #~ msgid "The default redirection used when no application is specified"
3825
+ #~ msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"