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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -0
  2. modoboa/admin/app_settings.py +12 -0
  3. modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
  4. modoboa/admin/jobs.py +86 -0
  5. modoboa/admin/management/commands/modo.py +0 -2
  6. modoboa/admin/tests/test_mailbox_operations.py +4 -4
  7. modoboa/admin/tests/test_mx.py +68 -56
  8. modoboa/amavis/jobs.py +11 -0
  9. modoboa/amavis/tests/test_jobs.py +18 -0
  10. modoboa/amavis/tests/test_viewsets.py +2 -3
  11. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
  12. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
  13. modoboa/autoconfig/tests.py +2 -1
  14. modoboa/autoconfig/views.py +11 -3
  15. modoboa/autoreply/models.py +4 -4
  16. modoboa/calendars/backends/caldav_.py +17 -13
  17. modoboa/calendars/jobs.py +7 -0
  18. modoboa/calendars/mocks.py +4 -1
  19. modoboa/calendars/serializers.py +14 -9
  20. modoboa/calendars/tests.py +10 -9
  21. modoboa/calendars/viewsets.py +3 -1
  22. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  23. modoboa/contacts/models.py +1 -0
  24. modoboa/contacts/serializers.py +5 -2
  25. modoboa/contacts/tasks.py +9 -3
  26. modoboa/contacts/tests.py +32 -6
  27. modoboa/contacts/viewsets.py +7 -1
  28. modoboa/core/api/v2/serializers.py +0 -7
  29. modoboa/core/api/v2/tests.py +0 -10
  30. modoboa/core/app_settings.py +0 -22
  31. modoboa/core/commands/deploy.py +13 -0
  32. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  33. modoboa/core/commands/templates/settings.py.tpl +21 -0
  34. modoboa/core/jobs.py +34 -0
  35. modoboa/core/management/commands/load_initial_data.py +1 -1
  36. modoboa/core/password_hashers/base.py +4 -1
  37. modoboa/core/tests/test_core.py +0 -14
  38. modoboa/core/tests/test_jobs.py +40 -0
  39. modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  40. modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-CCuN9mGB.js} +1 -1
  41. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  42. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  43. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  44. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  45. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  46. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  47. modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-CTjrXYPf.js} +1 -1
  48. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  49. modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-BN13MNN_.js} +1 -1
  50. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  52. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  53. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  55. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  56. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  57. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  58. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  59. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  60. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  61. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  62. modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-DD7p3i6F.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-DoIoNYC4.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  65. modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-BXvznFYz.js} +3 -3
  66. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  67. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  68. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  69. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  70. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  71. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  72. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  73. modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-CyBl5wj2.js} +15 -15
  74. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  75. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  76. modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-C2txD49L.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js} +1 -1
  78. modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-DHYITkn4.js} +1 -1
  79. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  80. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  81. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  82. modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-CrrEJpNI.js} +1 -1
  83. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  84. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  85. modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-DFKYkPAs.js} +1 -1
  86. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  87. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  88. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  89. modoboa/frontend_dist/assets/ProviderGeneralForm-DO-IpJMQ.js +1 -0
  90. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  92. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  93. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  94. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  95. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  97. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  98. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  100. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  101. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  102. modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-MDbeolOo.js} +1 -1
  103. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  105. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  106. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  107. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  108. modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-CBtX8JF-.js} +1 -1
  109. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  110. modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  111. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  112. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  113. modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-Cn-vKB3s.js} +1 -1
  114. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  116. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  118. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  119. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  120. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  121. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  122. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  123. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  125. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  127. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  128. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  129. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  130. modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-83Qnr5iB.js} +1 -1
  131. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  132. modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  133. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  134. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  135. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  136. modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-f7wcr2AZ.js} +1 -1
  137. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  138. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  140. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  142. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  144. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  145. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  147. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  148. modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-KUsk6LHW.js} +1 -1
  149. modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-BW9cZW0P.js} +1 -1
  150. modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-Ge0hjIsH.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-BbFeFfsk.js} +1 -1
  152. modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-DtuzP_CS.js} +1 -1
  153. modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DMJlQTe0.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-Du64lcXT.js} +1 -1
  155. modoboa/frontend_dist/assets/domains.store-1U61jeCV.js +1 -0
  156. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  157. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  158. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  159. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  160. modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dv00bmw9.js} +1 -1
  161. modoboa/frontend_dist/assets/index-jui3edpn.js +1001 -0
  162. modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-OcfdXL_-.js} +1 -1
  163. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  164. modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-DOO7TRTJ.js} +1 -1
  165. modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-C0g-piJn.js} +1 -1
  166. modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-Dz2Gzei-.js} +1 -1
  167. modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-CLm32Weu.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DMIAQ7cd.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DLnFzCwV.js} +1 -1
  170. modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CrpE0b4w.js} +1 -1
  171. modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-B7cr7q9U.js} +1 -1
  172. modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-WF93n81Q.js} +1 -1
  173. modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-_0oOYChG.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  175. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  176. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  177. modoboa/frontend_dist/index.html +2 -2
  178. modoboa/imap_migration/api/v2/serializers.py +13 -0
  179. modoboa/imap_migration/models.py +3 -3
  180. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  181. modoboa/imap_migration/tests.py +28 -0
  182. modoboa/lib/cryptutils.py +2 -2
  183. modoboa/lib/sysutils.py +1 -1
  184. modoboa/lib/tests/__init__.py +0 -1
  185. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  186. modoboa/locale/br/LC_MESSAGES/django.po +753 -317
  187. modoboa/locale/cs/LC_MESSAGES/django.po +671 -309
  188. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +801 -378
  190. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de/LC_MESSAGES/django.po +1116 -455
  192. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/de_DE/LC_MESSAGES/django.po +745 -318
  194. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  195. modoboa/locale/el_GR/LC_MESSAGES/django.po +825 -393
  196. modoboa/locale/en/LC_MESSAGES/django.po +669 -309
  197. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/es/LC_MESSAGES/django.po +810 -390
  199. modoboa/locale/es_MX/LC_MESSAGES/django.po +669 -309
  200. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fi/LC_MESSAGES/django.po +756 -316
  202. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/fr/LC_MESSAGES/django.po +674 -313
  204. modoboa/locale/hu/LC_MESSAGES/django.po +669 -309
  205. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/it/LC_MESSAGES/django.po +807 -380
  207. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  208. modoboa/locale/ja_JP/LC_MESSAGES/django.po +951 -419
  209. modoboa/locale/ka/LC_MESSAGES/django.po +669 -309
  210. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/nl_NL/LC_MESSAGES/django.po +807 -387
  212. modoboa/locale/no/LC_MESSAGES/django.po +669 -309
  213. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pl_PL/LC_MESSAGES/django.po +826 -396
  215. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_BR/LC_MESSAGES/django.po +830 -392
  217. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_PT/LC_MESSAGES/django.po +788 -371
  219. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +763 -316
  221. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  222. modoboa/locale/ru/LC_MESSAGES/django.po +1336 -1046
  223. modoboa/locale/si/LC_MESSAGES/django.po +669 -309
  224. modoboa/locale/sk/LC_MESSAGES/django.po +671 -309
  225. modoboa/locale/sk_SK/LC_MESSAGES/django.po +671 -309
  226. modoboa/locale/sl_SI/LC_MESSAGES/django.po +695 -315
  227. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/sv/LC_MESSAGES/django.po +819 -387
  229. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr/LC_MESSAGES/django.po +737 -315
  231. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  232. modoboa/locale/tr_TR/LC_MESSAGES/django.po +711 -310
  233. modoboa/locale/uk/LC_MESSAGES/django.po +671 -309
  234. modoboa/locale/zh/LC_MESSAGES/django.po +668 -309
  235. modoboa/locale/zh_CN/LC_MESSAGES/django.po +668 -309
  236. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  237. modoboa/locale/zh_TW/LC_MESSAGES/django.po +747 -316
  238. modoboa/maillog/jobs.py +11 -0
  239. modoboa/maillog/tests/test_views.py +5 -4
  240. modoboa/parameters/api/v2/tests.py +1 -1
  241. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  242. modoboa/policyd/tests.py +4 -2
  243. modoboa/rspamd/tests.py +20 -0
  244. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  245. modoboa/webmail/app_settings.py +37 -0
  246. modoboa/webmail/constants.py +21 -1
  247. modoboa/webmail/factories.py +19 -0
  248. modoboa/webmail/jobs.py +27 -0
  249. modoboa/webmail/lib/__init__.py +0 -2
  250. modoboa/webmail/lib/imapemail.py +9 -11
  251. modoboa/webmail/lib/imapheader.py +25 -13
  252. modoboa/webmail/lib/imaputils.py +51 -13
  253. modoboa/webmail/lib/sendmail.py +88 -105
  254. modoboa/webmail/lib/utils.py +109 -0
  255. modoboa/webmail/migrations/0001_initial.py +90 -0
  256. modoboa/webmail/migrations/__init__.py +0 -0
  257. modoboa/webmail/mocks.py +12 -3
  258. modoboa/webmail/models.py +102 -0
  259. modoboa/webmail/serializers.py +84 -4
  260. modoboa/webmail/tests/data.py +21 -0
  261. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  262. modoboa/webmail/tests/test_viewsets.py +108 -0
  263. modoboa/webmail/urls.py +5 -0
  264. modoboa/webmail/viewsets.py +39 -9
  265. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  266. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/RECORD +271 -254
  267. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  268. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  269. modoboa/core/management/commands/cleanlogs.py +0 -53
  270. modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
  271. modoboa/frontend_dist/assets/AccountPasswordSubForm-DpADntAL.js +0 -1
  272. modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +0 -1
  273. modoboa/frontend_dist/assets/AddressBook-CrFqzlzZ.js +0 -1
  274. modoboa/frontend_dist/assets/AdminLayout-BbCt7YxX.js +0 -1
  275. modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +0 -1
  276. modoboa/frontend_dist/assets/AliasRecipientForm-jjj5yJJw.js +0 -1
  277. modoboa/frontend_dist/assets/AuditTrailView-sWnED3E9.js +0 -1
  278. modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
  279. modoboa/frontend_dist/assets/ChoiceField-RDT6XcnX.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  281. modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +0 -1
  282. modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
  283. modoboa/frontend_dist/assets/ConfirmDialog-Du7aqKbR.js +0 -1
  284. modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +0 -1
  285. modoboa/frontend_dist/assets/CreationForm-CjtILq0_.js +0 -1
  286. modoboa/frontend_dist/assets/DashboardView-DFNwusDZ.js +0 -1
  287. modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +0 -1
  288. modoboa/frontend_dist/assets/EmailField-DmPc4pyP.js +0 -1
  289. modoboa/frontend_dist/assets/EmailView-BE3vYZtJ.js +0 -1
  290. modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
  291. modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +0 -1
  292. modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
  293. modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +0 -1
  294. modoboa/frontend_dist/assets/InformationView-eB2ayeLD.js +0 -1
  295. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  296. modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +0 -5
  297. modoboa/frontend_dist/assets/MenuItems-dl38msRA.js +0 -1
  298. modoboa/frontend_dist/assets/MessagesView-BZ7NUOwo.js +0 -1
  299. modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +0 -1
  300. modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
  301. modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
  302. modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
  303. modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
  304. modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
  305. modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
  306. modoboa/frontend_dist/assets/QuarantineView-BOXSobRz.js +0 -1
  307. modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
  308. modoboa/frontend_dist/assets/ResourcesForm-D0YBapCG.js +0 -1
  309. modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
  310. modoboa/frontend_dist/assets/SettingsView-DIvKGRBY.css +0 -1
  311. modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +0 -6
  312. modoboa/frontend_dist/assets/StatisticsView-CyY_CNcI.js +0 -1
  313. modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +0 -1
  314. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  315. modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
  316. modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +0 -1
  317. modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +0 -1
  318. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  319. modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +0 -1
  320. modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +0 -1
  321. modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +0 -1
  322. modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +0 -1
  323. modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +0 -1
  324. modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +0 -1
  325. modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +0 -1
  326. modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +0 -1
  327. modoboa/frontend_dist/assets/VExpansionPanels-BeMgiS7A.js +0 -1
  328. modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +0 -1
  329. modoboa/frontend_dist/assets/VForm-DkphQD3e.js +0 -1
  330. modoboa/frontend_dist/assets/VInput-CbqehdOu.js +0 -1
  331. modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +0 -1
  332. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  333. modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +0 -1
  334. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  335. modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +0 -1
  336. modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +0 -1
  337. modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +0 -1
  338. modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +0 -1
  339. modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
  340. modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +0 -1
  341. modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +0 -1
  342. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  343. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  344. modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +0 -1
  345. modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +0 -1
  346. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  347. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  348. modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +0 -1
  349. modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +0 -1
  350. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  351. modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +0 -1
  352. modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
  353. modoboa/frontend_dist/assets/filter-DHKXX97M.js +0 -1
  354. modoboa/frontend_dist/assets/global.store-DYMmGKpn.js +0 -1
  355. modoboa/frontend_dist/assets/importExport-C-adpHJX.js +0 -1
  356. modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
  357. modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
  358. modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
  359. modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +0 -1
  360. modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +0 -1
  361. {modoboa-2.6.4.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  362. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  363. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  364. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -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-08-28 09:41+0200\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:564 admin/models/alias.py:44
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:486 core/api/v2/serializers.py:255
60
- #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
61
- #: 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:546
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:598
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:615
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
 
@@ -89,7 +88,7 @@ msgstr "N'eus ket eus an domani lec'hel {}"
89
88
  msgid "A list of recipient"
90
89
  msgstr "Ul listenn resevourien"
91
90
 
92
- #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
91
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:313
93
92
  #, fuzzy
94
93
  #| msgid "User '%s' already exists"
95
94
  msgid "This alias already exists"
@@ -124,51 +123,51 @@ 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:250 admin/api/v2/serializers.py:256
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:265
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:268 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:279
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:292
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:305
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:581
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:603
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:772
160
+ #: admin/api/v2/serializers.py:783
162
161
  #, fuzzy
163
162
  #| msgid "Unknown"
164
163
  msgid "Unknown status"
165
164
  msgstr "Dizanv"
166
165
 
167
- #: admin/api/v2/viewsets.py:84
166
+ #: admin/api/v2/viewsets.py:95
168
167
  msgid "You don't have access to this domain"
169
168
  msgstr "N'ho peus moned ebet d'an domani-mañ"
170
169
 
171
- #: admin/api/v2/viewsets.py:87
170
+ #: admin/api/v2/viewsets.py:98
172
171
  msgid "You can't delete your own domain"
173
172
  msgstr "N'hallit ket dilemel ho tomani deoc'h-c'hwi hoc'h-unan"
174
173
 
@@ -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,45 +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:287 core/api/v2/viewsets.py:174
412
+ #: admin/app_settings.py:257
413
+ #, fuzzy
414
+ #| msgid "alias"
415
+ msgid "Aliases"
416
+ msgstr "alias"
417
+
418
+ #: admin/app_settings.py:263
419
+ msgid "Alias can target any domain"
420
+ msgstr ""
421
+
422
+ #: admin/app_settings.py:265
423
+ msgid "Allow aliases to target any domain, not just the local domains."
424
+ msgstr ""
425
+
426
+ #: admin/app_settings.py:272
427
+ msgid "Alias target block list"
428
+ msgstr ""
429
+
430
+ #: admin/app_settings.py:274
431
+ msgid "A list of domains that aliases cannot target (comma separated)."
432
+ msgstr ""
433
+
434
+ #: admin/app_settings.py:282
435
+ msgid "Alias target allow list"
436
+ msgstr ""
437
+
438
+ #: admin/app_settings.py:284
439
+ msgid "A list of domains that aliases can target (comma separated)."
440
+ msgstr ""
441
+
442
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
404
443
  msgid "Administration"
405
444
  msgstr "Melestradurezh"
406
445
 
@@ -422,6 +461,39 @@ msgstr ""
422
461
  msgid "Closed"
423
462
  msgstr "Serriñ"
424
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
+
425
497
  #: admin/handlers.py:179
426
498
  msgid "domain alias"
427
499
  msgstr "alias an domani"
@@ -431,61 +503,57 @@ msgstr "alias an domani"
431
503
  msgid "Account import failed (%s): domain does not exist"
432
504
  msgstr "Enporzhiadur kont c'hwitet (%s): n'eus ket eus an domani"
433
505
 
434
- #: admin/handlers.py:242 admin/models/mailbox.py:342
435
- msgid "Mailbox {} already exists"
436
- msgstr "Boest-postel {} a zo anezhi endeo"
437
-
438
- #: admin/handlers.py:251
506
+ #: admin/handlers.py:246
439
507
  #, python-format
440
508
  msgid "Account import failed (%s): wrong quota value"
441
509
  msgstr "Enporzhiadur kont c'hwitet (%s): talvoudegezh kota fall"
442
510
 
443
- #: admin/lib.py:121
511
+ #: admin/lib.py:126
444
512
  msgid "You are not allowed to import domains"
445
513
  msgstr "N'hoc'h ket aotreet da emporzhiañ domanioù"
446
514
 
447
- #: admin/lib.py:130
515
+ #: admin/lib.py:135
448
516
  msgid "You are not allowed to import domain aliases."
449
517
  msgstr "N'hoc'h ket aotreet da emporzhiañ aliasoù domani."
450
518
 
451
- #: admin/lib.py:222 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
452
- #: 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
453
521
  #, fuzzy, python-format
454
522
  #| msgid "No DNS records found for %s"
455
523
  msgid "No DNS record found for %s"
456
524
  msgstr "Enrolladenn DNS ebet kavet evit %s"
457
525
 
458
- #: admin/lib.py:225
526
+ #: admin/lib.py:230
459
527
  #, fuzzy, python-format
460
528
  #| msgid "No MX record for %s"
461
529
  msgid "No %(type)s record for %(name)s"
462
530
  msgstr "Enrolladenn MX ebet evit %s"
463
531
 
464
- #: admin/lib.py:229 admin/tests/test_mx.py:156
532
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
465
533
  msgid "No working name servers found"
466
534
  msgstr "N'eus bet kavet anv servijer ebet hag az afe en-dro"
467
535
 
468
- #: admin/lib.py:232 admin/tests/test_mx.py:160
536
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
469
537
  #, python-format
470
538
  msgid "DNS resolution timeout, unable to query %s at the moment"
471
539
  msgstr ""
472
540
  "Prantad gortoz spister DNS, n'heller ket sevel ar reked %s evit ar mare"
473
541
 
474
- #: admin/lib.py:236
542
+ #: admin/lib.py:241
475
543
  msgid "DNS name is too long: {}"
476
544
  msgstr ""
477
545
 
478
- #: admin/lib.py:267
546
+ #: admin/lib.py:272
479
547
  #, python-brace-format
480
548
  msgid "Invalid IP address format for {domain}; {addr}"
481
549
  msgstr "Stumm chomlec'h IP direizh evit {domain}; {addr}"
482
550
 
483
- #: admin/lib.py:360
551
+ #: admin/lib.py:365
484
552
  #, python-format
485
553
  msgid "Object already exists: %s"
486
554
  msgstr "Objed a zo anezhañ dija: %s"
487
555
 
488
- #: admin/lib.py:364
556
+ #: admin/lib.py:369
489
557
  #, python-format
490
558
  msgid "%d objects imported successfully"
491
559
  msgstr "%d objed emporzhiet gant berzh"
@@ -522,81 +590,54 @@ msgstr ""
522
590
  msgid "Failed to generate DKIM public key"
523
591
  msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa "
524
592
 
525
- #: admin/management/commands/subcommands/_mx.py:133
526
- msgid "MX {} listed by DNSBL provider {}"
527
- msgstr ""
528
-
529
- #: admin/management/commands/subcommands/_mx.py:174
530
- #, fuzzy
531
- #| msgid "Domain {} has no MX record"
532
- msgid "Domain has no MX record"
533
- msgstr "An domani {} n'eus enrolladenn MX ebet gantañ"
534
-
535
- #: admin/management/commands/subcommands/_mx.py:177
536
- msgid "Domain {} has no MX record"
537
- msgstr "An domani {} n'eus enrolladenn MX ebet gantañ"
538
-
539
- #: admin/management/commands/subcommands/_mx.py:195
540
- #, fuzzy
541
- #| msgid "MX records of {}"
542
- msgid "Invalid MX record: {}"
543
- msgstr "Enrolladennoù MX eus {}"
544
-
545
- #: admin/management/commands/subcommands/_mx.py:202
546
- #, python-brace-format
547
- msgid "MX record for domain {0} is invalid: {1}"
548
- msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}"
549
-
550
- #: admin/management/commands/subcommands/_mx.py:213
551
- msgid "[modoboa] MX issue(s) for domain {}"
552
- msgstr "[modoboa] kudenn(où) MX evit an domani {}"
553
-
554
- #: admin/management/commands/subcommands/_mx.py:269
555
- msgid "[modoboa] DNSBL issue(s) for domain {}"
556
- msgstr "[modoboa] Kudenn(où) DNSBL gant an domani {}"
557
-
558
- #: admin/models/alias.py:42
593
+ #: admin/models/alias.py:43
559
594
  msgid "Domain not found."
560
595
  msgstr "Neket bet kavet an domani."
561
596
 
562
- #: admin/models/alias.py:97 admin/models/mailbox.py:85
597
+ #: admin/models/alias.py:117 admin/models/mailbox.py:85
563
598
  msgid "address"
564
599
  msgstr "chomlec'h"
565
600
 
566
- #: admin/models/alias.py:99
601
+ #: admin/models/alias.py:119
567
602
  msgid "The alias address."
568
603
  msgstr "Chomlec'h an alias."
569
604
 
570
- #: admin/models/alias.py:103 admin/models/domain.py:45
605
+ #: admin/models/alias.py:123 admin/models/domain.py:45
571
606
  #: admin/models/domain_alias.py:45 autoreply/models.py:25
572
607
  msgid "enabled"
573
608
  msgstr "enaouet"
574
609
 
575
- #: admin/models/alias.py:104 admin/models/domain_alias.py:46
610
+ #: admin/models/alias.py:124 admin/models/domain_alias.py:46
576
611
  msgid "Check to activate this alias"
577
612
  msgstr "Kochiñ evit enaouiñ an alias-mañ"
578
613
 
579
- #: admin/models/alias.py:108
614
+ #: admin/models/alias.py:128
580
615
  msgid "Description"
581
616
  msgstr "Deskrivadur"
582
617
 
583
- #: admin/models/alias.py:109
618
+ #: admin/models/alias.py:129
584
619
  msgid "Expire at"
585
620
  msgstr "Diamzeriet da"
586
621
 
587
- #: admin/models/alias.py:150
622
+ #: admin/models/alias.py:170
588
623
  msgid "alias"
589
624
  msgstr "alias"
590
625
 
591
- #: admin/models/alias.py:183
626
+ #: admin/models/alias.py:203
592
627
  msgid "Invalid address"
593
628
  msgstr "Chomlec'h direizh"
594
629
 
595
- #: admin/models/alias.py:202
630
+ #: admin/models/alias.py:206
631
+ #, fuzzy
632
+ #| msgid "The domain name"
633
+ msgid "Target domain not allowed"
634
+ msgstr "Anv an domani"
635
+
636
+ #: admin/models/alias.py:224
596
637
  msgid "Local recipient {}@{} not found"
597
638
  msgstr "Resever lec'hel {}@{} nann-kavet"
598
639
 
599
- #: admin/models/alias.py:251
640
+ #: admin/models/alias.py:273
600
641
  #, fuzzy
601
642
  #| msgid "Invalid line: %s"
602
643
  msgid "Invalid line: {}"
@@ -720,6 +761,10 @@ msgstr "Kota an domani dibaseet"
720
761
  msgid "Domain does not exist"
721
762
  msgstr "N'eus ket eus an Domani"
722
763
 
764
+ #: admin/models/mailbox.py:342
765
+ msgid "Mailbox {} already exists"
766
+ msgstr "Boest-postel {} a zo anezhi endeo"
767
+
723
768
  #: admin/templates/admin/notifications/domain_in_dnsbl.html:3
724
769
  #, python-format
725
770
  msgid ""
@@ -747,22 +792,395 @@ msgstr ""
747
792
  "Modoboa a zo bet diguzhet gantañ ne oa tamm enrolladenn MX reizh gant an "
748
793
  "domani %(domain)s:"
749
794
 
750
- #: admin/tests/test_mx.py:155
795
+ #: admin/tests/test_mx.py:141
751
796
  #, python-format
752
797
  msgid "No MX record for %s"
753
798
  msgstr "Enrolladenn MX ebet evit %s"
754
799
 
755
- #: 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
756
801
  #, python-format
757
802
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
758
803
  msgstr "Stumm chomlec'h IP direizh evit %(domain)s; %(addr)s"
759
804
 
760
- #: admin/tests/test_mx.py:199
805
+ #: admin/tests/test_mx.py:185
761
806
  #, fuzzy, python-format
762
807
  #| msgid "No MX record for %s"
763
808
  msgid "No AAAA record for %s"
764
809
  msgstr "Enrolladenn MX ebet evit %s"
765
810
 
811
+ #: amavis/app_settings.py:11
812
+ #, fuzzy
813
+ #| msgid "LDAP settings"
814
+ msgid "Amavis settings"
815
+ msgstr "Arventennoù LDAP"
816
+
817
+ #: amavis/app_settings.py:17
818
+ msgid "Localpart is case sensitive"
819
+ msgstr ""
820
+
821
+ #: amavis/app_settings.py:19
822
+ msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive"
823
+ msgstr ""
824
+
825
+ #: amavis/app_settings.py:27
826
+ msgid "Recipient delimiter"
827
+ msgstr ""
828
+
829
+ #: amavis/app_settings.py:29
830
+ msgid "Value should match amavisd.conf variable $recipient_delimiter"
831
+ msgstr ""
832
+
833
+ #: amavis/app_settings.py:41
834
+ #, fuzzy
835
+ #| msgid "Quarantine"
836
+ msgid "Quarantine settings"
837
+ msgstr "Dispell"
838
+
839
+ #: amavis/app_settings.py:47
840
+ #, fuzzy
841
+ #| msgid "Maximum log record age"
842
+ msgid "Maximum message age"
843
+ msgstr "Oad enrollañ maksimom ar marilhoù"
844
+
845
+ #: amavis/app_settings.py:49
846
+ msgid "Quarantine messages maximum age (in days) before deletion"
847
+ msgstr ""
848
+
849
+ #: amavis/app_settings.py:60
850
+ msgid "Message releasing"
851
+ msgstr ""
852
+
853
+ #: amavis/app_settings.py:66
854
+ msgid "Remove released messages"
855
+ msgstr ""
856
+
857
+ #: amavis/app_settings.py:68
858
+ msgid "Remove messages marked as released while cleaning up the database"
859
+ msgstr ""
860
+
861
+ #: amavis/app_settings.py:76
862
+ #, fuzzy
863
+ #| msgid "Use a secured connection"
864
+ msgid "Amavis connection mode"
865
+ msgstr "Ober gant ur gevreadenn suraet"
866
+
867
+ #: amavis/app_settings.py:78
868
+ #, fuzzy
869
+ #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
870
+ msgid "Mode used to access the PDP server"
871
+ msgstr ""
872
+ "Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
873
+
874
+ #: amavis/app_settings.py:85
875
+ #, fuzzy
876
+ #| msgid "Server address"
877
+ msgid "PDP server address"
878
+ msgstr "Chomlec'h ar servijer"
879
+
880
+ #: amavis/app_settings.py:87
881
+ #, fuzzy
882
+ #| msgid "Server address"
883
+ msgid "PDP server address (if inet mode)"
884
+ msgstr "Chomlec'h ar servijer"
885
+
886
+ #: amavis/app_settings.py:95
887
+ #, fuzzy
888
+ #| msgid "Server port"
889
+ msgid "PDP server port"
890
+ msgstr "Porzh ar servijer"
891
+
892
+ #: amavis/app_settings.py:97
893
+ msgid "PDP server port (if inet mode)"
894
+ msgstr ""
895
+
896
+ #: amavis/app_settings.py:105
897
+ #, fuzzy
898
+ #| msgid "Server port"
899
+ msgid "PDP server socket"
900
+ msgstr "Porzh ar servijer"
901
+
902
+ #: amavis/app_settings.py:107
903
+ msgid "Path to the PDP server socket (if unix mode)"
904
+ msgstr ""
905
+
906
+ #: amavis/app_settings.py:115
907
+ msgid "Allow direct release"
908
+ msgstr ""
909
+
910
+ #: amavis/app_settings.py:117
911
+ msgid "Allow users to directly release their messages"
912
+ msgstr ""
913
+
914
+ #: amavis/app_settings.py:124
915
+ msgid "Enable self-service mode"
916
+ msgstr ""
917
+
918
+ #: amavis/app_settings.py:126
919
+ msgid "Activate the 'self-service' mode"
920
+ msgstr ""
921
+
922
+ #: amavis/app_settings.py:133
923
+ #, fuzzy
924
+ #| msgid "Notifications"
925
+ msgid "Notifications sender"
926
+ msgstr "Kemennadennoù"
927
+
928
+ #: amavis/app_settings.py:135
929
+ #, fuzzy
930
+ #| msgid "Email address used to send notifications."
931
+ msgid "The e-mail address used to send notitications"
932
+ msgstr "Chomlec'h postel implijet da gas kemmennoù."
933
+
934
+ #: amavis/app_settings.py:146
935
+ msgid "Manual learning"
936
+ msgstr ""
937
+
938
+ #: amavis/app_settings.py:152
939
+ msgid "Enable manual learning"
940
+ msgstr ""
941
+
942
+ #: amavis/app_settings.py:154
943
+ #, fuzzy
944
+ #| msgid "Allow this administrator to access user mailboxes"
945
+ msgid "Allow super administrators to manually train Spamassassin"
946
+ msgstr "Aotren an implijer-mañ da vont e boestoù-post an implijerien"
947
+
948
+ #: amavis/app_settings.py:161
949
+ msgid "Is Spamassassin local?"
950
+ msgstr ""
951
+
952
+ #: amavis/app_settings.py:163
953
+ msgid "Tell if Spamassassin is running on the same server than modoboa"
954
+ msgstr ""
955
+
956
+ #: amavis/app_settings.py:171
957
+ #, fuzzy
958
+ #| msgid "Default top redirection"
959
+ msgid "Default user"
960
+ msgstr "Adhenchañ pennañ dre-ziouer"
961
+
962
+ #: amavis/app_settings.py:173
963
+ msgid "Name of the user owning the default bayesian database"
964
+ msgstr ""
965
+
966
+ #: amavis/app_settings.py:181
967
+ #, fuzzy
968
+ #| msgid "Sender address"
969
+ msgid "Spamd address"
970
+ msgstr "Chomlec'h ar c'haser"
971
+
972
+ #: amavis/app_settings.py:183
973
+ msgid "The IP address where spamd can be reached"
974
+ msgstr ""
975
+
976
+ #: amavis/app_settings.py:191
977
+ msgid "Spamd port"
978
+ msgstr ""
979
+
980
+ #: amavis/app_settings.py:193
981
+ msgid "The TCP port spamd is listening on"
982
+ msgstr ""
983
+
984
+ #: amavis/app_settings.py:202
985
+ #, fuzzy
986
+ #| msgid "Enable per-domain limits"
987
+ msgid "Enable per-domain manual learning"
988
+ msgstr "Enaouiñ ar bevennoù dre-zomani"
989
+
990
+ #: amavis/app_settings.py:205
991
+ #, fuzzy
992
+ #| msgid "Allow this administrator to access user mailboxes"
993
+ msgid ""
994
+ "Allow domain administrators to train Spamassassin (within dedicated per-"
995
+ "domain databases)"
996
+ msgstr "Aotren an implijer-mañ da vont e boestoù-post an implijerien"
997
+
998
+ #: amavis/app_settings.py:215
999
+ #, fuzzy
1000
+ #| msgid "Enable per-domain limits"
1001
+ msgid "Enable per-user manual learning"
1002
+ msgstr "Enaouiñ ar bevennoù dre-zomani"
1003
+
1004
+ #: amavis/app_settings.py:218
1005
+ msgid ""
1006
+ "Allow simple users to personally train Spamassassin (within a dedicated "
1007
+ "database)"
1008
+ msgstr ""
1009
+
1010
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
1011
+ #, fuzzy
1012
+ #| msgid "Display details"
1013
+ msgid "Display"
1014
+ msgstr "Diskouez ar munudoù"
1015
+
1016
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
1017
+ #, fuzzy
1018
+ #| msgid "Number of displayed items per page"
1019
+ msgid "Number of displayed emails per page"
1020
+ msgstr "Niver a elfennoù diskouezet dre bajenn"
1021
+
1022
+ #: amavis/app_settings.py:246
1023
+ msgid "Set the maximum number of messages displayed in a page"
1024
+ msgstr ""
1025
+
1026
+ #: amavis/app_settings.py:266 amavis/app_settings.py:273
1027
+ msgid "Amavis"
1028
+ msgstr ""
1029
+
1030
+ #: amavis/checks/settings_checks.py:8
1031
+ msgid ""
1032
+ "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used "
1033
+ "by the Amavis database."
1034
+ msgstr ""
1035
+
1036
+ #: amavis/checks/settings_checks.py:12
1037
+ msgid ""
1038
+ "Check your database character encoding and set/update "
1039
+ "AMAVIS_DEFAULT_DATABASE_ENCODING."
1040
+ msgstr ""
1041
+
1042
+ #: amavis/checks/settings_checks.py:19
1043
+ msgid "Modoboa Amavis has not been tested using the selected database engine."
1044
+ msgstr ""
1045
+
1046
+ #: amavis/checks/settings_checks.py:20
1047
+ msgid "Try using PostgreSQL, MySQL or MariaDB."
1048
+ msgstr ""
1049
+
1050
+ #: amavis/handlers.py:141
1051
+ msgid "Pending requests"
1052
+ msgstr ""
1053
+
1054
+ #: amavis/lib.py:59
1055
+ #, python-format
1056
+ msgid "Connection to amavis failed: %s"
1057
+ msgstr ""
1058
+
1059
+ #: amavis/lib.py:133
1060
+ msgid "Failed to find {} binary"
1061
+ msgstr ""
1062
+
1063
+ #: amavis/lib.py:148
1064
+ #, fuzzy
1065
+ #| msgid "Local recipient {}@{} not found"
1066
+ msgid "No recipient found"
1067
+ msgstr "Resever lec'hel {}@{} nann-kavet"
1068
+
1069
+ #: amavis/lib.py:159
1070
+ #, fuzzy
1071
+ #| msgid "Domain not found."
1072
+ msgid "Local domain not found"
1073
+ msgstr "Neket bet kavet an domani."
1074
+
1075
+ #: amavis/management/commands/amnotify.py:59
1076
+ #, fuzzy
1077
+ #| msgid "%s: limit reached"
1078
+ msgid "[modoboa] Pending release requests"
1079
+ msgstr "%s: bevenn tizhet"
1080
+
1081
+ #: amavis/models.py:101
1082
+ #, fuzzy
1083
+ #| msgid "Search filter"
1084
+ msgid "Virus filter"
1085
+ msgstr "Sil klask"
1086
+
1087
+ #: amavis/models.py:105 amavis/models.py:119 amavis/models.py:133
1088
+ msgid "yes"
1089
+ msgstr ""
1090
+
1091
+ #: amavis/models.py:106 amavis/models.py:120 amavis/models.py:134
1092
+ msgid "no"
1093
+ msgstr ""
1094
+
1095
+ #: amavis/models.py:107 amavis/models.py:121 amavis/models.py:135
1096
+ msgid "default"
1097
+ msgstr ""
1098
+
1099
+ #: amavis/models.py:111
1100
+ msgid "Bypass virus checks or not. Choose 'default' to use global settings."
1101
+ msgstr ""
1102
+
1103
+ #: amavis/models.py:115
1104
+ #, fuzzy
1105
+ #| msgid "Search filter"
1106
+ msgid "Spam filter"
1107
+ msgstr "Sil klask"
1108
+
1109
+ #: amavis/models.py:125
1110
+ msgid "Bypass spam checks or not. Choose 'default' to use global settings."
1111
+ msgstr ""
1112
+
1113
+ #: amavis/models.py:129
1114
+ #, fuzzy
1115
+ #| msgid "Search filter"
1116
+ msgid "Banned filter"
1117
+ msgstr "Sil klask"
1118
+
1119
+ #: amavis/models.py:139
1120
+ msgid "Bypass banned checks or not. Choose 'default' to use global settings."
1121
+ msgstr ""
1122
+
1123
+ #: amavis/models.py:170
1124
+ msgid "Spam marker"
1125
+ msgstr ""
1126
+
1127
+ #: amavis/models.py:176
1128
+ msgid ""
1129
+ "Modify spam subject using the specified text. Choose 'default' to use global "
1130
+ "settings."
1131
+ msgstr ""
1132
+
1133
+ #: amavis/templates/amavis/notifications/pending_requests.html:3
1134
+ #, python-format
1135
+ msgid "%(counter)s release request is pending for action."
1136
+ msgid_plural "%(counter)s release requests are pending for action."
1137
+ msgstr[0] ""
1138
+ msgstr[1] ""
1139
+ msgstr[2] ""
1140
+ msgstr[3] ""
1141
+ msgstr[4] ""
1142
+
1143
+ #: amavis/templates/amavis/notifications/pending_requests.html:8
1144
+ msgid "Sketch:"
1145
+ msgstr ""
1146
+
1147
+ #: amavis/templates/amavis/notifications/pending_requests.html:10
1148
+ msgid "From:"
1149
+ msgstr ""
1150
+
1151
+ #: amavis/templates/amavis/notifications/pending_requests.html:11
1152
+ msgid "To:"
1153
+ msgstr ""
1154
+
1155
+ #: amavis/templates/amavis/notifications/pending_requests.html:12
1156
+ #, fuzzy
1157
+ #| msgid "Date"
1158
+ msgid "Date:"
1159
+ msgstr "Deiziad"
1160
+
1161
+ #: amavis/templates/amavis/notifications/pending_requests.html:13
1162
+ #, fuzzy
1163
+ #| msgid "Subject"
1164
+ msgid "Subject:"
1165
+ msgstr "Sujed"
1166
+
1167
+ #: amavis/templates/amavis/notifications/pending_requests.html:14
1168
+ #, fuzzy
1169
+ #| msgid "Message"
1170
+ msgid "Act on this message:"
1171
+ msgstr "Kemennadenn"
1172
+
1173
+ #: amavis/templates/amavis/notifications/pending_requests.html:16
1174
+ #, python-format
1175
+ msgid "Please visit %(listingurl)s for a full listing."
1176
+ msgstr ""
1177
+
1178
+ #: amavis/viewsets.py:122
1179
+ #, fuzzy
1180
+ #| msgid "Invalid address"
1181
+ msgid "Invalid request"
1182
+ msgstr "Chomlec'h direizh"
1183
+
766
1184
  #: autoreply/api/v2/serializers.py:27
767
1185
  msgid "Value can't be less than 1 day"
768
1186
  msgstr ""
@@ -879,7 +1297,7 @@ msgstr "Merour an domani"
879
1297
  msgid "Allow domain administrators to manage user calendars (read and write)"
880
1298
  msgstr "Aotren an implijer-mañ da vont e boestoù-post an implijerien"
881
1299
 
882
- #: calendars/app_settings.py:60 core/app_settings.py:676
1300
+ #: calendars/app_settings.py:60 core/app_settings.py:664
883
1301
  #: rspamd/app_settings.py:45
884
1302
  msgid "Miscellaneous"
885
1303
  msgstr "A-bep seurt"
@@ -893,15 +1311,15 @@ msgid ""
893
1311
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
894
1312
  msgstr ""
895
1313
 
896
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
1314
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205
897
1315
  msgid "Calendars"
898
1316
  msgstr ""
899
1317
 
900
- #: 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
901
1319
  msgid "Server location is not set, please fix it."
902
1320
  msgstr "Neket termenet lec'hiadur ho servijer, reizhit an dra-se mar plij."
903
1321
 
904
- #: calendars/viewsets.py:197
1322
+ #: calendars/viewsets.py:199
905
1323
  msgid "Uploaded file is too big (max: {} bytes)"
906
1324
  msgstr ""
907
1325
 
@@ -929,7 +1347,7 @@ msgstr "Frekañs sinkroneladur"
929
1347
  msgid "Interval in seconds between 2 synchronization requests"
930
1348
  msgstr "Padelezh en eilennoù etre 2 reked sinkroneladur"
931
1349
 
932
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
1350
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:195
933
1351
  #, fuzzy
934
1352
  #| msgid "Domains"
935
1353
  msgid "Contacts"
@@ -983,12 +1401,12 @@ msgstr "Enrolladennoù MX eus {}"
983
1401
  msgid "2FA is already enabled"
984
1402
  msgstr ""
985
1403
 
986
- #: core/api/v1/serializers.py:86
1404
+ #: core/api/v1/serializers.py:87
987
1405
  #, python-format
988
1406
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
989
1407
  msgstr ""
990
1408
 
991
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
1409
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
992
1410
  #, fuzzy
993
1411
  #| msgid "Old password"
994
1412
  msgid "Invalid password"
@@ -1002,24 +1420,20 @@ msgstr ""
1002
1420
  msgid "Local"
1003
1421
  msgstr "Lec'hel"
1004
1422
 
1005
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
1006
- msgid "User profile"
1007
- msgstr "Profil implijer"
1008
-
1009
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1010
- #: 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
1011
1425
  msgid "Invalid syntax"
1012
1426
  msgstr "Sintaks direizh"
1013
1427
 
1014
- #: core/api/v2/serializers.py:233
1428
+ #: core/api/v2/serializers.py:226
1015
1429
  msgid "Invalid rounds number"
1016
1430
  msgstr "Niveroù ront direizh"
1017
1431
 
1018
- #: core/api/v2/serializers.py:433 core/forms.py:81
1432
+ #: core/api/v2/serializers.py:426 core/forms.py:81
1019
1433
  msgid "This code is invalid"
1020
1434
  msgstr ""
1021
1435
 
1022
- #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
1436
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1023
1437
  msgid "Please use the following code to recover your Modoboa password: {}"
1024
1438
  msgstr ""
1025
1439
 
@@ -1029,48 +1443,58 @@ msgstr ""
1029
1443
  msgid "Administration console"
1030
1444
  msgstr "Melestradurezh"
1031
1445
 
1032
- #: core/api/v2/viewsets.py:187
1446
+ #: core/api/v2/viewsets.py:184 dmarc/models.py:11
1447
+ msgid "Quarantine"
1448
+ msgstr "Dispell"
1449
+
1450
+ #: core/api/v2/viewsets.py:186
1451
+ #, fuzzy
1452
+ #| msgid "Quarantine"
1453
+ msgid "Amavis quarantine"
1454
+ msgstr "Dispell"
1455
+
1456
+ #: core/api/v2/viewsets.py:197
1033
1457
  #, fuzzy
1034
1458
  #| msgid "Address"
1035
1459
  msgid "Address book"
1036
1460
  msgstr "Levr chomlec'hioù"
1037
1461
 
1038
- #: core/api/v2/viewsets.py:197
1462
+ #: core/api/v2/viewsets.py:207
1039
1463
  msgid "Calendar"
1040
1464
  msgstr ""
1041
1465
 
1042
- #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1043
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1466
+ #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1467
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1044
1468
  #, fuzzy
1045
1469
  #| msgid "E-mail"
1046
1470
  msgid "Webmail"
1047
1471
  msgstr "Postel"
1048
1472
 
1049
- #: core/app_settings.py:37
1473
+ #: core/app_settings.py:25
1050
1474
  msgid "Authentication"
1051
1475
  msgstr "O vezañ anavezet"
1052
1476
 
1053
- #: core/app_settings.py:43
1477
+ #: core/app_settings.py:31
1054
1478
  msgid "Authentication type"
1055
1479
  msgstr "Doare anavezadur"
1056
1480
 
1057
- #: core/app_settings.py:45
1481
+ #: core/app_settings.py:33
1058
1482
  msgid "The backend used for authentication"
1059
1483
  msgstr "Drekleur implijet evit bezañ anavezet"
1060
1484
 
1061
- #: core/app_settings.py:52
1485
+ #: core/app_settings.py:40
1062
1486
  msgid "Default password scheme"
1063
1487
  msgstr "Ger-tremen dre ziouer ar brastres"
1064
1488
 
1065
- #: core/app_settings.py:54
1489
+ #: core/app_settings.py:42
1066
1490
  msgid "Scheme used to crypt mailbox passwords"
1067
1491
  msgstr "Brastres implijet evit enrinegañ gerioù-tremen ar postelerezh"
1068
1492
 
1069
- #: core/app_settings.py:61
1493
+ #: core/app_settings.py:49
1070
1494
  msgid "Rounds"
1071
1495
  msgstr "Troiadoù"
1072
1496
 
1073
- #: core/app_settings.py:63
1497
+ #: core/app_settings.py:51
1074
1498
  msgid ""
1075
1499
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1076
1500
  "between 1000 and 999999999, inclusive."
@@ -1078,149 +1502,149 @@ msgstr ""
1078
1502
  "Niver a droiadoù d'ober ganto (implijet gant sha256crypt ha sha512crypt "
1079
1503
  "hepken). Bez' e rank bezañ etre 1000 ha 999999999, e-barzh."
1080
1504
 
1081
- #: core/app_settings.py:73
1505
+ #: core/app_settings.py:61
1082
1506
  msgid "Update password scheme at login"
1083
1507
  msgstr ""
1084
1508
 
1085
- #: core/app_settings.py:76
1509
+ #: core/app_settings.py:64
1086
1510
  msgid "Update user password at login to use the default password scheme"
1087
1511
  msgstr ""
1088
1512
  "Hizivait ger-tremen an implijer d'ar mare kevreaén evit implijout ar "
1089
1513
  "brastres ger-tremen dre-ziouer"
1090
1514
 
1091
- #: core/app_settings.py:84
1515
+ #: core/app_settings.py:72
1092
1516
  msgid "Default password"
1093
1517
  msgstr "Ger-tremen dre-ziouer"
1094
1518
 
1095
- #: core/app_settings.py:86
1519
+ #: core/app_settings.py:74
1096
1520
  msgid "Default password for automatically created accounts."
1097
1521
  msgstr "Ger-tremen dre-ziouer evit ar gontoù em-grouet."
1098
1522
 
1099
- #: core/app_settings.py:93
1523
+ #: core/app_settings.py:81
1100
1524
  msgid "Random password length"
1101
1525
  msgstr "Hirder dre-zegouezh ger-tremen"
1102
1526
 
1103
- #: core/app_settings.py:95
1527
+ #: core/app_settings.py:83
1104
1528
  msgid "Length of randomly generated passwords."
1105
1529
  msgstr "Hirder ar gerioù-tremen em-c'hanet."
1106
1530
 
1107
- #: core/app_settings.py:103
1531
+ #: core/app_settings.py:91
1108
1532
  msgid "Allow special characters for random password"
1109
1533
  msgstr ""
1110
1534
 
1111
- #: core/app_settings.py:106
1535
+ #: core/app_settings.py:94
1112
1536
  #, fuzzy
1113
1537
  #| msgid "Length of randomly generated passwords."
1114
1538
  msgid "Enable special characters in randomly generated passwords."
1115
1539
  msgstr "Hirder ar gerioù-tremen em-c'hanet."
1116
1540
 
1117
- #: core/app_settings.py:114
1541
+ #: core/app_settings.py:102
1118
1542
  msgid "Update password service URL"
1119
1543
  msgstr ""
1120
1544
 
1121
- #: core/app_settings.py:116
1545
+ #: core/app_settings.py:104
1122
1546
  msgid ""
1123
1547
  "The URL of an external page where users will be able to update their "
1124
1548
  "password. It applies only to non local users, ie. those automatically "
1125
1549
  "created after a successful external authentication (LDAP, SMTP)."
1126
1550
  msgstr ""
1127
1551
 
1128
- #: core/app_settings.py:126
1552
+ #: core/app_settings.py:114
1129
1553
  msgid "Password recovery announcement"
1130
1554
  msgstr ""
1131
1555
 
1132
- #: core/app_settings.py:128
1556
+ #: core/app_settings.py:116
1133
1557
  msgid "A temporary message that will be displayed on the reset password page."
1134
1558
  msgstr ""
1135
1559
 
1136
- #: core/app_settings.py:137
1560
+ #: core/app_settings.py:125
1137
1561
  msgid "Enable password recovery by SMS"
1138
1562
  msgstr ""
1139
1563
 
1140
- #: core/app_settings.py:140
1564
+ #: core/app_settings.py:128
1141
1565
  msgid "Enable password recovery by SMS for users who filled a phone number."
1142
1566
  msgstr ""
1143
1567
 
1144
- #: core/app_settings.py:148
1568
+ #: core/app_settings.py:136
1145
1569
  msgid "SMS provider"
1146
1570
  msgstr ""
1147
1571
 
1148
- #: core/app_settings.py:151
1572
+ #: core/app_settings.py:139
1149
1573
  msgid "Choose a provider to send password recovery SMS"
1150
1574
  msgstr ""
1151
1575
 
1152
- #: core/app_settings.py:163
1576
+ #: core/app_settings.py:151
1153
1577
  msgid "LDAP"
1154
1578
  msgstr ""
1155
1579
 
1156
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1580
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1157
1581
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1158
- #: webmail/app_settings.py:73
1582
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1159
1583
  msgid "Server address"
1160
1584
  msgstr "Chomlec'h ar servijer"
1161
1585
 
1162
- #: core/app_settings.py:171
1586
+ #: core/app_settings.py:159
1163
1587
  msgid "The IP address or the DNS name of the LDAP server"
1164
1588
  msgstr "Chomlec'h IP pe anv DNS ar servijer LDAP"
1165
1589
 
1166
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1590
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1167
1591
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1168
- #: webmail/app_settings.py:91
1592
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1169
1593
  msgid "Server port"
1170
1594
  msgstr "Porzh ar servijer"
1171
1595
 
1172
- #: core/app_settings.py:180
1596
+ #: core/app_settings.py:168
1173
1597
  msgid "The TCP port number used by the LDAP server"
1174
1598
  msgstr "Niverenn borzh TCP implijet gant ar servijer LDAP"
1175
1599
 
1176
- #: core/app_settings.py:188
1600
+ #: core/app_settings.py:176
1177
1601
  msgid "Enable secondary server (fallback)"
1178
1602
  msgstr ""
1179
1603
 
1180
- #: core/app_settings.py:191
1604
+ #: core/app_settings.py:179
1181
1605
  msgid ""
1182
1606
  "Enable a secondary LDAP server which will be used if the primary one fails"
1183
1607
  msgstr ""
1184
1608
 
1185
- #: core/app_settings.py:199
1609
+ #: core/app_settings.py:187
1186
1610
  msgid "Secondary server address"
1187
1611
  msgstr ""
1188
1612
 
1189
- #: core/app_settings.py:202
1613
+ #: core/app_settings.py:190
1190
1614
  msgid "The IP address or the DNS name of the seondary LDAP server"
1191
1615
  msgstr ""
1192
1616
 
1193
- #: core/app_settings.py:209
1617
+ #: core/app_settings.py:197
1194
1618
  msgid "Secondary server port"
1195
1619
  msgstr ""
1196
1620
 
1197
- #: core/app_settings.py:212
1621
+ #: core/app_settings.py:200
1198
1622
  msgid "The TCP port number used by the LDAP secondary server"
1199
1623
  msgstr ""
1200
1624
 
1201
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1625
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1202
1626
  #: webmail/app_settings.py:45
1203
1627
  msgid "Use a secured connection"
1204
1628
  msgstr "Ober gant ur gevreadenn suraet"
1205
1629
 
1206
- #: core/app_settings.py:221
1630
+ #: core/app_settings.py:209
1207
1631
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1208
1632
  msgstr ""
1209
1633
  "Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
1210
1634
 
1211
- #: core/app_settings.py:228
1635
+ #: core/app_settings.py:216
1212
1636
  msgid "Active Directory"
1213
1637
  msgstr "Kavlec'h oberiant"
1214
1638
 
1215
- #: core/app_settings.py:230
1639
+ #: core/app_settings.py:218
1216
1640
  msgid "Tell if the LDAP server is an Active Directory one"
1217
1641
  msgstr "Lavarout a ra hag-eñ e vez ar servijer LDAP ur C'havlec'h Oberiant"
1218
1642
 
1219
- #: core/app_settings.py:237
1643
+ #: core/app_settings.py:225
1220
1644
  msgid "Administrator groups"
1221
1645
  msgstr "Strolladoù merañ"
1222
1646
 
1223
- #: core/app_settings.py:239
1647
+ #: core/app_settings.py:227
1224
1648
  msgid ""
1225
1649
  "Members of those LDAP Posix groups will be created as domain administrators. "
1226
1650
  "Use ';' characters to separate groups."
@@ -1228,47 +1652,47 @@ msgstr ""
1228
1652
  "Izili ar strolladoù LDAP Posix a vo krouet evel bezañ merourien domani. "
1229
1653
  "Implijit an arouezoù ';' evit gellet skejañ ar strolladoù."
1230
1654
 
1231
- #: core/app_settings.py:248
1655
+ #: core/app_settings.py:236
1232
1656
  msgid "Group type"
1233
1657
  msgstr "Doare ar strollad"
1234
1658
 
1235
- #: core/app_settings.py:250
1659
+ #: core/app_settings.py:238
1236
1660
  msgid "The LDAP group type to use with your directory."
1237
1661
  msgstr "An doare strollad LDAP da implijout gant ho kavlec'h."
1238
1662
 
1239
- #: core/app_settings.py:257
1663
+ #: core/app_settings.py:245
1240
1664
  msgid "Groups search base"
1241
1665
  msgstr "Diazez klask ar strolladoù"
1242
1666
 
1243
- #: core/app_settings.py:259
1667
+ #: core/app_settings.py:247
1244
1668
  msgid "The distinguished name of the search base used to find groups"
1245
1669
  msgstr "Anv dibar an diaz klask implijet evit kavout strolladoù"
1246
1670
 
1247
- #: core/app_settings.py:267
1671
+ #: core/app_settings.py:255
1248
1672
  msgid "Password attribute"
1249
1673
  msgstr "Perzhioù ar ger-tremen"
1250
1674
 
1251
- #: core/app_settings.py:269
1675
+ #: core/app_settings.py:257
1252
1676
  msgid "The attribute used to store user passwords"
1253
1677
  msgstr "Ar perzhioù implijet evit stokiñ ar gerioù-tremen implijer"
1254
1678
 
1255
- #: core/app_settings.py:276
1679
+ #: core/app_settings.py:264
1256
1680
  msgid "LDAP authentication settings"
1257
1681
  msgstr ""
1258
1682
 
1259
- #: core/app_settings.py:284
1683
+ #: core/app_settings.py:272
1260
1684
  msgid "Authentication method"
1261
1685
  msgstr "Doare dilesañ"
1262
1686
 
1263
- #: core/app_settings.py:287
1687
+ #: core/app_settings.py:275
1264
1688
  msgid "Choose the authentication method to use"
1265
1689
  msgstr "Dibabit an doare anavezadur da vezañ implijet"
1266
1690
 
1267
- #: core/app_settings.py:294 core/app_settings.py:357
1691
+ #: core/app_settings.py:282 core/app_settings.py:345
1268
1692
  msgid "Bind DN"
1269
1693
  msgstr "Liammañ DN"
1270
1694
 
1271
- #: core/app_settings.py:296 core/app_settings.py:359
1695
+ #: core/app_settings.py:284 core/app_settings.py:347
1272
1696
  msgid ""
1273
1697
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1274
1698
  "for an anonymous bind"
@@ -1276,29 +1700,29 @@ msgstr ""
1276
1700
  "An anv dibar da vezañ implijet evit en em liammañ ouzh ar servijer LDAP. "
1277
1701
  "Lezel goullo evit un liamm dizanv."
1278
1702
 
1279
- #: core/app_settings.py:305 core/app_settings.py:367
1703
+ #: core/app_settings.py:293 core/app_settings.py:355
1280
1704
  msgid "Bind password"
1281
1705
  msgstr "Liammañ ur ger-tremen"
1282
1706
 
1283
- #: core/app_settings.py:307 core/app_settings.py:369
1707
+ #: core/app_settings.py:295 core/app_settings.py:357
1284
1708
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1285
1709
  msgstr ""
1286
1710
  "Ar ger-tremen d'ober gantañ evit kevreañ ouzh ar servijer LDAP (gant "
1287
1711
  "'kevreadenn DN')"
1288
1712
 
1289
- #: core/app_settings.py:317 core/app_settings.py:422
1713
+ #: core/app_settings.py:305 core/app_settings.py:410
1290
1714
  msgid "Users search base"
1291
1715
  msgstr "Diazez enklask an implijerien"
1292
1716
 
1293
- #: core/app_settings.py:319 core/app_settings.py:424
1717
+ #: core/app_settings.py:307 core/app_settings.py:412
1294
1718
  msgid "The distinguished name of the search base used to find users"
1295
1719
  msgstr "Anv dibar an diaz enklask implijet evit kavout implijerien"
1296
1720
 
1297
- #: core/app_settings.py:328 core/app_settings.py:433
1721
+ #: core/app_settings.py:316 core/app_settings.py:421
1298
1722
  msgid "Search filter"
1299
1723
  msgstr "Sil klask"
1300
1724
 
1301
- #: core/app_settings.py:330 core/app_settings.py:435
1725
+ #: core/app_settings.py:318 core/app_settings.py:423
1302
1726
  msgid ""
1303
1727
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1304
1728
  "valid, it must be enclosed in parentheses."
@@ -1306,11 +1730,11 @@ msgstr ""
1306
1730
  "Ur chadenn sil diret (d.sk. '(objedKlas = person)'). Evit bezañ reizh, e "
1307
1731
  "rank bezañ enklozet etre krommelloù."
1308
1732
 
1309
- #: core/app_settings.py:339
1733
+ #: core/app_settings.py:327
1310
1734
  msgid "User DN template"
1311
1735
  msgstr "Patrom implijer DN"
1312
1736
 
1313
- #: core/app_settings.py:341
1737
+ #: core/app_settings.py:329
1314
1738
  #, python-format
1315
1739
  msgid ""
1316
1740
  "The template used to construct a user's DN. It should contain one "
@@ -1319,236 +1743,236 @@ msgstr ""
1319
1743
  "Ar skouer implijet evit sevel DN un implijer. Rankout a rafe enderc'hel ur "
1320
1744
  "spas miret (d.l.e %(user)s)"
1321
1745
 
1322
- #: core/app_settings.py:350
1746
+ #: core/app_settings.py:338
1323
1747
  msgid "LDAP synchronization settings"
1324
1748
  msgstr ""
1325
1749
 
1326
- #: core/app_settings.py:378
1750
+ #: core/app_settings.py:366
1327
1751
  msgid "Enable export to LDAP"
1328
1752
  msgstr ""
1329
1753
 
1330
- #: core/app_settings.py:380
1754
+ #: core/app_settings.py:368
1331
1755
  msgid ""
1332
1756
  "Enable automatic synchronization between local database and LDAP directory"
1333
1757
  msgstr ""
1334
1758
 
1335
- #: core/app_settings.py:389
1759
+ #: core/app_settings.py:377
1336
1760
  msgid "Delete remote LDAP account when local account is deleted"
1337
1761
  msgstr ""
1338
1762
 
1339
- #: core/app_settings.py:392
1763
+ #: core/app_settings.py:380
1340
1764
  msgid ""
1341
1765
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1342
1766
  "be disabled."
1343
1767
  msgstr ""
1344
1768
 
1345
- #: core/app_settings.py:401
1769
+ #: core/app_settings.py:389
1346
1770
  msgid "Account DN template"
1347
1771
  msgstr ""
1348
1772
 
1349
- #: core/app_settings.py:403
1773
+ #: core/app_settings.py:391
1350
1774
  #, python-format
1351
1775
  msgid ""
1352
1776
  "The template used to construct an account's DN. It should contain one "
1353
1777
  "placeholder (ie. %(user)s)"
1354
1778
  msgstr ""
1355
1779
 
1356
- #: core/app_settings.py:412
1780
+ #: core/app_settings.py:400
1357
1781
  msgid "Enable import from LDAP"
1358
1782
  msgstr ""
1359
1783
 
1360
- #: core/app_settings.py:414
1784
+ #: core/app_settings.py:402
1361
1785
  msgid "Enable account synchronization from LDAP directory to local database"
1362
1786
  msgstr ""
1363
1787
 
1364
- #: core/app_settings.py:444
1788
+ #: core/app_settings.py:432
1365
1789
  msgid "Username attribute"
1366
1790
  msgstr ""
1367
1791
 
1368
- #: core/app_settings.py:446
1792
+ #: core/app_settings.py:434
1369
1793
  msgid "The name of the LDAP attribute where the username can be found."
1370
1794
  msgstr ""
1371
1795
 
1372
- #: core/app_settings.py:455
1796
+ #: core/app_settings.py:443
1373
1797
  msgid "Enable Dovecot LDAP sync"
1374
1798
  msgstr ""
1375
1799
 
1376
- #: core/app_settings.py:457
1800
+ #: core/app_settings.py:445
1377
1801
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1378
1802
  msgstr ""
1379
1803
 
1380
- #: core/app_settings.py:465
1804
+ #: core/app_settings.py:453
1381
1805
  msgid "Dovecot LDAP config file"
1382
1806
  msgstr ""
1383
1807
 
1384
- #: core/app_settings.py:467
1808
+ #: core/app_settings.py:455
1385
1809
  msgid ""
1386
1810
  "Location of the configuration file which contains Dovecot LDAP settings."
1387
1811
  msgstr ""
1388
1812
 
1389
- #: core/app_settings.py:480
1813
+ #: core/app_settings.py:468
1390
1814
  msgid "Dashboard"
1391
1815
  msgstr "Taolenn-stur"
1392
1816
 
1393
- #: core/app_settings.py:486
1817
+ #: core/app_settings.py:474
1394
1818
  #, fuzzy
1395
1819
  #| msgid "Custom RSS feed"
1396
1820
  msgid "Custom welcome message"
1397
1821
  msgstr "Froud RSS personel"
1398
1822
 
1399
- #: core/app_settings.py:488
1823
+ #: core/app_settings.py:476
1400
1824
  msgid "A welcome message that will be displayed instead the default one"
1401
1825
  msgstr ""
1402
1826
 
1403
- #: core/app_settings.py:495
1827
+ #: core/app_settings.py:483
1404
1828
  msgid "Custom RSS feed"
1405
1829
  msgstr "Froud RSS personel"
1406
1830
 
1407
- #: core/app_settings.py:497
1831
+ #: core/app_settings.py:485
1408
1832
  msgid "Display custom RSS feed to resellers and domain administrators"
1409
1833
  msgstr ""
1410
1834
  "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
1411
1835
 
1412
- #: core/app_settings.py:506
1836
+ #: core/app_settings.py:494
1413
1837
  #, fuzzy
1414
1838
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1415
1839
  msgid "Display custom RSS feed to super admins"
1416
1840
  msgstr ""
1417
1841
  "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
1418
1842
 
1419
- #: core/app_settings.py:509
1843
+ #: core/app_settings.py:497
1420
1844
  #, fuzzy
1421
1845
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1422
1846
  msgid "Display custom RSS feed also to super administrators"
1423
1847
  msgstr ""
1424
1848
  "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani"
1425
1849
 
1426
- #: core/app_settings.py:517
1850
+ #: core/app_settings.py:505
1427
1851
  msgid "Hide features widget"
1428
1852
  msgstr "Kuzhat an arc'hweladurioù objed"
1429
1853
 
1430
- #: core/app_settings.py:519
1854
+ #: core/app_settings.py:507
1431
1855
  msgid "Hide features widget for resellers and domain administrators"
1432
1856
  msgstr ""
1433
1857
  "Kuzhat an arc'hweladurioù objed d'an eilgwerzherien ha merourien an domani"
1434
1858
 
1435
- #: core/app_settings.py:531
1859
+ #: core/app_settings.py:519
1436
1860
  msgid "Theme"
1437
1861
  msgstr ""
1438
1862
 
1439
- #: core/app_settings.py:537
1863
+ #: core/app_settings.py:525
1440
1864
  msgid "Primary theme color"
1441
1865
  msgstr ""
1442
1866
 
1443
- #: core/app_settings.py:539
1867
+ #: core/app_settings.py:527
1444
1868
  msgid ""
1445
1869
  "Primary color of the theme (hexadecimal code), used as the background color "
1446
1870
  "of the left menu for example"
1447
1871
  msgstr ""
1448
1872
 
1449
- #: core/app_settings.py:548
1873
+ #: core/app_settings.py:536
1450
1874
  msgid "Primary theme color (lighter version)"
1451
1875
  msgstr ""
1452
1876
 
1453
- #: core/app_settings.py:551 core/app_settings.py:563
1877
+ #: core/app_settings.py:539 core/app_settings.py:551
1454
1878
  msgid "Primary color of the theme (hexadecimal code)"
1455
1879
  msgstr ""
1456
1880
 
1457
- #: core/app_settings.py:560
1881
+ #: core/app_settings.py:548
1458
1882
  msgid "Primary theme color (darker version)"
1459
1883
  msgstr ""
1460
1884
 
1461
- #: core/app_settings.py:571
1885
+ #: core/app_settings.py:559
1462
1886
  #, fuzzy
1463
1887
  #| msgid "Secondary email"
1464
1888
  msgid "Secondary theme color"
1465
1889
  msgstr "Eil chomlec'h postel"
1466
1890
 
1467
- #: core/app_settings.py:573
1891
+ #: core/app_settings.py:561
1468
1892
  msgid ""
1469
1893
  "Secondary color of the theme (hexadecimal code), used as the background "
1470
1894
  "color of some buttons for example"
1471
1895
  msgstr ""
1472
1896
 
1473
- #: core/app_settings.py:581
1897
+ #: core/app_settings.py:569
1474
1898
  msgid "Labels theme color"
1475
1899
  msgstr ""
1476
1900
 
1477
- #: core/app_settings.py:583
1901
+ #: core/app_settings.py:571
1478
1902
  msgid "Theme color for labels (hexadecimal code)"
1479
1903
  msgstr ""
1480
1904
 
1481
- #: core/app_settings.py:595
1905
+ #: core/app_settings.py:583
1482
1906
  msgid "Notifications"
1483
1907
  msgstr "Kemennadennoù"
1484
1908
 
1485
- #: core/app_settings.py:601
1909
+ #: core/app_settings.py:589
1486
1910
  msgid "Sender address"
1487
1911
  msgstr "Chomlec'h ar c'haser"
1488
1912
 
1489
- #: core/app_settings.py:603
1913
+ #: core/app_settings.py:591
1490
1914
  msgid "Email address used to send notifications."
1491
1915
  msgstr "Chomlec'h postel implijet da gas kemmennoù."
1492
1916
 
1493
- #: core/app_settings.py:614
1917
+ #: core/app_settings.py:602
1494
1918
  msgid "Public API"
1495
1919
  msgstr "API foran"
1496
1920
 
1497
- #: core/app_settings.py:620
1921
+ #: core/app_settings.py:608
1498
1922
  msgid "Enable communication"
1499
1923
  msgstr "Enaouiñ ar c'hehentiñ"
1500
1924
 
1501
- #: core/app_settings.py:622 core/app_settings.py:632
1925
+ #: core/app_settings.py:610 core/app_settings.py:620
1502
1926
  msgid "Automatically checks if a newer version is available"
1503
1927
  msgstr "Em-wiriañ ma vez ur stumm nevez hegerz"
1504
1928
 
1505
- #: core/app_settings.py:629
1929
+ #: core/app_settings.py:617
1506
1930
  msgid "Check new versions"
1507
1931
  msgstr "Klask stummoù nevez"
1508
1932
 
1509
- #: core/app_settings.py:640
1933
+ #: core/app_settings.py:628
1510
1934
  msgid "Send an email when new versions are found"
1511
1935
  msgstr ""
1512
1936
 
1513
- #: core/app_settings.py:644
1937
+ #: core/app_settings.py:632
1514
1938
  msgid "Send an email to notify admins about new versions"
1515
1939
  msgstr ""
1516
1940
 
1517
- #: core/app_settings.py:651 sievefilters/constants.py:25
1941
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1518
1942
  msgid "Recipient"
1519
1943
  msgstr ""
1520
1944
 
1521
- #: core/app_settings.py:654
1945
+ #: core/app_settings.py:642
1522
1946
  msgid "Recipient of new versions notification emails."
1523
1947
  msgstr ""
1524
1948
 
1525
- #: core/app_settings.py:661
1949
+ #: core/app_settings.py:649
1526
1950
  msgid "Send statistics"
1527
1951
  msgstr "Kas statistikoù"
1528
1952
 
1529
- #: core/app_settings.py:664
1953
+ #: core/app_settings.py:652
1530
1954
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1531
1955
  msgstr ""
1532
1956
  "Kas ar statistikoù da API foran Modoboa (kontourioù hag an astennoù "
1533
1957
  "impliljet)"
1534
1958
 
1535
- #: core/app_settings.py:683
1959
+ #: core/app_settings.py:671
1536
1960
  #, fuzzy
1537
1961
  #| msgid "Inactive account threshold"
1538
1962
  msgid "Enable inactive account tracking"
1539
1963
  msgstr "Treuzoù ar c'hontoù dioberiant"
1540
1964
 
1541
- #: core/app_settings.py:686
1965
+ #: core/app_settings.py:674
1542
1966
  msgid ""
1543
1967
  "Allow the administrator to set a threshold (in days) beyond which an account "
1544
1968
  "is considered inactive if the user hasn't logged in"
1545
1969
  msgstr ""
1546
1970
 
1547
- #: core/app_settings.py:695
1971
+ #: core/app_settings.py:683
1548
1972
  msgid "Inactive account threshold"
1549
1973
  msgstr "Treuzoù ar c'hontoù dioberiant"
1550
1974
 
1551
- #: core/app_settings.py:698
1975
+ #: core/app_settings.py:686
1552
1976
  msgid ""
1553
1977
  "An account with a last login date greater than this threshold (in days) will "
1554
1978
  "be considered as inactive"
@@ -1556,46 +1980,38 @@ msgstr ""
1556
1980
  "Ur gont gant un deiziad kevreañ koshoc'h evit an treuzoù-se (e devezhioù) a "
1557
1981
  "vo kontet evel bezañ dioberiant"
1558
1982
 
1559
- #: core/app_settings.py:707
1983
+ #: core/app_settings.py:695
1560
1984
  msgid "Top notifications check interval"
1561
1985
  msgstr "Padelezh etre ar c'hemennoù gwiriañ pennañ"
1562
1986
 
1563
- #: core/app_settings.py:710
1987
+ #: core/app_settings.py:698
1564
1988
  msgid "Interval between two top notification checks (in seconds)"
1565
1989
  msgstr "Padelezh etre div gwiriadenn gemennoù pennañ (en eilennoù)"
1566
1990
 
1567
- #: core/app_settings.py:717
1991
+ #: core/app_settings.py:705
1568
1992
  msgid "Maximum log record age"
1569
1993
  msgstr "Oad enrollañ maksimom ar marilhoù"
1570
1994
 
1571
- #: core/app_settings.py:719
1995
+ #: core/app_settings.py:707
1572
1996
  msgid "The maximum age in days of a log record"
1573
1997
  msgstr "Oad brasañ e devezhioù un enrollodenn renabl"
1574
1998
 
1575
- #: core/app_settings.py:727
1999
+ #: core/app_settings.py:715
1576
2000
  msgid "Retention time in message history"
1577
2001
  msgstr ""
1578
2002
 
1579
- #: core/app_settings.py:730
2003
+ #: core/app_settings.py:718
1580
2004
  msgid "Retention time (in days) of a message in the message history section"
1581
2005
  msgstr ""
1582
2006
 
1583
- #: core/app_settings.py:737
2007
+ #: core/app_settings.py:725
1584
2008
  msgid "Items per page"
1585
2009
  msgstr "Elfennoù dre bajenn"
1586
2010
 
1587
- #: core/app_settings.py:739
2011
+ #: core/app_settings.py:727
1588
2012
  msgid "Number of displayed items per page"
1589
2013
  msgstr "Niver a elfennoù diskouezet dre bajenn"
1590
2014
 
1591
- #: core/app_settings.py:746
1592
- msgid "Default top redirection"
1593
- msgstr "Adhenchañ pennañ dre-ziouer"
1594
-
1595
- #: core/app_settings.py:748
1596
- msgid "The default redirection used when no application is specified"
1597
- msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
1598
-
1599
2015
  #: core/checks.py:15
1600
2016
  msgid ""
1601
2017
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -1724,7 +2140,7 @@ msgstr "N'hallit ket diverkañ ho kont deoc'h-c'hwi hoc'h-unan"
1724
2140
  msgid "One or more updates are available"
1725
2141
  msgstr "Hegerz ez eus un hizivadenn pe muioc'h"
1726
2142
 
1727
- #: core/handlers.py:138
2143
+ #: core/handlers.py:140
1728
2144
  #, python-format
1729
2145
  msgid "You are still using a deprecated password scheme (%s)"
1730
2146
  msgstr ""
@@ -1905,22 +2321,22 @@ msgstr[4] ""
1905
2321
  msgid "The core part of Modoboa"
1906
2322
  msgstr "Lodenn greiz Modoboa"
1907
2323
 
1908
- #: core/views/auth.py:65
2324
+ #: core/views/auth.py:82
1909
2325
  #, python-format
1910
2326
  msgid "User '%s' successfully logged in"
1911
2327
  msgstr "Implijer '%s' kevreet gant berzh"
1912
2328
 
1913
- #: core/views/auth.py:109
2329
+ #: core/views/auth.py:128
1914
2330
  #, python-format
1915
2331
  msgid "Password scheme mismatch. Updating %s password"
1916
2332
  msgstr "Dizemglev gant brastres ar ger-tremen. Oc'h hizivat ar ger-tremen %s"
1917
2333
 
1918
- #: core/views/auth.py:116
2334
+ #: core/views/auth.py:135
1919
2335
  #, python-format
1920
2336
  msgid "Password hash parameter missmatch. Updating %s password"
1921
2337
  msgstr ""
1922
2338
 
1923
- #: core/views/auth.py:154
2339
+ #: core/views/auth.py:173
1924
2340
  msgid "User '{}' successfully logged out"
1925
2341
  msgstr "Implijer '{}' digevreet gant berzh"
1926
2342
 
@@ -1949,14 +2365,10 @@ msgid "Not resolved"
1949
2365
  msgstr ""
1950
2366
 
1951
2367
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
1952
- #: webmail/constants.py:18
2368
+ #: webmail/constants.py:38
1953
2369
  msgid "None"
1954
2370
  msgstr "Hini ebet"
1955
2371
 
1956
- #: dmarc/models.py:11
1957
- msgid "Quarantine"
1958
- msgstr "Dispell"
1959
-
1960
2372
  #: dmarc/models.py:12
1961
2373
  msgid "Reject"
1962
2374
  msgstr "Nac'hañ"
@@ -2081,7 +2493,12 @@ msgstr ""
2081
2493
  msgid "Public key mismatchs"
2082
2494
  msgstr ""
2083
2495
 
2084
- #: imap_migration/api/v2/serializers.py:117
2496
+ #: imap_migration/api/v2/serializers.py:66
2497
+ #, fuzzy
2498
+ msgid "Migrated domain with name {} already exists"
2499
+ msgstr "Un alias gant an anv-mañ zo anezhañ dija"
2500
+
2501
+ #: imap_migration/api/v2/serializers.py:130
2085
2502
  #, fuzzy
2086
2503
  #| msgid "Access updated"
2087
2504
  msgid "Access denied"
@@ -2830,7 +3247,7 @@ msgstr ""
2830
3247
  msgid "Rspamd"
2831
3248
  msgstr ""
2832
3249
 
2833
- #: sievefilters/api/v2/viewsets.py:193
3250
+ #: sievefilters/api/v2/viewsets.py:203
2834
3251
  #, fuzzy, python-format
2835
3252
  #| msgid "User '%s' already exists"
2836
3253
  msgid "Filter %s already exists"
@@ -2917,7 +3334,7 @@ msgstr ""
2917
3334
  msgid "is not"
2918
3335
  msgstr ""
2919
3336
 
2920
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3337
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
2921
3338
  msgid "Subject"
2922
3339
  msgstr "Sujed"
2923
3340
 
@@ -3178,24 +3595,24 @@ msgstr ""
3178
3595
  msgid "SMTP settings"
3179
3596
  msgstr "Arventennoù LDAP"
3180
3597
 
3181
- #: webmail/app_settings.py:75
3598
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3182
3599
  msgid "Address of your SMTP server"
3183
3600
  msgstr ""
3184
3601
 
3185
- #: webmail/app_settings.py:82
3602
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3186
3603
  #, fuzzy
3187
3604
  #| msgid "Use a secured connection"
3188
3605
  msgid "Secured connection mode"
3189
3606
  msgstr "Ober gant ur gevreadenn suraet"
3190
3607
 
3191
- #: webmail/app_settings.py:84
3608
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3192
3609
  #, fuzzy
3193
3610
  #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
3194
3611
  msgid "Use a secured connection to access SMTP server"
3195
3612
  msgstr ""
3196
3613
  "Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP"
3197
3614
 
3198
- #: webmail/app_settings.py:93
3615
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3199
3616
  msgid "Listening port of your SMTP server"
3200
3617
  msgstr ""
3201
3618
 
@@ -3210,125 +3627,119 @@ msgstr "Doare dilesañ"
3210
3627
  msgid "Server needs authentication"
3211
3628
  msgstr "Doare dilesañ"
3212
3629
 
3213
- #: webmail/app_settings.py:118
3630
+ #: webmail/app_settings.py:113
3214
3631
  #, fuzzy
3215
- #| msgid "Display details"
3216
- msgid "Display"
3217
- msgstr "Diskouez ar munudoù"
3632
+ #| msgid "DNS settings"
3633
+ msgid "Scheduling settings"
3634
+ msgstr "Arventennoù DNS"
3218
3635
 
3219
- #: webmail/app_settings.py:124
3636
+ #: webmail/app_settings.py:161
3220
3637
  msgid "Default message display mode"
3221
3638
  msgstr ""
3222
3639
 
3223
- #: webmail/app_settings.py:126
3640
+ #: webmail/app_settings.py:163
3224
3641
  #, fuzzy
3225
3642
  #| msgid "The default redirection used when no application is specified"
3226
3643
  msgid "The default mode used when displaying a message"
3227
3644
  msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
3228
3645
 
3229
- #: webmail/app_settings.py:133
3646
+ #: webmail/app_settings.py:170
3230
3647
  msgid "Enable HTML links display"
3231
3648
  msgstr ""
3232
3649
 
3233
- #: webmail/app_settings.py:136
3650
+ #: webmail/app_settings.py:173
3234
3651
  msgid "Enable/Disable HTML links display"
3235
3652
  msgstr ""
3236
3653
 
3237
- #: webmail/app_settings.py:144
3238
- #, fuzzy
3239
- #| msgid "Number of displayed items per page"
3240
- msgid "Number of displayed emails per page"
3241
- msgstr "Niver a elfennoù diskouezet dre bajenn"
3242
-
3243
- #: webmail/app_settings.py:147
3654
+ #: webmail/app_settings.py:184
3244
3655
  msgid "Sets the maximum number of messages displayed in a page"
3245
3656
  msgstr ""
3246
3657
 
3247
- #: webmail/app_settings.py:154
3658
+ #: webmail/app_settings.py:191
3248
3659
  msgid "Listing refresh rate"
3249
3660
  msgstr ""
3250
3661
 
3251
- #: webmail/app_settings.py:156
3662
+ #: webmail/app_settings.py:193
3252
3663
  msgid "Automatic listing refresh rate (in secconds)"
3253
3664
  msgstr ""
3254
3665
 
3255
- #: webmail/app_settings.py:163
3666
+ #: webmail/app_settings.py:200
3256
3667
  msgid "Folder container's width"
3257
3668
  msgstr ""
3258
3669
 
3259
- #: webmail/app_settings.py:165
3670
+ #: webmail/app_settings.py:202
3260
3671
  msgid "The width of the folder list container"
3261
3672
  msgstr ""
3262
3673
 
3263
- #: webmail/app_settings.py:176
3674
+ #: webmail/app_settings.py:213
3264
3675
  #, fuzzy
3265
3676
  #| msgid "Create aliases"
3266
3677
  msgid "Folders"
3267
3678
  msgstr "Krouiñ aliasoù"
3268
3679
 
3269
- #: webmail/app_settings.py:182
3680
+ #: webmail/app_settings.py:219
3270
3681
  #, fuzzy
3271
3682
  #| msgid "Create aliases"
3272
3683
  msgid "Trash folder"
3273
3684
  msgstr "Krouiñ aliasoù"
3274
3685
 
3275
- #: webmail/app_settings.py:184
3686
+ #: webmail/app_settings.py:221
3276
3687
  msgid "Folder where deleted messages go"
3277
3688
  msgstr ""
3278
3689
 
3279
- #: webmail/app_settings.py:191
3690
+ #: webmail/app_settings.py:228
3280
3691
  #, fuzzy
3281
3692
  #| msgid "Create aliases"
3282
3693
  msgid "Sent folder"
3283
3694
  msgstr "Krouiñ aliasoù"
3284
3695
 
3285
- #: webmail/app_settings.py:193
3696
+ #: webmail/app_settings.py:230
3286
3697
  msgid "Folder where copies of sent messages go"
3287
3698
  msgstr ""
3288
3699
 
3289
- #: webmail/app_settings.py:200
3700
+ #: webmail/app_settings.py:237
3290
3701
  #, fuzzy
3291
3702
  #| msgid "Create aliases"
3292
3703
  msgid "Drafts folder"
3293
3704
  msgstr "Krouiñ aliasoù"
3294
3705
 
3295
- #: webmail/app_settings.py:201
3706
+ #: webmail/app_settings.py:238
3296
3707
  msgid "Folder where drafts go"
3297
3708
  msgstr ""
3298
3709
 
3299
- #: webmail/app_settings.py:207
3710
+ #: webmail/app_settings.py:244
3300
3711
  #, fuzzy
3301
3712
  #| msgid "Create aliases"
3302
3713
  msgid "Junk folder"
3303
3714
  msgstr "Krouiñ aliasoù"
3304
3715
 
3305
- #: webmail/app_settings.py:209
3716
+ #: webmail/app_settings.py:246
3306
3717
  msgid "Folder where junk messages should go"
3307
3718
  msgstr ""
3308
3719
 
3309
- #: webmail/app_settings.py:220
3720
+ #: webmail/app_settings.py:257
3310
3721
  #, fuzzy
3311
3722
  #| msgid "Message"
3312
3723
  msgid "Composing messages"
3313
3724
  msgstr "Kemennadenn"
3314
3725
 
3315
- #: webmail/app_settings.py:226
3726
+ #: webmail/app_settings.py:263
3316
3727
  #, fuzzy
3317
3728
  #| msgid "Default top redirection"
3318
3729
  msgid "Default editor"
3319
3730
  msgstr "Adhenchañ pennañ dre-ziouer"
3320
3731
 
3321
- #: webmail/app_settings.py:228
3732
+ #: webmail/app_settings.py:265
3322
3733
  #, fuzzy
3323
3734
  #| msgid "The default redirection used when no application is specified"
3324
3735
  msgid "The default editor to use when composing a message"
3325
3736
  msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet"
3326
3737
 
3327
- #: webmail/app_settings.py:235
3738
+ #: webmail/app_settings.py:272
3328
3739
  msgid "Signature text"
3329
3740
  msgstr ""
3330
3741
 
3331
- #: webmail/app_settings.py:237
3742
+ #: webmail/app_settings.py:274
3332
3743
  msgid "User defined email signature"
3333
3744
  msgstr ""
3334
3745
 
@@ -3343,47 +3754,72 @@ msgstr "Chomlec'h ar servijer"
3343
3754
  msgid "Failed to remove attachment: "
3344
3755
  msgstr "N'heller ket adsevel lec'hiadur ar voest-posteloù (%s)"
3345
3756
 
3346
- #: webmail/lib/imapemail.py:272
3757
+ #: webmail/lib/imapemail.py:270
3347
3758
  msgid "wrote:"
3348
3759
  msgstr ""
3349
3760
 
3350
- #: webmail/lib/imapemail.py:306
3761
+ #: webmail/lib/imapemail.py:304
3351
3762
  msgid "Date"
3352
3763
  msgstr "Deiziad"
3353
3764
 
3354
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3765
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3355
3766
  #, fuzzy
3356
3767
  #| msgid "Message"
3357
3768
  msgid "Original message"
3358
3769
  msgstr "Kemennadenn"
3359
3770
 
3360
- #: webmail/lib/imaputils.py:221
3771
+ #: webmail/lib/imaputils.py:222
3361
3772
  msgid "Failed to retrieve hierarchy delimiter"
3362
3773
  msgstr ""
3363
3774
 
3364
- #: webmail/lib/imaputils.py:472
3775
+ #: webmail/lib/imaputils.py:478
3365
3776
  msgid "Inbox"
3366
3777
  msgstr ""
3367
3778
 
3368
- #: webmail/lib/imaputils.py:476
3779
+ #: webmail/lib/imaputils.py:482
3369
3780
  #, fuzzy
3370
3781
  #| msgid "Create aliases"
3371
3782
  msgid "Drafts"
3372
3783
  msgstr "Krouiñ aliasoù"
3373
3784
 
3374
- #: webmail/lib/imaputils.py:481
3785
+ #: webmail/lib/imaputils.py:487
3375
3786
  msgid "Junk"
3376
3787
  msgstr ""
3377
3788
 
3378
- #: webmail/lib/imaputils.py:486
3789
+ #: webmail/lib/imaputils.py:492
3379
3790
  msgid "Sent"
3380
3791
  msgstr ""
3381
3792
 
3382
- #: webmail/lib/imaputils.py:491
3793
+ #: webmail/lib/imaputils.py:500
3794
+ msgid "Scheduled"
3795
+ msgstr ""
3796
+
3797
+ #: webmail/lib/imaputils.py:507
3383
3798
  msgid "Trash"
3384
3799
  msgstr ""
3385
3800
 
3386
- #: webmail/viewsets.py:343
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
3387
3814
  #, python-format
3388
3815
  msgid "Attachment is too big (limit: %s)"
3389
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"