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
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: \n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2025-08-28 09:41+0200\n"
10
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
11
11
  "PO-Revision-Date: 2023-02-17 22:03+0200\n"
12
12
  "Last-Translator: Ossi Mäntylahti <ossiman@gmail.com>\n"
13
13
  "Language-Team: \n"
@@ -47,14 +47,14 @@ msgid "Cannot be greater than domain quota"
47
47
  msgstr "Ei voi olla suurempi kuin verkkotunnuksen kiintiö"
48
48
 
49
49
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
50
- #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
50
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
51
51
  msgid "Permission denied."
52
52
  msgstr "Lupa evätty."
53
53
 
54
54
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
55
- #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
56
- #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
57
- #: transport/backends.py:40
55
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
56
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
57
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
58
58
  msgid "This field is required"
59
59
  msgstr "Tämä kenttä on pakollinen"
60
60
 
@@ -65,7 +65,7 @@ msgstr ""
65
65
  "Luettelo hallinnoiduista verkkotunnuksista (vain jälleenmyyjät ja "
66
66
  "verkkotunnusten ylläpitäjät)."
67
67
 
68
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
68
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
69
69
  msgid "Not allowed for this role."
70
70
  msgstr "Ei sallittu tässä roolissa."
71
71
 
@@ -73,13 +73,12 @@ msgstr "Ei sallittu tässä roolissa."
73
73
  msgid "Must be equal to mailbox full_address"
74
74
  msgstr "Täytyy olla yhtä suuri kuin postilaatikon koko osoite"
75
75
 
76
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
77
- #: calendars/serializers.py:175 calendars/serializers.py:177
78
- #: pdfcredentials/api/v2/serializers.py:91
76
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
77
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
79
78
  msgid "This field is required."
80
79
  msgstr "Tämä kenttä on pakollinen."
81
80
 
82
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
81
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
83
82
  msgid "Local domain {} does not exist"
84
83
  msgstr "Paikallista verkkotunnusta {} ei ole olemassa"
85
84
 
@@ -87,7 +86,7 @@ msgstr "Paikallista verkkotunnusta {} ei ole olemassa"
87
86
  msgid "A list of recipient"
88
87
  msgstr "Luettelo vastaanottajista"
89
88
 
90
- #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
89
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:313
91
90
  #, fuzzy
92
91
  #| msgid "User '%s' already exists"
93
92
  msgid "This alias already exists"
@@ -122,51 +121,51 @@ msgstr "Et voi määritellä rajoittamatonta kiintiötä."
122
121
  msgid "User '%s' already exists"
123
122
  msgstr "Käyttäjä '%s' on jo olemassa"
124
123
 
125
- #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
124
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
126
125
  msgid "Must be a positive integer"
127
126
  msgstr "Täytyy olla positiivinen kokonaisluku"
128
127
 
129
- #: admin/api/v2/serializers.py:265
128
+ #: admin/api/v2/serializers.py:271
130
129
  msgid "openssl not found, please make sure it is installed."
131
130
  msgstr "openssl ei löydy, varmista, että se on asennettu."
132
131
 
133
- #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
132
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
134
133
  msgid "Directory not found."
135
134
  msgstr "Hakemistoa ei löydy."
136
135
 
137
- #: admin/api/v2/serializers.py:279
136
+ #: admin/api/v2/serializers.py:285
138
137
  msgid "This field only allows valid IP addresses (or networks)"
139
138
  msgstr ""
140
139
 
141
- #: admin/api/v2/serializers.py:292
140
+ #: admin/api/v2/serializers.py:298
142
141
  msgid "Please disable imap migration before disabling this option."
143
142
  msgstr ""
144
143
 
145
- #: admin/api/v2/serializers.py:305
144
+ #: admin/api/v2/serializers.py:311
146
145
  msgid "Define at least one authorized network / address"
147
146
  msgstr "Määritä vähintään yksi valtuutettu verkko/osoite"
148
147
 
149
- #: admin/api/v2/serializers.py:581
148
+ #: admin/api/v2/serializers.py:588
150
149
  msgid "The left part of an email address can't be more than 64 characters."
151
150
  msgstr ""
152
151
 
153
- #: admin/api/v2/serializers.py:603
152
+ #: admin/api/v2/serializers.py:610
154
153
  #, fuzzy
155
154
  #| msgid "A mailbox is required"
156
155
  msgid "A mailbox is required to create aliases."
157
156
  msgstr "Tarvitaan postilaatikko"
158
157
 
159
- #: admin/api/v2/serializers.py:772
158
+ #: admin/api/v2/serializers.py:783
160
159
  #, fuzzy
161
160
  #| msgid "Unknown tag {}"
162
161
  msgid "Unknown status"
163
162
  msgstr "Tuntematon tunniste {}"
164
163
 
165
- #: admin/api/v2/viewsets.py:84
164
+ #: admin/api/v2/viewsets.py:95
166
165
  msgid "You don't have access to this domain"
167
166
  msgstr "Sinulla ei ole pääsyä tähän verkkotunnukseen"
168
167
 
169
- #: admin/api/v2/viewsets.py:87
168
+ #: admin/api/v2/viewsets.py:98
170
169
  msgid "You can't delete your own domain"
171
170
  msgstr "Et voi poistaa omaa verkkotunnustasi"
172
171
 
@@ -263,20 +262,30 @@ msgid "Check every domain against major DNSBL providers"
263
262
  msgstr ""
264
263
  "Tarkista jokainen verkkotunnus merkittävimmistä DNSBL-palveluntarjoajista"
265
264
 
266
- #: admin/app_settings.py:116
265
+ #: admin/app_settings.py:117
266
+ msgid "Notify domain admins about DNS issues"
267
+ msgstr ""
268
+
269
+ #: admin/app_settings.py:120
270
+ msgid ""
271
+ "Send a notification by email to domain administrators when DNS issues are "
272
+ "encountered"
273
+ msgstr ""
274
+
275
+ #: admin/app_settings.py:128
267
276
  msgid "Custom DNS server"
268
277
  msgstr "Mukautettu DNS-palvelin"
269
278
 
270
- #: admin/app_settings.py:118
279
+ #: admin/app_settings.py:130
271
280
  msgid "Use a custom DNS server instead of local server configuration"
272
281
  msgstr ""
273
282
  "Käytä mukautettua DNS-palvelinta paikallisen palvelinkonfiguraation sijasta"
274
283
 
275
- #: admin/app_settings.py:126
284
+ #: admin/app_settings.py:138
276
285
  msgid "DKIM keys storage directory"
277
286
  msgstr "DKIM-avainten tallennushakemisto"
278
287
 
279
- #: admin/app_settings.py:128
288
+ #: admin/app_settings.py:140
280
289
  msgid ""
281
290
  "Absolute path of the directory where DKIM private keys will be stored. Make "
282
291
  "sure this directory belongs to root user and is not readable by the outside "
@@ -286,19 +295,19 @@ msgstr ""
286
295
  "että tämä hakemisto kuuluu root-käyttäjälle eikä ole ulkomaailman "
287
296
  "luettavissa."
288
297
 
289
- #: admin/app_settings.py:137
298
+ #: admin/app_settings.py:149
290
299
  msgid "Default DKIM key length"
291
300
  msgstr "DKIM-avaimen oletuspituus"
292
301
 
293
- #: admin/app_settings.py:139
302
+ #: admin/app_settings.py:151
294
303
  msgid "Default length in bits for newly generated DKIM keys."
295
304
  msgstr "Uusien luotujen DKIM-avainten oletuspituus bitteinä."
296
305
 
297
- #: admin/app_settings.py:146
306
+ #: admin/app_settings.py:158
298
307
  msgid "Default domain quota"
299
308
  msgstr "Verkkotunnuksen oletuskiintiö"
300
309
 
301
- #: admin/app_settings.py:148
310
+ #: admin/app_settings.py:160
302
311
  msgid ""
303
312
  "Default quota (in MB) applied to freshly created domains with no value "
304
313
  "specified. A value of 0 means no quota."
@@ -306,11 +315,11 @@ msgstr ""
306
315
  "Oletuskiintiö (megatavua), jota sovelletaan juuri luotuihin toimialueisiin, "
307
316
  "joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, että kiintiötä ei ole."
308
317
 
309
- #: admin/app_settings.py:156
318
+ #: admin/app_settings.py:168
310
319
  msgid "Default domain sending limit"
311
320
  msgstr "Oletusarvo verkkotunnuksen lähetysrajalle"
312
321
 
313
- #: admin/app_settings.py:158
322
+ #: admin/app_settings.py:170
314
323
  msgid ""
315
324
  "Number of messages freshly created domains will be allowed to send per day. "
316
325
  "Leave empty for no limit."
@@ -318,16 +327,16 @@ msgstr ""
318
327
  "Viestien määrä, jonka juuri luodut verkkotunnukset saavat lähettää päivässä. "
319
328
  "Jätä tyhjäksi, jos et halua rajoitusta."
320
329
 
321
- #: admin/app_settings.py:170 limits/app_settings.py:61
330
+ #: admin/app_settings.py:182 limits/app_settings.py:61
322
331
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
323
332
  msgid "Mailboxes"
324
333
  msgstr "Postilaatikot"
325
334
 
326
- #: admin/app_settings.py:176
335
+ #: admin/app_settings.py:188
327
336
  msgid "Handle mailboxes on filesystem"
328
337
  msgstr "Käsittele postilaatikoita tiedostojärjestelmässä"
329
338
 
330
- #: admin/app_settings.py:178
339
+ #: admin/app_settings.py:190
331
340
  msgid ""
332
341
  "Rename or remove mailboxes on the filesystem when they get renamed or "
333
342
  "removed within Modoboa"
@@ -335,11 +344,11 @@ msgstr ""
335
344
  "Nimeä uudelleen tai poista postilaatikot tiedostojärjestelmästä, kun ne "
336
345
  "nimetään uudelleen tai poistetaan Modoboassa"
337
346
 
338
- #: admin/app_settings.py:186 admin/models/domain.py:36
347
+ #: admin/app_settings.py:198 admin/models/domain.py:36
339
348
  msgid "Default mailbox quota"
340
349
  msgstr "Oletuspostilaatikkokiintiö"
341
350
 
342
- #: admin/app_settings.py:188
351
+ #: admin/app_settings.py:200
343
352
  #, fuzzy
344
353
  #| msgid ""
345
354
  #| "Default mailbox quota (in MB) applied to freshly created mailboxes with "
@@ -352,11 +361,11 @@ msgstr ""
352
361
  "postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei "
353
362
  "kiintiötä ole."
354
363
 
355
- #: admin/app_settings.py:197
364
+ #: admin/app_settings.py:209
356
365
  msgid "Default mailbox sending limit"
357
366
  msgstr "Oletuspostilaatikon lähetysraja"
358
367
 
359
- #: admin/app_settings.py:199
368
+ #: admin/app_settings.py:211
360
369
  msgid ""
361
370
  "Number of messages freshly created mailboxes will be allowed to send per "
362
371
  "day. Leave empty for no limit."
@@ -364,33 +373,63 @@ msgstr ""
364
373
  "Viestien määrä, jonka juuri luodut postilaatikot saavat lähettää päivässä. "
365
374
  "Jätä tyhjäksi, jos et halua rajoitusta."
366
375
 
367
- #: admin/app_settings.py:207
376
+ #: admin/app_settings.py:219
368
377
  msgid "Automatic account removal"
369
378
  msgstr "Tilin automaattinen poistaminen"
370
379
 
371
- #: admin/app_settings.py:209
380
+ #: admin/app_settings.py:221
372
381
  msgid "When a mailbox is removed, also remove the associated account"
373
382
  msgstr "Kun postilaatikko poistetaan, poistetaan myös siihen liittyvä tili"
374
383
 
375
- #: admin/app_settings.py:218
384
+ #: admin/app_settings.py:230
376
385
  msgid "Automatic domain/mailbox creation"
377
386
  msgstr "Automaattinen verkkotunnuksen/sähköpostilaatikon luominen"
378
387
 
379
- #: admin/app_settings.py:221
388
+ #: admin/app_settings.py:233
380
389
  msgid "Create a domain and a mailbox when an account is automatically created."
381
390
  msgstr "Luo verkkotunnus ja postilaatikko, kun tili luodaan automaattisesti."
382
391
 
383
- #: admin/app_settings.py:230
392
+ #: admin/app_settings.py:242
384
393
  msgid "Create an alias when a mailbox is renamed"
385
394
  msgstr "Luo alias, kun postilaatikko nimetään uudelleen"
386
395
 
387
- #: admin/app_settings.py:233
396
+ #: admin/app_settings.py:245
388
397
  msgid "Create an alias using the old address when a mailbox is renamed."
389
398
  msgstr ""
390
399
  "Luo alias, joka käyttää vanhaa osoitetta, kun postilaatikko nimetään "
391
400
  "uudelleen."
392
401
 
393
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
402
+ #: admin/app_settings.py:257
403
+ #, fuzzy
404
+ #| msgid "alias"
405
+ msgid "Aliases"
406
+ msgstr "alias"
407
+
408
+ #: admin/app_settings.py:263
409
+ msgid "Alias can target any domain"
410
+ msgstr ""
411
+
412
+ #: admin/app_settings.py:265
413
+ msgid "Allow aliases to target any domain, not just the local domains."
414
+ msgstr ""
415
+
416
+ #: admin/app_settings.py:272
417
+ msgid "Alias target block list"
418
+ msgstr ""
419
+
420
+ #: admin/app_settings.py:274
421
+ msgid "A list of domains that aliases cannot target (comma separated)."
422
+ msgstr ""
423
+
424
+ #: admin/app_settings.py:282
425
+ msgid "Alias target allow list"
426
+ msgstr ""
427
+
428
+ #: admin/app_settings.py:284
429
+ msgid "A list of domains that aliases can target (comma separated)."
430
+ msgstr ""
431
+
432
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
394
433
  msgid "Administration"
395
434
  msgstr "Hallinnointinäkymä"
396
435
 
@@ -410,6 +449,35 @@ msgstr "Avattu"
410
449
  msgid "Closed"
411
450
  msgstr "Suljettu"
412
451
 
452
+ #: admin/dns_checker.py:96
453
+ msgid "MX {} listed by DNSBL provider {}"
454
+ msgstr "MX {} DNSBL-palveluntarjoajan listaama {}"
455
+
456
+ #: admin/dns_checker.py:138
457
+ msgid "Domain has no MX record"
458
+ msgstr "Verkkotunnuksella ei ole MX-tietuetta"
459
+
460
+ #: admin/dns_checker.py:141
461
+ msgid "Domain {} has no MX record"
462
+ msgstr "Verkkotunnuksella {} ei ole MX-tietuetta"
463
+
464
+ #: admin/dns_checker.py:159
465
+ msgid "Invalid MX record: {}"
466
+ msgstr "Virheellinen MX-tietue: {}"
467
+
468
+ #: admin/dns_checker.py:166
469
+ #, python-brace-format
470
+ msgid "MX record for domain {0} is invalid: {1}"
471
+ msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}"
472
+
473
+ #: admin/dns_checker.py:177
474
+ msgid "[modoboa] MX issue(s) for domain {}"
475
+ msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}"
476
+
477
+ #: admin/dns_checker.py:224
478
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
479
+ msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}"
480
+
413
481
  #: admin/handlers.py:179
414
482
  msgid "domain alias"
415
483
  msgstr "verkkotunnuksen alias"
@@ -419,58 +487,54 @@ msgstr "verkkotunnuksen alias"
419
487
  msgid "Account import failed (%s): domain does not exist"
420
488
  msgstr "Tilin tuonti epäonnistui (%s): verkkotunnusta ei ole olemassa"
421
489
 
422
- #: admin/handlers.py:242 admin/models/mailbox.py:342
423
- msgid "Mailbox {} already exists"
424
- msgstr "Postilaatikko {} on jo olemassa"
425
-
426
- #: admin/handlers.py:251
490
+ #: admin/handlers.py:246
427
491
  #, python-format
428
492
  msgid "Account import failed (%s): wrong quota value"
429
493
  msgstr "Tilin tuonti epäonnistui (%s): väärä kiintiöarvo"
430
494
 
431
- #: admin/lib.py:121
495
+ #: admin/lib.py:126
432
496
  msgid "You are not allowed to import domains"
433
497
  msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia"
434
498
 
435
- #: admin/lib.py:130
499
+ #: admin/lib.py:135
436
500
  msgid "You are not allowed to import domain aliases."
437
501
  msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia."
438
502
 
439
- #: admin/lib.py:222 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
440
- #: admin/tests/test_mx.py:171
503
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
504
+ #: admin/tests/test_mx.py:157
441
505
  #, python-format
442
506
  msgid "No DNS record found for %s"
443
507
  msgstr "DNS-tietuetta ei löytynyt %s"
444
508
 
445
- #: admin/lib.py:225
509
+ #: admin/lib.py:230
446
510
  #, python-format
447
511
  msgid "No %(type)s record for %(name)s"
448
512
  msgstr "Ei %(type)s-tietueelle %(name)s"
449
513
 
450
- #: admin/lib.py:229 admin/tests/test_mx.py:156
514
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
451
515
  msgid "No working name servers found"
452
516
  msgstr "Toimivia nimipalvelimia ei löytynyt"
453
517
 
454
- #: admin/lib.py:232 admin/tests/test_mx.py:160
518
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
455
519
  #, python-format
456
520
  msgid "DNS resolution timeout, unable to query %s at the moment"
457
521
  msgstr "DNS-kyselyn aikakatkaisu, kysely %s ei onnistu tällä hetkellä"
458
522
 
459
- #: admin/lib.py:236
523
+ #: admin/lib.py:241
460
524
  msgid "DNS name is too long: {}"
461
525
  msgstr ""
462
526
 
463
- #: admin/lib.py:267
527
+ #: admin/lib.py:272
464
528
  #, python-brace-format
465
529
  msgid "Invalid IP address format for {domain}; {addr}"
466
530
  msgstr "Virheellinen IP-osoiteformaatti {domain}; {addr}"
467
531
 
468
- #: admin/lib.py:360
532
+ #: admin/lib.py:365
469
533
  #, python-format
470
534
  msgid "Object already exists: %s"
471
535
  msgstr "Kohde on jo olemassa: %s"
472
536
 
473
- #: admin/lib.py:364
537
+ #: admin/lib.py:369
474
538
  #, python-format
475
539
  msgid "%d objects imported successfully"
476
540
  msgstr "%d objektit tuotu onnistuneesti"
@@ -505,77 +569,54 @@ msgstr ""
505
569
  msgid "Failed to generate DKIM public key"
506
570
  msgstr "Ota käyttöön viestintä Modoboan julkisen API:n kanssa"
507
571
 
508
- #: admin/management/commands/subcommands/_mx.py:133
509
- msgid "MX {} listed by DNSBL provider {}"
510
- msgstr "MX {} DNSBL-palveluntarjoajan listaama {}"
511
-
512
- #: admin/management/commands/subcommands/_mx.py:174
513
- msgid "Domain has no MX record"
514
- msgstr "Verkkotunnuksella ei ole MX-tietuetta"
515
-
516
- #: admin/management/commands/subcommands/_mx.py:177
517
- msgid "Domain {} has no MX record"
518
- msgstr "Verkkotunnuksella {} ei ole MX-tietuetta"
519
-
520
- #: admin/management/commands/subcommands/_mx.py:195
521
- msgid "Invalid MX record: {}"
522
- msgstr "Virheellinen MX-tietue: {}"
523
-
524
- #: admin/management/commands/subcommands/_mx.py:202
525
- #, python-brace-format
526
- msgid "MX record for domain {0} is invalid: {1}"
527
- msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}"
528
-
529
- #: admin/management/commands/subcommands/_mx.py:213
530
- msgid "[modoboa] MX issue(s) for domain {}"
531
- msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}"
532
-
533
- #: admin/management/commands/subcommands/_mx.py:269
534
- msgid "[modoboa] DNSBL issue(s) for domain {}"
535
- msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}"
536
-
537
- #: admin/models/alias.py:42
572
+ #: admin/models/alias.py:43
538
573
  msgid "Domain not found."
539
574
  msgstr "Verkkotunnusta ei löydy."
540
575
 
541
- #: admin/models/alias.py:97 admin/models/mailbox.py:85
576
+ #: admin/models/alias.py:117 admin/models/mailbox.py:85
542
577
  msgid "address"
543
578
  msgstr "osoite"
544
579
 
545
- #: admin/models/alias.py:99
580
+ #: admin/models/alias.py:119
546
581
  msgid "The alias address."
547
582
  msgstr "Alias-osoite."
548
583
 
549
- #: admin/models/alias.py:103 admin/models/domain.py:45
584
+ #: admin/models/alias.py:123 admin/models/domain.py:45
550
585
  #: admin/models/domain_alias.py:45 autoreply/models.py:25
551
586
  msgid "enabled"
552
587
  msgstr "käytössä"
553
588
 
554
- #: admin/models/alias.py:104 admin/models/domain_alias.py:46
589
+ #: admin/models/alias.py:124 admin/models/domain_alias.py:46
555
590
  msgid "Check to activate this alias"
556
591
  msgstr "Ota käyttöön tämän aliaksen aktivointi"
557
592
 
558
- #: admin/models/alias.py:108
593
+ #: admin/models/alias.py:128
559
594
  msgid "Description"
560
595
  msgstr "Kuvaus"
561
596
 
562
- #: admin/models/alias.py:109
597
+ #: admin/models/alias.py:129
563
598
  msgid "Expire at"
564
599
  msgstr "Vanhenee"
565
600
 
566
- #: admin/models/alias.py:150
601
+ #: admin/models/alias.py:170
567
602
  msgid "alias"
568
603
  msgstr "alias"
569
604
 
570
- #: admin/models/alias.py:183
605
+ #: admin/models/alias.py:203
571
606
  msgid "Invalid address"
572
607
  msgstr "Virheellinen osoite"
573
608
 
574
- #: admin/models/alias.py:202
609
+ #: admin/models/alias.py:206
610
+ #, fuzzy
611
+ #| msgid "The domain name"
612
+ msgid "Target domain not allowed"
613
+ msgstr "Verkkotunnus"
614
+
615
+ #: admin/models/alias.py:224
575
616
  msgid "Local recipient {}@{} not found"
576
617
  msgstr "Paikallista vastaanottajaa {}@{} ei löydy"
577
618
 
578
- #: admin/models/alias.py:251
619
+ #: admin/models/alias.py:273
579
620
  #, fuzzy
580
621
  #| msgid "Invalid line: %s"
581
622
  msgid "Invalid line: {}"
@@ -697,6 +738,10 @@ msgstr "Verkkotunnuksen kiintiö ylitetty"
697
738
  msgid "Domain does not exist"
698
739
  msgstr "Verkkotunnusta ei ole olemassa"
699
740
 
741
+ #: admin/models/mailbox.py:342
742
+ msgid "Mailbox {} already exists"
743
+ msgstr "Postilaatikko {} on jo olemassa"
744
+
700
745
  #: admin/templates/admin/notifications/domain_in_dnsbl.html:3
701
746
  #, python-format
702
747
  msgid ""
@@ -723,22 +768,397 @@ msgstr ""
723
768
  "Modoboa havaitsi, että verkkotunnuksella %(domain)s ei ole voimassa olevaa "
724
769
  "MX-tietuetta:"
725
770
 
726
- #: admin/tests/test_mx.py:155
771
+ #: admin/tests/test_mx.py:141
727
772
  #, python-format
728
773
  msgid "No MX record for %s"
729
774
  msgstr "Ei MX-tietuetta %s"
730
775
 
731
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
776
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
732
777
  #, python-format
733
778
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
734
779
  msgstr "Virheellinen IP-osoiteformaatti %(domain)s; %(addr)s"
735
780
 
736
- #: admin/tests/test_mx.py:199
781
+ #: admin/tests/test_mx.py:185
737
782
  #, fuzzy, python-format
738
783
  #| msgid "No MX record for %s"
739
784
  msgid "No AAAA record for %s"
740
785
  msgstr "Ei MX-tietuetta %s"
741
786
 
787
+ #: amavis/app_settings.py:11
788
+ #, fuzzy
789
+ #| msgid "LDAP settings"
790
+ msgid "Amavis settings"
791
+ msgstr "LDAP-asetukset"
792
+
793
+ #: amavis/app_settings.py:17
794
+ msgid "Localpart is case sensitive"
795
+ msgstr ""
796
+
797
+ #: amavis/app_settings.py:19
798
+ msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive"
799
+ msgstr ""
800
+
801
+ #: amavis/app_settings.py:27
802
+ #, fuzzy
803
+ #| msgid "Recipient"
804
+ msgid "Recipient delimiter"
805
+ msgstr "Vastaanottaja"
806
+
807
+ #: amavis/app_settings.py:29
808
+ msgid "Value should match amavisd.conf variable $recipient_delimiter"
809
+ msgstr ""
810
+
811
+ #: amavis/app_settings.py:41
812
+ #, fuzzy
813
+ #| msgid "Quantity"
814
+ msgid "Quarantine settings"
815
+ msgstr "Määrä"
816
+
817
+ #: amavis/app_settings.py:47
818
+ #, fuzzy
819
+ #| msgid "Maximum log record age"
820
+ msgid "Maximum message age"
821
+ msgstr "Lokitiedoston enimmäisikä"
822
+
823
+ #: amavis/app_settings.py:49
824
+ msgid "Quarantine messages maximum age (in days) before deletion"
825
+ msgstr ""
826
+
827
+ #: amavis/app_settings.py:60
828
+ #, fuzzy
829
+ #| msgid "Message sending limit"
830
+ msgid "Message releasing"
831
+ msgstr "Viestien lähetysraja"
832
+
833
+ #: amavis/app_settings.py:66
834
+ #, fuzzy
835
+ #| msgid "Show greylisted messages"
836
+ msgid "Remove released messages"
837
+ msgstr "Näytä harmaalle listalle merkityt viestit"
838
+
839
+ #: amavis/app_settings.py:68
840
+ msgid "Remove messages marked as released while cleaning up the database"
841
+ msgstr ""
842
+
843
+ #: amavis/app_settings.py:76
844
+ #, fuzzy
845
+ #| msgid "Use a secured connection"
846
+ msgid "Amavis connection mode"
847
+ msgstr "Käytä suojattua yhteyttä"
848
+
849
+ #: amavis/app_settings.py:78
850
+ #, fuzzy
851
+ #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
852
+ msgid "Mode used to access the PDP server"
853
+ msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
854
+
855
+ #: amavis/app_settings.py:85
856
+ #, fuzzy
857
+ #| msgid "Server address"
858
+ msgid "PDP server address"
859
+ msgstr "Palvelimen osoite"
860
+
861
+ #: amavis/app_settings.py:87
862
+ #, fuzzy
863
+ #| msgid "Server address"
864
+ msgid "PDP server address (if inet mode)"
865
+ msgstr "Palvelimen osoite"
866
+
867
+ #: amavis/app_settings.py:95
868
+ #, fuzzy
869
+ #| msgid "Server port"
870
+ msgid "PDP server port"
871
+ msgstr "Palvelimen portti"
872
+
873
+ #: amavis/app_settings.py:97
874
+ msgid "PDP server port (if inet mode)"
875
+ msgstr ""
876
+
877
+ #: amavis/app_settings.py:105
878
+ #, fuzzy
879
+ #| msgid "Server port"
880
+ msgid "PDP server socket"
881
+ msgstr "Palvelimen portti"
882
+
883
+ #: amavis/app_settings.py:107
884
+ msgid "Path to the PDP server socket (if unix mode)"
885
+ msgstr ""
886
+
887
+ #: amavis/app_settings.py:115
888
+ msgid "Allow direct release"
889
+ msgstr ""
890
+
891
+ #: amavis/app_settings.py:117
892
+ msgid "Allow users to directly release their messages"
893
+ msgstr ""
894
+
895
+ #: amavis/app_settings.py:124
896
+ msgid "Enable self-service mode"
897
+ msgstr ""
898
+
899
+ #: amavis/app_settings.py:126
900
+ msgid "Activate the 'self-service' mode"
901
+ msgstr ""
902
+
903
+ #: amavis/app_settings.py:133
904
+ #, fuzzy
905
+ #| msgid "Notifications"
906
+ msgid "Notifications sender"
907
+ msgstr "Ilmoitukset"
908
+
909
+ #: amavis/app_settings.py:135
910
+ #, fuzzy
911
+ #| msgid "Email address used to send notifications."
912
+ msgid "The e-mail address used to send notitications"
913
+ msgstr "Ilmoitusten lähettämiseen käytettävä sähköpostiosoite."
914
+
915
+ #: amavis/app_settings.py:146
916
+ msgid "Manual learning"
917
+ msgstr ""
918
+
919
+ #: amavis/app_settings.py:152
920
+ msgid "Enable manual learning"
921
+ msgstr ""
922
+
923
+ #: amavis/app_settings.py:154
924
+ #, fuzzy
925
+ #| msgid "Allow this administrator to access user mailboxes"
926
+ msgid "Allow super administrators to manually train Spamassassin"
927
+ msgstr "Salli tämän järjestelmänvalvojan pääsy käyttäjien postilaatikoihin"
928
+
929
+ #: amavis/app_settings.py:161
930
+ msgid "Is Spamassassin local?"
931
+ msgstr ""
932
+
933
+ #: amavis/app_settings.py:163
934
+ msgid "Tell if Spamassassin is running on the same server than modoboa"
935
+ msgstr ""
936
+
937
+ #: amavis/app_settings.py:171
938
+ #, fuzzy
939
+ #| msgid "Default top redirection"
940
+ msgid "Default user"
941
+ msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
942
+
943
+ #: amavis/app_settings.py:173
944
+ msgid "Name of the user owning the default bayesian database"
945
+ msgstr ""
946
+
947
+ #: amavis/app_settings.py:181
948
+ #, fuzzy
949
+ #| msgid "Sender address"
950
+ msgid "Spamd address"
951
+ msgstr "Lähettäjän osoite"
952
+
953
+ #: amavis/app_settings.py:183
954
+ msgid "The IP address where spamd can be reached"
955
+ msgstr ""
956
+
957
+ #: amavis/app_settings.py:191
958
+ msgid "Spamd port"
959
+ msgstr ""
960
+
961
+ #: amavis/app_settings.py:193
962
+ msgid "The TCP port spamd is listening on"
963
+ msgstr ""
964
+
965
+ #: amavis/app_settings.py:202
966
+ #, fuzzy
967
+ #| msgid "Enable per-domain limits"
968
+ msgid "Enable per-domain manual learning"
969
+ msgstr "Ota käyttöön verkkotunnuskohtaiset rajoitukset"
970
+
971
+ #: amavis/app_settings.py:205
972
+ #, fuzzy
973
+ #| msgid "Allow this administrator to access user mailboxes"
974
+ msgid ""
975
+ "Allow domain administrators to train Spamassassin (within dedicated per-"
976
+ "domain databases)"
977
+ msgstr "Salli tämän järjestelmänvalvojan pääsy käyttäjien postilaatikoihin"
978
+
979
+ #: amavis/app_settings.py:215
980
+ #, fuzzy
981
+ #| msgid "Enable per-domain limits"
982
+ msgid "Enable per-user manual learning"
983
+ msgstr "Ota käyttöön verkkotunnuskohtaiset rajoitukset"
984
+
985
+ #: amavis/app_settings.py:218
986
+ msgid ""
987
+ "Allow simple users to personally train Spamassassin (within a dedicated "
988
+ "database)"
989
+ msgstr ""
990
+
991
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
992
+ msgid "Display"
993
+ msgstr ""
994
+
995
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
996
+ #, fuzzy
997
+ #| msgid "Number of displayed items per page"
998
+ msgid "Number of displayed emails per page"
999
+ msgstr "Näytettävien kohteiden määrä sivua kohti"
1000
+
1001
+ #: amavis/app_settings.py:246
1002
+ msgid "Set the maximum number of messages displayed in a page"
1003
+ msgstr ""
1004
+
1005
+ #: amavis/app_settings.py:266 amavis/app_settings.py:273
1006
+ msgid "Amavis"
1007
+ msgstr ""
1008
+
1009
+ #: amavis/checks/settings_checks.py:8
1010
+ msgid ""
1011
+ "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used "
1012
+ "by the Amavis database."
1013
+ msgstr ""
1014
+
1015
+ #: amavis/checks/settings_checks.py:12
1016
+ msgid ""
1017
+ "Check your database character encoding and set/update "
1018
+ "AMAVIS_DEFAULT_DATABASE_ENCODING."
1019
+ msgstr ""
1020
+
1021
+ #: amavis/checks/settings_checks.py:19
1022
+ msgid "Modoboa Amavis has not been tested using the selected database engine."
1023
+ msgstr ""
1024
+
1025
+ #: amavis/checks/settings_checks.py:20
1026
+ msgid "Try using PostgreSQL, MySQL or MariaDB."
1027
+ msgstr ""
1028
+
1029
+ #: amavis/handlers.py:141
1030
+ msgid "Pending requests"
1031
+ msgstr ""
1032
+
1033
+ #: amavis/lib.py:59
1034
+ #, python-format
1035
+ msgid "Connection to amavis failed: %s"
1036
+ msgstr ""
1037
+
1038
+ #: amavis/lib.py:133
1039
+ #, fuzzy
1040
+ #| msgid "Failed to locate rrdtool binary."
1041
+ msgid "Failed to find {} binary"
1042
+ msgstr "Rrdtoolsin binääritiedostoa ei löydy."
1043
+
1044
+ #: amavis/lib.py:148
1045
+ #, fuzzy
1046
+ #| msgid "Local recipient {}@{} not found"
1047
+ msgid "No recipient found"
1048
+ msgstr "Paikallista vastaanottajaa {}@{} ei löydy"
1049
+
1050
+ #: amavis/lib.py:159
1051
+ #, fuzzy
1052
+ #| msgid "Domain not found."
1053
+ msgid "Local domain not found"
1054
+ msgstr "Verkkotunnusta ei löydy."
1055
+
1056
+ #: amavis/management/commands/amnotify.py:59
1057
+ #, fuzzy
1058
+ #| msgid "[modoboa] Sending limit reached"
1059
+ msgid "[modoboa] Pending release requests"
1060
+ msgstr "[modoboa] Lähetysraja saavutettu"
1061
+
1062
+ #: amavis/models.py:101
1063
+ #, fuzzy
1064
+ #| msgid "Search filter"
1065
+ msgid "Virus filter"
1066
+ msgstr "Etsi suodatin"
1067
+
1068
+ #: amavis/models.py:105 amavis/models.py:119 amavis/models.py:133
1069
+ msgid "yes"
1070
+ msgstr ""
1071
+
1072
+ #: amavis/models.py:106 amavis/models.py:120 amavis/models.py:134
1073
+ msgid "no"
1074
+ msgstr ""
1075
+
1076
+ #: amavis/models.py:107 amavis/models.py:121 amavis/models.py:135
1077
+ msgid "default"
1078
+ msgstr ""
1079
+
1080
+ #: amavis/models.py:111
1081
+ msgid "Bypass virus checks or not. Choose 'default' to use global settings."
1082
+ msgstr ""
1083
+
1084
+ #: amavis/models.py:115
1085
+ #, fuzzy
1086
+ #| msgid "Search filter"
1087
+ msgid "Spam filter"
1088
+ msgstr "Etsi suodatin"
1089
+
1090
+ #: amavis/models.py:125
1091
+ msgid "Bypass spam checks or not. Choose 'default' to use global settings."
1092
+ msgstr ""
1093
+
1094
+ #: amavis/models.py:129
1095
+ #, fuzzy
1096
+ #| msgid "Search filter"
1097
+ msgid "Banned filter"
1098
+ msgstr "Etsi suodatin"
1099
+
1100
+ #: amavis/models.py:139
1101
+ msgid "Bypass banned checks or not. Choose 'default' to use global settings."
1102
+ msgstr ""
1103
+
1104
+ #: amavis/models.py:170
1105
+ msgid "Spam marker"
1106
+ msgstr ""
1107
+
1108
+ #: amavis/models.py:176
1109
+ msgid ""
1110
+ "Modify spam subject using the specified text. Choose 'default' to use global "
1111
+ "settings."
1112
+ msgstr ""
1113
+
1114
+ #: amavis/templates/amavis/notifications/pending_requests.html:3
1115
+ #, python-format
1116
+ msgid "%(counter)s release request is pending for action."
1117
+ msgid_plural "%(counter)s release requests are pending for action."
1118
+ msgstr[0] ""
1119
+ msgstr[1] ""
1120
+
1121
+ #: amavis/templates/amavis/notifications/pending_requests.html:8
1122
+ msgid "Sketch:"
1123
+ msgstr ""
1124
+
1125
+ #: amavis/templates/amavis/notifications/pending_requests.html:10
1126
+ msgid "From:"
1127
+ msgstr ""
1128
+
1129
+ #: amavis/templates/amavis/notifications/pending_requests.html:11
1130
+ msgid "To:"
1131
+ msgstr ""
1132
+
1133
+ #: amavis/templates/amavis/notifications/pending_requests.html:12
1134
+ #, fuzzy
1135
+ #| msgid "Date"
1136
+ msgid "Date:"
1137
+ msgstr "Päivämäärä"
1138
+
1139
+ #: amavis/templates/amavis/notifications/pending_requests.html:13
1140
+ #, fuzzy
1141
+ #| msgid "Subject"
1142
+ msgid "Subject:"
1143
+ msgstr "Aihe"
1144
+
1145
+ #: amavis/templates/amavis/notifications/pending_requests.html:14
1146
+ #, fuzzy
1147
+ #| msgid "sent messages"
1148
+ msgid "Act on this message:"
1149
+ msgstr "lähetetyt viestit"
1150
+
1151
+ #: amavis/templates/amavis/notifications/pending_requests.html:16
1152
+ #, python-format
1153
+ msgid "Please visit %(listingurl)s for a full listing."
1154
+ msgstr ""
1155
+
1156
+ #: amavis/viewsets.py:122
1157
+ #, fuzzy
1158
+ #| msgid "Invalid address"
1159
+ msgid "Invalid request"
1160
+ msgstr "Virheellinen osoite"
1161
+
742
1162
  #: autoreply/api/v2/serializers.py:27
743
1163
  msgid "Value can't be less than 1 day"
744
1164
  msgstr ""
@@ -855,7 +1275,7 @@ msgstr "Luo verkkotunnuksen ylläpitäjä"
855
1275
  msgid "Allow domain administrators to manage user calendars (read and write)"
856
1276
  msgstr "Salli tämän järjestelmänvalvojan pääsy käyttäjien postilaatikoihin"
857
1277
 
858
- #: calendars/app_settings.py:60 core/app_settings.py:676
1278
+ #: calendars/app_settings.py:60 core/app_settings.py:664
859
1279
  #: rspamd/app_settings.py:45
860
1280
  msgid "Miscellaneous"
861
1281
  msgstr "Sekalaiset"
@@ -869,15 +1289,15 @@ msgid ""
869
1289
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
870
1290
  msgstr ""
871
1291
 
872
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
1292
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205
873
1293
  msgid "Calendars"
874
1294
  msgstr ""
875
1295
 
876
- #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
1296
+ #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
877
1297
  msgid "Server location is not set, please fix it."
878
1298
  msgstr ""
879
1299
 
880
- #: calendars/viewsets.py:197
1300
+ #: calendars/viewsets.py:199
881
1301
  msgid "Uploaded file is too big (max: {} bytes)"
882
1302
  msgstr ""
883
1303
 
@@ -907,7 +1327,7 @@ msgstr "LDAP-synkronointiasetukset"
907
1327
  msgid "Interval in seconds between 2 synchronization requests"
908
1328
  msgstr ""
909
1329
 
910
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
1330
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:195
911
1331
  #, fuzzy
912
1332
  #| msgid "Domains"
913
1333
  msgid "Contacts"
@@ -959,12 +1379,12 @@ msgstr "Virheellinen PIN-koodi"
959
1379
  msgid "2FA is already enabled"
960
1380
  msgstr "Kaksivaiheinen tunnistus (2FA) on jo käytössä"
961
1381
 
962
- #: core/api/v1/serializers.py:86
1382
+ #: core/api/v1/serializers.py:87
963
1383
  #, python-format
964
1384
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
965
1385
  msgstr ""
966
1386
 
967
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
1387
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
968
1388
  #, fuzzy
969
1389
  #| msgid "Old password"
970
1390
  msgid "Invalid password"
@@ -978,24 +1398,20 @@ msgstr "Kaksivaiheinen tunnistautuminen (2FA) ei ole käytössä"
978
1398
  msgid "Local"
979
1399
  msgstr "Paikallinen"
980
1400
 
981
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
982
- msgid "User profile"
983
- msgstr "Käyttäjäprofiili"
984
-
985
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
986
- #: core/api/v2/serializers.py:228
1401
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1402
+ #: core/api/v2/serializers.py:221
987
1403
  msgid "Invalid syntax"
988
1404
  msgstr "Virheellinen syntaksi"
989
1405
 
990
- #: core/api/v2/serializers.py:233
1406
+ #: core/api/v2/serializers.py:226
991
1407
  msgid "Invalid rounds number"
992
1408
  msgstr "Virheellinen kierrosluku"
993
1409
 
994
- #: core/api/v2/serializers.py:433 core/forms.py:81
1410
+ #: core/api/v2/serializers.py:426 core/forms.py:81
995
1411
  msgid "This code is invalid"
996
1412
  msgstr "Tämä koodi on virheellinen"
997
1413
 
998
- #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
1414
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
999
1415
  msgid "Please use the following code to recover your Modoboa password: {}"
1000
1416
  msgstr "Käytä seuraavaa koodia saadaksesi takaisin Modoboa-salasanasi: {}"
1001
1417
 
@@ -1005,48 +1421,60 @@ msgstr "Käytä seuraavaa koodia saadaksesi takaisin Modoboa-salasanasi: {}"
1005
1421
  msgid "Administration console"
1006
1422
  msgstr "Hallinnointinäkymä"
1007
1423
 
1008
- #: core/api/v2/viewsets.py:187
1424
+ #: core/api/v2/viewsets.py:184 dmarc/models.py:11
1425
+ #, fuzzy
1426
+ #| msgid "Quantity"
1427
+ msgid "Quarantine"
1428
+ msgstr "Määrä"
1429
+
1430
+ #: core/api/v2/viewsets.py:186
1431
+ #, fuzzy
1432
+ #| msgid "Quantity"
1433
+ msgid "Amavis quarantine"
1434
+ msgstr "Määrä"
1435
+
1436
+ #: core/api/v2/viewsets.py:197
1009
1437
  #, fuzzy
1010
1438
  #| msgid "Address"
1011
1439
  msgid "Address book"
1012
1440
  msgstr "Osoite"
1013
1441
 
1014
- #: core/api/v2/viewsets.py:197
1442
+ #: core/api/v2/viewsets.py:207
1015
1443
  msgid "Calendar"
1016
1444
  msgstr ""
1017
1445
 
1018
- #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1019
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1446
+ #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1447
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1020
1448
  #, fuzzy
1021
1449
  #| msgid "E-mail"
1022
1450
  msgid "Webmail"
1023
1451
  msgstr "Sähköpostiosoite"
1024
1452
 
1025
- #: core/app_settings.py:37
1453
+ #: core/app_settings.py:25
1026
1454
  msgid "Authentication"
1027
1455
  msgstr "Tunnistautuminen"
1028
1456
 
1029
- #: core/app_settings.py:43
1457
+ #: core/app_settings.py:31
1030
1458
  msgid "Authentication type"
1031
1459
  msgstr "Autentikointityyppi"
1032
1460
 
1033
- #: core/app_settings.py:45
1461
+ #: core/app_settings.py:33
1034
1462
  msgid "The backend used for authentication"
1035
1463
  msgstr "Tunnistautumiseen käytettävä taustajärjestelmä"
1036
1464
 
1037
- #: core/app_settings.py:52
1465
+ #: core/app_settings.py:40
1038
1466
  msgid "Default password scheme"
1039
1467
  msgstr "Oletussalasanojen järjestelmä"
1040
1468
 
1041
- #: core/app_settings.py:54
1469
+ #: core/app_settings.py:42
1042
1470
  msgid "Scheme used to crypt mailbox passwords"
1043
1471
  msgstr "Sähköpostilaatikon salasanojen salaamiseen käytetty järjestelmä"
1044
1472
 
1045
- #: core/app_settings.py:61
1473
+ #: core/app_settings.py:49
1046
1474
  msgid "Rounds"
1047
1475
  msgstr "Kierrokset"
1048
1476
 
1049
- #: core/app_settings.py:63
1477
+ #: core/app_settings.py:51
1050
1478
  msgid ""
1051
1479
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1052
1480
  "between 1000 and 999999999, inclusive."
@@ -1054,47 +1482,47 @@ msgstr ""
1054
1482
  "Käytettävien kierrosten määrä (vain sha256crypt ja sha512crypt käyttävät). "
1055
1483
  "Arvon on oltava välillä 1000 ja 99999999999."
1056
1484
 
1057
- #: core/app_settings.py:73
1485
+ #: core/app_settings.py:61
1058
1486
  msgid "Update password scheme at login"
1059
1487
  msgstr "Päivitä salasanajärjestelmä kirjautumisen yhteydessä"
1060
1488
 
1061
- #: core/app_settings.py:76
1489
+ #: core/app_settings.py:64
1062
1490
  msgid "Update user password at login to use the default password scheme"
1063
1491
  msgstr ""
1064
1492
  "Päivitä käyttäjän salasana sisäänkirjautumisen yhteydessä käyttämään "
1065
1493
  "oletussalasanajärjestelmää"
1066
1494
 
1067
- #: core/app_settings.py:84
1495
+ #: core/app_settings.py:72
1068
1496
  msgid "Default password"
1069
1497
  msgstr "Oletussalasana"
1070
1498
 
1071
- #: core/app_settings.py:86
1499
+ #: core/app_settings.py:74
1072
1500
  msgid "Default password for automatically created accounts."
1073
1501
  msgstr "Automaattisesti luotujen tilien oletussalasana."
1074
1502
 
1075
- #: core/app_settings.py:93
1503
+ #: core/app_settings.py:81
1076
1504
  msgid "Random password length"
1077
1505
  msgstr "Satunnaisen salasanan pituus"
1078
1506
 
1079
- #: core/app_settings.py:95
1507
+ #: core/app_settings.py:83
1080
1508
  msgid "Length of randomly generated passwords."
1081
1509
  msgstr "Satunnaisesti luotujen salasanojen pituus."
1082
1510
 
1083
- #: core/app_settings.py:103
1511
+ #: core/app_settings.py:91
1084
1512
  msgid "Allow special characters for random password"
1085
1513
  msgstr ""
1086
1514
 
1087
- #: core/app_settings.py:106
1515
+ #: core/app_settings.py:94
1088
1516
  #, fuzzy
1089
1517
  #| msgid "Length of randomly generated passwords."
1090
1518
  msgid "Enable special characters in randomly generated passwords."
1091
1519
  msgstr "Satunnaisesti luotujen salasanojen pituus."
1092
1520
 
1093
- #: core/app_settings.py:114
1521
+ #: core/app_settings.py:102
1094
1522
  msgid "Update password service URL"
1095
1523
  msgstr "Päivitä salasanapalvelun URL-osoite"
1096
1524
 
1097
- #: core/app_settings.py:116
1525
+ #: core/app_settings.py:104
1098
1526
  msgid ""
1099
1527
  "The URL of an external page where users will be able to update their "
1100
1528
  "password. It applies only to non local users, ie. those automatically "
@@ -1104,106 +1532,106 @@ msgstr ""
1104
1532
  "Koskee vain muita kuin paikallisia käyttäjiä. Eli niitä, jotka luodaan "
1105
1533
  "automaattisesti onnistuneen ulkoisen todennuksen jälkeen (LDAP, SMTP)."
1106
1534
 
1107
- #: core/app_settings.py:126
1535
+ #: core/app_settings.py:114
1108
1536
  msgid "Password recovery announcement"
1109
1537
  msgstr "Ilmoitus salasanan palautuksesta"
1110
1538
 
1111
- #: core/app_settings.py:128
1539
+ #: core/app_settings.py:116
1112
1540
  msgid "A temporary message that will be displayed on the reset password page."
1113
1541
  msgstr "Väliaikainen viesti, joka näytetään salasanan nollaussivulla."
1114
1542
 
1115
- #: core/app_settings.py:137
1543
+ #: core/app_settings.py:125
1116
1544
  msgid "Enable password recovery by SMS"
1117
1545
  msgstr "Ota salasanan palautus käyttöön tekstiviestillä"
1118
1546
 
1119
- #: core/app_settings.py:140
1547
+ #: core/app_settings.py:128
1120
1548
  msgid "Enable password recovery by SMS for users who filled a phone number."
1121
1549
  msgstr ""
1122
1550
  "Ota käyttöön salasanan palautus tekstiviestillä käyttäjille, jotka ovat "
1123
1551
  "täyttäneet puhelinnumeron."
1124
1552
 
1125
- #: core/app_settings.py:148
1553
+ #: core/app_settings.py:136
1126
1554
  msgid "SMS provider"
1127
1555
  msgstr "SMS-palveluntarjoaja"
1128
1556
 
1129
- #: core/app_settings.py:151
1557
+ #: core/app_settings.py:139
1130
1558
  msgid "Choose a provider to send password recovery SMS"
1131
1559
  msgstr ""
1132
1560
  "Valitse palveluntarjoaja, joka lähettää salasanan palautustekstiviestin"
1133
1561
 
1134
- #: core/app_settings.py:163
1562
+ #: core/app_settings.py:151
1135
1563
  msgid "LDAP"
1136
1564
  msgstr ""
1137
1565
 
1138
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1566
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1139
1567
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1140
- #: webmail/app_settings.py:73
1568
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1141
1569
  msgid "Server address"
1142
1570
  msgstr "Palvelimen osoite"
1143
1571
 
1144
- #: core/app_settings.py:171
1572
+ #: core/app_settings.py:159
1145
1573
  msgid "The IP address or the DNS name of the LDAP server"
1146
1574
  msgstr "LDAP-palvelimen IP-osoite tai DNS-nimi"
1147
1575
 
1148
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1576
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1149
1577
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1150
- #: webmail/app_settings.py:91
1578
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1151
1579
  msgid "Server port"
1152
1580
  msgstr "Palvelimen portti"
1153
1581
 
1154
- #: core/app_settings.py:180
1582
+ #: core/app_settings.py:168
1155
1583
  msgid "The TCP port number used by the LDAP server"
1156
1584
  msgstr "LDAP-palvelimen käyttämän TCP-portin numero"
1157
1585
 
1158
- #: core/app_settings.py:188
1586
+ #: core/app_settings.py:176
1159
1587
  msgid "Enable secondary server (fallback)"
1160
1588
  msgstr "Toisen palvelimen käyttöönotto (varapalvelin)"
1161
1589
 
1162
- #: core/app_settings.py:191
1590
+ #: core/app_settings.py:179
1163
1591
  msgid ""
1164
1592
  "Enable a secondary LDAP server which will be used if the primary one fails"
1165
1593
  msgstr ""
1166
1594
  "Ota käyttöön toissijainen LDAP-palvelin, jota käytetään, jos ensisijainen "
1167
1595
  "palvelin ei toimi"
1168
1596
 
1169
- #: core/app_settings.py:199
1597
+ #: core/app_settings.py:187
1170
1598
  msgid "Secondary server address"
1171
1599
  msgstr "Toisen palvelimen osoite"
1172
1600
 
1173
- #: core/app_settings.py:202
1601
+ #: core/app_settings.py:190
1174
1602
  msgid "The IP address or the DNS name of the seondary LDAP server"
1175
1603
  msgstr "Toisen LDAP-palvelimen IP-osoite tai DNS-nimi"
1176
1604
 
1177
- #: core/app_settings.py:209
1605
+ #: core/app_settings.py:197
1178
1606
  msgid "Secondary server port"
1179
1607
  msgstr "Toisen palvelimen portti"
1180
1608
 
1181
- #: core/app_settings.py:212
1609
+ #: core/app_settings.py:200
1182
1610
  msgid "The TCP port number used by the LDAP secondary server"
1183
1611
  msgstr "LDAP:n toissijaisen palvelimen käyttämä TCP-portin numero"
1184
1612
 
1185
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1613
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1186
1614
  #: webmail/app_settings.py:45
1187
1615
  msgid "Use a secured connection"
1188
1616
  msgstr "Käytä suojattua yhteyttä"
1189
1617
 
1190
- #: core/app_settings.py:221
1618
+ #: core/app_settings.py:209
1191
1619
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1192
1620
  msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
1193
1621
 
1194
- #: core/app_settings.py:228
1622
+ #: core/app_settings.py:216
1195
1623
  msgid "Active Directory"
1196
1624
  msgstr "Active Directory"
1197
1625
 
1198
- #: core/app_settings.py:230
1626
+ #: core/app_settings.py:218
1199
1627
  msgid "Tell if the LDAP server is an Active Directory one"
1200
1628
  msgstr "Kerro, onko LDAP-palvelin Active Directory -palvelin"
1201
1629
 
1202
- #: core/app_settings.py:237
1630
+ #: core/app_settings.py:225
1203
1631
  msgid "Administrator groups"
1204
1632
  msgstr "Järjestelmänvalvojien ryhmät"
1205
1633
 
1206
- #: core/app_settings.py:239
1634
+ #: core/app_settings.py:227
1207
1635
  msgid ""
1208
1636
  "Members of those LDAP Posix groups will be created as domain administrators. "
1209
1637
  "Use ';' characters to separate groups."
@@ -1211,47 +1639,47 @@ msgstr ""
1211
1639
  "Näiden LDAP Posix -ryhmien jäsenet luodaan verkkotunnuksen "
1212
1640
  "järjestelmänvalvojiksi. Käytä ';'-merkkejä ryhmien erottamiseen."
1213
1641
 
1214
- #: core/app_settings.py:248
1642
+ #: core/app_settings.py:236
1215
1643
  msgid "Group type"
1216
1644
  msgstr "Ryhmän tyyppi"
1217
1645
 
1218
- #: core/app_settings.py:250
1646
+ #: core/app_settings.py:238
1219
1647
  msgid "The LDAP group type to use with your directory."
1220
1648
  msgstr "LDAP-ryhmän tyyppi, jota käytetään hakemiston kanssa."
1221
1649
 
1222
- #: core/app_settings.py:257
1650
+ #: core/app_settings.py:245
1223
1651
  msgid "Groups search base"
1224
1652
  msgstr "Ryhmien hakupohja"
1225
1653
 
1226
- #: core/app_settings.py:259
1654
+ #: core/app_settings.py:247
1227
1655
  msgid "The distinguished name of the search base used to find groups"
1228
1656
  msgstr "Ryhmien etsimiseen käytettävän hakupohjan erottuva nimi"
1229
1657
 
1230
- #: core/app_settings.py:267
1658
+ #: core/app_settings.py:255
1231
1659
  msgid "Password attribute"
1232
1660
  msgstr "Salasana-attribuutti"
1233
1661
 
1234
- #: core/app_settings.py:269
1662
+ #: core/app_settings.py:257
1235
1663
  msgid "The attribute used to store user passwords"
1236
1664
  msgstr "Määrite, jota käytetään käyttäjien salasanojen tallentamiseen"
1237
1665
 
1238
- #: core/app_settings.py:276
1666
+ #: core/app_settings.py:264
1239
1667
  msgid "LDAP authentication settings"
1240
1668
  msgstr "LDAP-todennusasetukset"
1241
1669
 
1242
- #: core/app_settings.py:284
1670
+ #: core/app_settings.py:272
1243
1671
  msgid "Authentication method"
1244
1672
  msgstr "Tunnistusmenetelmä"
1245
1673
 
1246
- #: core/app_settings.py:287
1674
+ #: core/app_settings.py:275
1247
1675
  msgid "Choose the authentication method to use"
1248
1676
  msgstr "Valitse käytettävä todennusmenetelmä"
1249
1677
 
1250
- #: core/app_settings.py:294 core/app_settings.py:357
1678
+ #: core/app_settings.py:282 core/app_settings.py:345
1251
1679
  msgid "Bind DN"
1252
1680
  msgstr "Sido DN"
1253
1681
 
1254
- #: core/app_settings.py:296 core/app_settings.py:359
1682
+ #: core/app_settings.py:284 core/app_settings.py:347
1255
1683
  msgid ""
1256
1684
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1257
1685
  "for an anonymous bind"
@@ -1259,29 +1687,29 @@ msgstr ""
1259
1687
  "Erotusnimi, jota käytetään LDAP-palvelimeen sitoutumisessa. Jätä tyhjäksi "
1260
1688
  "anonyymiä sidontaa varten"
1261
1689
 
1262
- #: core/app_settings.py:305 core/app_settings.py:367
1690
+ #: core/app_settings.py:293 core/app_settings.py:355
1263
1691
  msgid "Bind password"
1264
1692
  msgstr "Sido salasana"
1265
1693
 
1266
- #: core/app_settings.py:307 core/app_settings.py:369
1694
+ #: core/app_settings.py:295 core/app_settings.py:357
1267
1695
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1268
1696
  msgstr ""
1269
1697
  "Salasana, jota käytetään LDAP-palvelimeen sitoutumisessa (komennolla 'Bind "
1270
1698
  "DN')"
1271
1699
 
1272
- #: core/app_settings.py:317 core/app_settings.py:422
1700
+ #: core/app_settings.py:305 core/app_settings.py:410
1273
1701
  msgid "Users search base"
1274
1702
  msgstr "Käyttäjien hakupohja"
1275
1703
 
1276
- #: core/app_settings.py:319 core/app_settings.py:424
1704
+ #: core/app_settings.py:307 core/app_settings.py:412
1277
1705
  msgid "The distinguished name of the search base used to find users"
1278
1706
  msgstr "Käyttäjien etsimiseen käytettävän hakupohjan erisnimi"
1279
1707
 
1280
- #: core/app_settings.py:328 core/app_settings.py:433
1708
+ #: core/app_settings.py:316 core/app_settings.py:421
1281
1709
  msgid "Search filter"
1282
1710
  msgstr "Etsi suodatin"
1283
1711
 
1284
- #: core/app_settings.py:330 core/app_settings.py:435
1712
+ #: core/app_settings.py:318 core/app_settings.py:423
1285
1713
  msgid ""
1286
1714
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1287
1715
  "valid, it must be enclosed in parentheses."
@@ -1289,11 +1717,11 @@ msgstr ""
1289
1717
  "Valinnainen suodatinmerkkijono (esim. '(objectClass=person)'). Tämän on "
1290
1718
  "oltava suluissa."
1291
1719
 
1292
- #: core/app_settings.py:339
1720
+ #: core/app_settings.py:327
1293
1721
  msgid "User DN template"
1294
1722
  msgstr "Käyttäjän DN-malli"
1295
1723
 
1296
- #: core/app_settings.py:341
1724
+ #: core/app_settings.py:329
1297
1725
  #, python-format
1298
1726
  msgid ""
1299
1727
  "The template used to construct a user's DN. It should contain one "
@@ -1302,26 +1730,26 @@ msgstr ""
1302
1730
  "Käyttäjän DN:n rakentamiseen käytettävä malli. Sen tulisi sisältää yksi "
1303
1731
  "paikanvaraaja (eli %(user)s)"
1304
1732
 
1305
- #: core/app_settings.py:350
1733
+ #: core/app_settings.py:338
1306
1734
  msgid "LDAP synchronization settings"
1307
1735
  msgstr "LDAP-synkronointiasetukset"
1308
1736
 
1309
- #: core/app_settings.py:378
1737
+ #: core/app_settings.py:366
1310
1738
  msgid "Enable export to LDAP"
1311
1739
  msgstr "Ota käyttöön vienti LDAP:iin"
1312
1740
 
1313
- #: core/app_settings.py:380
1741
+ #: core/app_settings.py:368
1314
1742
  msgid ""
1315
1743
  "Enable automatic synchronization between local database and LDAP directory"
1316
1744
  msgstr ""
1317
1745
  "Ota käyttöön automaattinen synkronointi paikallisen tietokannan ja LDAP-"
1318
1746
  "hakemiston välillä"
1319
1747
 
1320
- #: core/app_settings.py:389
1748
+ #: core/app_settings.py:377
1321
1749
  msgid "Delete remote LDAP account when local account is deleted"
1322
1750
  msgstr "Etäisen LDAP-tilin poistaminen, kun paikallinen tili poistetaan"
1323
1751
 
1324
- #: core/app_settings.py:392
1752
+ #: core/app_settings.py:380
1325
1753
  msgid ""
1326
1754
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1327
1755
  "be disabled."
@@ -1329,11 +1757,11 @@ msgstr ""
1329
1757
  "Poista etä-LDAP-tili, kun paikallinen tili poistetaan. Muuten se poistetaan "
1330
1758
  "käytöstä."
1331
1759
 
1332
- #: core/app_settings.py:401
1760
+ #: core/app_settings.py:389
1333
1761
  msgid "Account DN template"
1334
1762
  msgstr "Tilin DN-malli"
1335
1763
 
1336
- #: core/app_settings.py:403
1764
+ #: core/app_settings.py:391
1337
1765
  #, python-format
1338
1766
  msgid ""
1339
1767
  "The template used to construct an account's DN. It should contain one "
@@ -1342,207 +1770,207 @@ msgstr ""
1342
1770
  "Malli, jota käytetään tilin DN:n muodostamiseen. Sen tulisi sisältää yksi "
1343
1771
  "paikanvaraaja (eli %(user)s)"
1344
1772
 
1345
- #: core/app_settings.py:412
1773
+ #: core/app_settings.py:400
1346
1774
  msgid "Enable import from LDAP"
1347
1775
  msgstr "Ota käyttöön tuonti LDAP:stä"
1348
1776
 
1349
- #: core/app_settings.py:414
1777
+ #: core/app_settings.py:402
1350
1778
  msgid "Enable account synchronization from LDAP directory to local database"
1351
1779
  msgstr ""
1352
1780
  "Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen tietokantaan"
1353
1781
 
1354
- #: core/app_settings.py:444
1782
+ #: core/app_settings.py:432
1355
1783
  msgid "Username attribute"
1356
1784
  msgstr "Käyttäjätunnus-määrite"
1357
1785
 
1358
- #: core/app_settings.py:446
1786
+ #: core/app_settings.py:434
1359
1787
  msgid "The name of the LDAP attribute where the username can be found."
1360
1788
  msgstr "Sen LDAP-attribuutin nimi, josta käyttäjänimi löytyy."
1361
1789
 
1362
- #: core/app_settings.py:455
1790
+ #: core/app_settings.py:443
1363
1791
  msgid "Enable Dovecot LDAP sync"
1364
1792
  msgstr "Ota Dovecot LDAP-synkronointi käyttöön"
1365
1793
 
1366
- #: core/app_settings.py:457
1794
+ #: core/app_settings.py:445
1367
1795
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1368
1796
  msgstr "LDAP-todennusasetuksia sovelletaan Dovecot-konfiguraatioon."
1369
1797
 
1370
- #: core/app_settings.py:465
1798
+ #: core/app_settings.py:453
1371
1799
  msgid "Dovecot LDAP config file"
1372
1800
  msgstr "Dovecot LDAP -asetustiedosto"
1373
1801
 
1374
- #: core/app_settings.py:467
1802
+ #: core/app_settings.py:455
1375
1803
  msgid ""
1376
1804
  "Location of the configuration file which contains Dovecot LDAP settings."
1377
1805
  msgstr "Dovecotin LDAP-asetukset sisältävän määritystiedoston sijainti."
1378
1806
 
1379
- #: core/app_settings.py:480
1807
+ #: core/app_settings.py:468
1380
1808
  msgid "Dashboard"
1381
1809
  msgstr "Työpöytä"
1382
1810
 
1383
- #: core/app_settings.py:486
1811
+ #: core/app_settings.py:474
1384
1812
  #, fuzzy
1385
1813
  #| msgid "spam messages"
1386
1814
  msgid "Custom welcome message"
1387
1815
  msgstr "roskapostiviestit"
1388
1816
 
1389
- #: core/app_settings.py:488
1817
+ #: core/app_settings.py:476
1390
1818
  #, fuzzy
1391
1819
  #| msgid ""
1392
1820
  #| "A temporary message that will be displayed on the reset password page."
1393
1821
  msgid "A welcome message that will be displayed instead the default one"
1394
1822
  msgstr "Väliaikainen viesti, joka näytetään salasanan nollaussivulla."
1395
1823
 
1396
- #: core/app_settings.py:495
1824
+ #: core/app_settings.py:483
1397
1825
  msgid "Custom RSS feed"
1398
1826
  msgstr "Mukautettu RSS-syöte"
1399
1827
 
1400
- #: core/app_settings.py:497
1828
+ #: core/app_settings.py:485
1401
1829
  msgid "Display custom RSS feed to resellers and domain administrators"
1402
1830
  msgstr ""
1403
1831
  "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
1404
1832
 
1405
- #: core/app_settings.py:506
1833
+ #: core/app_settings.py:494
1406
1834
  #, fuzzy
1407
1835
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1408
1836
  msgid "Display custom RSS feed to super admins"
1409
1837
  msgstr ""
1410
1838
  "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
1411
1839
 
1412
- #: core/app_settings.py:509
1840
+ #: core/app_settings.py:497
1413
1841
  #, fuzzy
1414
1842
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1415
1843
  msgid "Display custom RSS feed also to super administrators"
1416
1844
  msgstr ""
1417
1845
  "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
1418
1846
 
1419
- #: core/app_settings.py:517
1847
+ #: core/app_settings.py:505
1420
1848
  msgid "Hide features widget"
1421
1849
  msgstr "Piilota ominaisuudet-widget"
1422
1850
 
1423
- #: core/app_settings.py:519
1851
+ #: core/app_settings.py:507
1424
1852
  msgid "Hide features widget for resellers and domain administrators"
1425
1853
  msgstr ""
1426
1854
  "Piilota ominaisuudet-widget jälleenmyyjiltä ja verkkotunnuksen ylläpitäjiltä"
1427
1855
 
1428
- #: core/app_settings.py:531
1856
+ #: core/app_settings.py:519
1429
1857
  msgid "Theme"
1430
1858
  msgstr ""
1431
1859
 
1432
- #: core/app_settings.py:537
1860
+ #: core/app_settings.py:525
1433
1861
  msgid "Primary theme color"
1434
1862
  msgstr ""
1435
1863
 
1436
- #: core/app_settings.py:539
1864
+ #: core/app_settings.py:527
1437
1865
  msgid ""
1438
1866
  "Primary color of the theme (hexadecimal code), used as the background color "
1439
1867
  "of the left menu for example"
1440
1868
  msgstr ""
1441
1869
 
1442
- #: core/app_settings.py:548
1870
+ #: core/app_settings.py:536
1443
1871
  msgid "Primary theme color (lighter version)"
1444
1872
  msgstr ""
1445
1873
 
1446
- #: core/app_settings.py:551 core/app_settings.py:563
1874
+ #: core/app_settings.py:539 core/app_settings.py:551
1447
1875
  msgid "Primary color of the theme (hexadecimal code)"
1448
1876
  msgstr ""
1449
1877
 
1450
- #: core/app_settings.py:560
1878
+ #: core/app_settings.py:548
1451
1879
  msgid "Primary theme color (darker version)"
1452
1880
  msgstr ""
1453
1881
 
1454
- #: core/app_settings.py:571
1882
+ #: core/app_settings.py:559
1455
1883
  #, fuzzy
1456
1884
  #| msgid "Secondary email"
1457
1885
  msgid "Secondary theme color"
1458
1886
  msgstr "Toissijainen sähköpostiosoite"
1459
1887
 
1460
- #: core/app_settings.py:573
1888
+ #: core/app_settings.py:561
1461
1889
  msgid ""
1462
1890
  "Secondary color of the theme (hexadecimal code), used as the background "
1463
1891
  "color of some buttons for example"
1464
1892
  msgstr ""
1465
1893
 
1466
- #: core/app_settings.py:581
1894
+ #: core/app_settings.py:569
1467
1895
  msgid "Labels theme color"
1468
1896
  msgstr ""
1469
1897
 
1470
- #: core/app_settings.py:583
1898
+ #: core/app_settings.py:571
1471
1899
  msgid "Theme color for labels (hexadecimal code)"
1472
1900
  msgstr ""
1473
1901
 
1474
- #: core/app_settings.py:595
1902
+ #: core/app_settings.py:583
1475
1903
  msgid "Notifications"
1476
1904
  msgstr "Ilmoitukset"
1477
1905
 
1478
- #: core/app_settings.py:601
1906
+ #: core/app_settings.py:589
1479
1907
  msgid "Sender address"
1480
1908
  msgstr "Lähettäjän osoite"
1481
1909
 
1482
- #: core/app_settings.py:603
1910
+ #: core/app_settings.py:591
1483
1911
  msgid "Email address used to send notifications."
1484
1912
  msgstr "Ilmoitusten lähettämiseen käytettävä sähköpostiosoite."
1485
1913
 
1486
- #: core/app_settings.py:614
1914
+ #: core/app_settings.py:602
1487
1915
  msgid "Public API"
1488
1916
  msgstr "Julkinen API"
1489
1917
 
1490
- #: core/app_settings.py:620
1918
+ #: core/app_settings.py:608
1491
1919
  msgid "Enable communication"
1492
1920
  msgstr "Ota viestintä käyttöön"
1493
1921
 
1494
- #: core/app_settings.py:622 core/app_settings.py:632
1922
+ #: core/app_settings.py:610 core/app_settings.py:620
1495
1923
  msgid "Automatically checks if a newer version is available"
1496
1924
  msgstr "Tarkistaa automaattisesti, onko uudempi versio saatavana"
1497
1925
 
1498
- #: core/app_settings.py:629
1926
+ #: core/app_settings.py:617
1499
1927
  msgid "Check new versions"
1500
1928
  msgstr "Tarkista uudet versiot"
1501
1929
 
1502
- #: core/app_settings.py:640
1930
+ #: core/app_settings.py:628
1503
1931
  msgid "Send an email when new versions are found"
1504
1932
  msgstr "Lähetä sähköpostia, kun uusia versioita löytyy"
1505
1933
 
1506
- #: core/app_settings.py:644
1934
+ #: core/app_settings.py:632
1507
1935
  msgid "Send an email to notify admins about new versions"
1508
1936
  msgstr ""
1509
1937
  "Lähetä sähköpostiviesti, joka ilmoittaa ylläpitäjille uusista versioista"
1510
1938
 
1511
- #: core/app_settings.py:651 sievefilters/constants.py:25
1939
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1512
1940
  msgid "Recipient"
1513
1941
  msgstr "Vastaanottaja"
1514
1942
 
1515
- #: core/app_settings.py:654
1943
+ #: core/app_settings.py:642
1516
1944
  msgid "Recipient of new versions notification emails."
1517
1945
  msgstr "Uusia versioita koskevien ilmoitussähköpostiviestien vastaanottaja."
1518
1946
 
1519
- #: core/app_settings.py:661
1947
+ #: core/app_settings.py:649
1520
1948
  msgid "Send statistics"
1521
1949
  msgstr "Lähetä tilastot"
1522
1950
 
1523
- #: core/app_settings.py:664
1951
+ #: core/app_settings.py:652
1524
1952
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1525
1953
  msgstr ""
1526
1954
  "Lähetä tilastoja Modoboan julkiseen API:han (laskurit ja käytetyt "
1527
1955
  "laajennukset)"
1528
1956
 
1529
- #: core/app_settings.py:683
1957
+ #: core/app_settings.py:671
1530
1958
  #, fuzzy
1531
1959
  #| msgid "Inactive account threshold"
1532
1960
  msgid "Enable inactive account tracking"
1533
1961
  msgstr "Inaktiivisen tilin kynnysarvo"
1534
1962
 
1535
- #: core/app_settings.py:686
1963
+ #: core/app_settings.py:674
1536
1964
  msgid ""
1537
1965
  "Allow the administrator to set a threshold (in days) beyond which an account "
1538
1966
  "is considered inactive if the user hasn't logged in"
1539
1967
  msgstr ""
1540
1968
 
1541
- #: core/app_settings.py:695
1969
+ #: core/app_settings.py:683
1542
1970
  msgid "Inactive account threshold"
1543
1971
  msgstr "Inaktiivisen tilin kynnysarvo"
1544
1972
 
1545
- #: core/app_settings.py:698
1973
+ #: core/app_settings.py:686
1546
1974
  msgid ""
1547
1975
  "An account with a last login date greater than this threshold (in days) will "
1548
1976
  "be considered as inactive"
@@ -1550,48 +1978,38 @@ msgstr ""
1550
1978
  "Tiliä, jonka viimeisin kirjautumispäivä on suurempi kuin tämä kynnysarvo "
1551
1979
  "(päivinä), pidetään inaktiivisena"
1552
1980
 
1553
- #: core/app_settings.py:707
1981
+ #: core/app_settings.py:695
1554
1982
  msgid "Top notifications check interval"
1555
1983
  msgstr "Ylimpien ilmoitusten tarkistusväli"
1556
1984
 
1557
- #: core/app_settings.py:710
1985
+ #: core/app_settings.py:698
1558
1986
  msgid "Interval between two top notification checks (in seconds)"
1559
1987
  msgstr "Kahden ylimmän ilmoituksen tarkistuksen välinen aika (sekunteina)"
1560
1988
 
1561
- #: core/app_settings.py:717
1989
+ #: core/app_settings.py:705
1562
1990
  msgid "Maximum log record age"
1563
1991
  msgstr "Lokitiedoston enimmäisikä"
1564
1992
 
1565
- #: core/app_settings.py:719
1993
+ #: core/app_settings.py:707
1566
1994
  msgid "The maximum age in days of a log record"
1567
1995
  msgstr "Lokitietueen enimmäisikä päivinä"
1568
1996
 
1569
- #: core/app_settings.py:727
1997
+ #: core/app_settings.py:715
1570
1998
  msgid "Retention time in message history"
1571
1999
  msgstr ""
1572
2000
 
1573
- #: core/app_settings.py:730
2001
+ #: core/app_settings.py:718
1574
2002
  msgid "Retention time (in days) of a message in the message history section"
1575
2003
  msgstr ""
1576
2004
 
1577
- #: core/app_settings.py:737
2005
+ #: core/app_settings.py:725
1578
2006
  msgid "Items per page"
1579
2007
  msgstr "Kohteita per sivu"
1580
2008
 
1581
- #: core/app_settings.py:739
2009
+ #: core/app_settings.py:727
1582
2010
  msgid "Number of displayed items per page"
1583
2011
  msgstr "Näytettävien kohteiden määrä sivua kohti"
1584
2012
 
1585
- #: core/app_settings.py:746
1586
- msgid "Default top redirection"
1587
- msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
1588
-
1589
- #: core/app_settings.py:748
1590
- msgid "The default redirection used when no application is specified"
1591
- msgstr ""
1592
- "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
1593
- "määritetty"
1594
-
1595
2013
  #: core/checks.py:15
1596
2014
  msgid ""
1597
2015
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -1722,7 +2140,7 @@ msgstr "Et voi poistaa omaa tiliäsi"
1722
2140
  msgid "One or more updates are available"
1723
2141
  msgstr "Yksi tai useampi päivitys on saatavilla"
1724
2142
 
1725
- #: core/handlers.py:138
2143
+ #: core/handlers.py:140
1726
2144
  #, python-format
1727
2145
  msgid "You are still using a deprecated password scheme (%s)"
1728
2146
  msgstr ""
@@ -1889,22 +2307,22 @@ msgstr[1] ""
1889
2307
  msgid "The core part of Modoboa"
1890
2308
  msgstr "Modoboan ydinosa"
1891
2309
 
1892
- #: core/views/auth.py:65
2310
+ #: core/views/auth.py:82
1893
2311
  #, python-format
1894
2312
  msgid "User '%s' successfully logged in"
1895
2313
  msgstr "Käyttäjä '%s' kirjautui onnistuneesti sisään"
1896
2314
 
1897
- #: core/views/auth.py:109
2315
+ #: core/views/auth.py:128
1898
2316
  #, python-format
1899
2317
  msgid "Password scheme mismatch. Updating %s password"
1900
2318
  msgstr "Salasanajärjestelmä ei vastaa toisiaan. Salasanan %s päivittäminen"
1901
2319
 
1902
- #: core/views/auth.py:116
2320
+ #: core/views/auth.py:135
1903
2321
  #, python-format
1904
2322
  msgid "Password hash parameter missmatch. Updating %s password"
1905
2323
  msgstr "Salasanan hash-parametrit eivät täsmää. Salasanan %s päivittäminen"
1906
2324
 
1907
- #: core/views/auth.py:154
2325
+ #: core/views/auth.py:173
1908
2326
  msgid "User '{}' successfully logged out"
1909
2327
  msgstr "Käyttäjä '{}' kirjautui onnistuneesti ulos"
1910
2328
 
@@ -1933,16 +2351,10 @@ msgid "Not resolved"
1933
2351
  msgstr "Ei määritelty"
1934
2352
 
1935
2353
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
1936
- #: webmail/constants.py:18
2354
+ #: webmail/constants.py:38
1937
2355
  msgid "None"
1938
2356
  msgstr ""
1939
2357
 
1940
- #: dmarc/models.py:11
1941
- #, fuzzy
1942
- #| msgid "Quantity"
1943
- msgid "Quarantine"
1944
- msgstr "Määrä"
1945
-
1946
2358
  #: dmarc/models.py:12
1947
2359
  #, fuzzy
1948
2360
  #| msgid "Subject"
@@ -2073,7 +2485,12 @@ msgstr "Puuttuu vaadittu p-tunniste"
2073
2485
  msgid "Public key mismatchs"
2074
2486
  msgstr "Julkiset avaimet eivät täsmää"
2075
2487
 
2076
- #: imap_migration/api/v2/serializers.py:117
2488
+ #: imap_migration/api/v2/serializers.py:66
2489
+ #, fuzzy
2490
+ msgid "Migrated domain with name {} already exists"
2491
+ msgstr "Alias tällä nimellä on jo olemassa"
2492
+
2493
+ #: imap_migration/api/v2/serializers.py:130
2077
2494
  #, fuzzy
2078
2495
  #| msgid "Access updated"
2079
2496
  msgid "Access denied"
@@ -2814,7 +3231,7 @@ msgstr ""
2814
3231
  msgid "Rspamd"
2815
3232
  msgstr ""
2816
3233
 
2817
- #: sievefilters/api/v2/viewsets.py:193
3234
+ #: sievefilters/api/v2/viewsets.py:203
2818
3235
  #, fuzzy, python-format
2819
3236
  #| msgid "User '%s' already exists"
2820
3237
  msgid "Filter %s already exists"
@@ -2904,7 +3321,7 @@ msgstr ""
2904
3321
  msgid "is not"
2905
3322
  msgstr ""
2906
3323
 
2907
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3324
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
2908
3325
  msgid "Subject"
2909
3326
  msgstr "Aihe"
2910
3327
 
@@ -3166,25 +3583,25 @@ msgstr ""
3166
3583
  msgid "SMTP settings"
3167
3584
  msgstr "LDAP-asetukset"
3168
3585
 
3169
- #: webmail/app_settings.py:75
3586
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3170
3587
  #, fuzzy
3171
3588
  #| msgid "IP address of your Modoboa server"
3172
3589
  msgid "Address of your SMTP server"
3173
3590
  msgstr "Modoboa-palvelimen IP-osoite"
3174
3591
 
3175
- #: webmail/app_settings.py:82
3592
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3176
3593
  #, fuzzy
3177
3594
  #| msgid "Use a secured connection"
3178
3595
  msgid "Secured connection mode"
3179
3596
  msgstr "Käytä suojattua yhteyttä"
3180
3597
 
3181
- #: webmail/app_settings.py:84
3598
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3182
3599
  #, fuzzy
3183
3600
  #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
3184
3601
  msgid "Use a secured connection to access SMTP server"
3185
3602
  msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
3186
3603
 
3187
- #: webmail/app_settings.py:93
3604
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3188
3605
  #, fuzzy
3189
3606
  #| msgid "IP address of your Modoboa server"
3190
3607
  msgid "Listening port of your SMTP server"
@@ -3201,15 +3618,17 @@ msgstr "Tunnistusmenetelmä"
3201
3618
  msgid "Server needs authentication"
3202
3619
  msgstr "LDAP-todennusasetukset"
3203
3620
 
3204
- #: webmail/app_settings.py:118
3205
- msgid "Display"
3206
- msgstr ""
3621
+ #: webmail/app_settings.py:113
3622
+ #, fuzzy
3623
+ #| msgid "LDAP settings"
3624
+ msgid "Scheduling settings"
3625
+ msgstr "LDAP-asetukset"
3207
3626
 
3208
- #: webmail/app_settings.py:124
3627
+ #: webmail/app_settings.py:161
3209
3628
  msgid "Default message display mode"
3210
3629
  msgstr ""
3211
3630
 
3212
- #: webmail/app_settings.py:126
3631
+ #: webmail/app_settings.py:163
3213
3632
  #, fuzzy
3214
3633
  #| msgid "The default redirection used when no application is specified"
3215
3634
  msgid "The default mode used when displaying a message"
@@ -3217,103 +3636,97 @@ msgstr ""
3217
3636
  "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
3218
3637
  "määritetty"
3219
3638
 
3220
- #: webmail/app_settings.py:133
3639
+ #: webmail/app_settings.py:170
3221
3640
  msgid "Enable HTML links display"
3222
3641
  msgstr ""
3223
3642
 
3224
- #: webmail/app_settings.py:136
3643
+ #: webmail/app_settings.py:173
3225
3644
  msgid "Enable/Disable HTML links display"
3226
3645
  msgstr ""
3227
3646
 
3228
- #: webmail/app_settings.py:144
3229
- #, fuzzy
3230
- #| msgid "Number of displayed items per page"
3231
- msgid "Number of displayed emails per page"
3232
- msgstr "Näytettävien kohteiden määrä sivua kohti"
3233
-
3234
- #: webmail/app_settings.py:147
3647
+ #: webmail/app_settings.py:184
3235
3648
  msgid "Sets the maximum number of messages displayed in a page"
3236
3649
  msgstr ""
3237
3650
 
3238
- #: webmail/app_settings.py:154
3651
+ #: webmail/app_settings.py:191
3239
3652
  msgid "Listing refresh rate"
3240
3653
  msgstr ""
3241
3654
 
3242
- #: webmail/app_settings.py:156
3655
+ #: webmail/app_settings.py:193
3243
3656
  msgid "Automatic listing refresh rate (in secconds)"
3244
3657
  msgstr ""
3245
3658
 
3246
- #: webmail/app_settings.py:163
3659
+ #: webmail/app_settings.py:200
3247
3660
  msgid "Folder container's width"
3248
3661
  msgstr ""
3249
3662
 
3250
- #: webmail/app_settings.py:165
3663
+ #: webmail/app_settings.py:202
3251
3664
  msgid "The width of the folder list container"
3252
3665
  msgstr ""
3253
3666
 
3254
- #: webmail/app_settings.py:176
3667
+ #: webmail/app_settings.py:213
3255
3668
  #, fuzzy
3256
3669
  #| msgid "Create aliases"
3257
3670
  msgid "Folders"
3258
3671
  msgstr "Luo aliaksia"
3259
3672
 
3260
- #: webmail/app_settings.py:182
3673
+ #: webmail/app_settings.py:219
3261
3674
  #, fuzzy
3262
3675
  #| msgid "Create aliases"
3263
3676
  msgid "Trash folder"
3264
3677
  msgstr "Luo aliaksia"
3265
3678
 
3266
- #: webmail/app_settings.py:184
3679
+ #: webmail/app_settings.py:221
3267
3680
  #, fuzzy
3268
3681
  #| msgid "rejected messages"
3269
3682
  msgid "Folder where deleted messages go"
3270
3683
  msgstr "hylätyt viestit"
3271
3684
 
3272
- #: webmail/app_settings.py:191
3685
+ #: webmail/app_settings.py:228
3273
3686
  #, fuzzy
3274
3687
  #| msgid "Create aliases"
3275
3688
  msgid "Sent folder"
3276
3689
  msgstr "Luo aliaksia"
3277
3690
 
3278
- #: webmail/app_settings.py:193
3691
+ #: webmail/app_settings.py:230
3279
3692
  msgid "Folder where copies of sent messages go"
3280
3693
  msgstr ""
3281
3694
 
3282
- #: webmail/app_settings.py:200
3695
+ #: webmail/app_settings.py:237
3283
3696
  #, fuzzy
3284
3697
  #| msgid "Create aliases"
3285
3698
  msgid "Drafts folder"
3286
3699
  msgstr "Luo aliaksia"
3287
3700
 
3288
- #: webmail/app_settings.py:201
3701
+ #: webmail/app_settings.py:238
3289
3702
  msgid "Folder where drafts go"
3290
3703
  msgstr ""
3291
3704
 
3292
- #: webmail/app_settings.py:207
3705
+ #: webmail/app_settings.py:244
3293
3706
  #, fuzzy
3294
3707
  #| msgid "Create aliases"
3295
3708
  msgid "Junk folder"
3296
3709
  msgstr "Luo aliaksia"
3297
3710
 
3298
- #: webmail/app_settings.py:209
3711
+ #: webmail/app_settings.py:246
3299
3712
  #, fuzzy
3300
3713
  #| msgid "rejected messages"
3301
3714
  msgid "Folder where junk messages should go"
3302
3715
  msgstr "hylätyt viestit"
3303
3716
 
3304
- #: webmail/app_settings.py:220
3717
+ #: webmail/app_settings.py:257
3305
3718
  #, fuzzy
3306
3719
  #| msgid "sent messages"
3307
3720
  msgid "Composing messages"
3308
3721
  msgstr "lähetetyt viestit"
3309
3722
 
3310
- #: webmail/app_settings.py:226
3723
+ #: webmail/app_settings.py:263
3311
3724
  #, fuzzy
3312
3725
  #| msgid "Default top redirection"
3313
3726
  msgid "Default editor"
3314
3727
  msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
3315
3728
 
3316
- #: webmail/app_settings.py:228
3729
+ #: webmail/app_settings.py:265
3317
3730
  #, fuzzy
3318
3731
  #| msgid "The default redirection used when no application is specified"
3319
3732
  msgid "The default editor to use when composing a message"
@@ -3321,11 +3734,11 @@ msgstr ""
3321
3734
  "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
3322
3735
  "määritetty"
3323
3736
 
3324
- #: webmail/app_settings.py:235
3737
+ #: webmail/app_settings.py:272
3325
3738
  msgid "Signature text"
3326
3739
  msgstr ""
3327
3740
 
3328
- #: webmail/app_settings.py:237
3741
+ #: webmail/app_settings.py:274
3329
3742
  msgid "User defined email signature"
3330
3743
  msgstr ""
3331
3744
 
@@ -3341,47 +3754,74 @@ msgstr "Palvelimen osoite"
3341
3754
  msgid "Failed to remove attachment: "
3342
3755
  msgstr "LDAP-tilin luominen epäonnistui: {}"
3343
3756
 
3344
- #: webmail/lib/imapemail.py:272
3757
+ #: webmail/lib/imapemail.py:270
3345
3758
  msgid "wrote:"
3346
3759
  msgstr ""
3347
3760
 
3348
- #: webmail/lib/imapemail.py:306
3761
+ #: webmail/lib/imapemail.py:304
3349
3762
  msgid "Date"
3350
3763
  msgstr "Päivämäärä"
3351
3764
 
3352
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3765
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3353
3766
  #, fuzzy
3354
3767
  #| msgid "sent messages"
3355
3768
  msgid "Original message"
3356
3769
  msgstr "lähetetyt viestit"
3357
3770
 
3358
- #: webmail/lib/imaputils.py:221
3771
+ #: webmail/lib/imaputils.py:222
3359
3772
  msgid "Failed to retrieve hierarchy delimiter"
3360
3773
  msgstr ""
3361
3774
 
3362
- #: webmail/lib/imaputils.py:472
3775
+ #: webmail/lib/imaputils.py:478
3363
3776
  msgid "Inbox"
3364
3777
  msgstr ""
3365
3778
 
3366
- #: webmail/lib/imaputils.py:476
3779
+ #: webmail/lib/imaputils.py:482
3367
3780
  #, fuzzy
3368
3781
  #| msgid "Create aliases"
3369
3782
  msgid "Drafts"
3370
3783
  msgstr "Luo aliaksia"
3371
3784
 
3372
- #: webmail/lib/imaputils.py:481
3785
+ #: webmail/lib/imaputils.py:487
3373
3786
  msgid "Junk"
3374
3787
  msgstr ""
3375
3788
 
3376
- #: webmail/lib/imaputils.py:486
3789
+ #: webmail/lib/imaputils.py:492
3377
3790
  msgid "Sent"
3378
3791
  msgstr ""
3379
3792
 
3380
- #: webmail/lib/imaputils.py:491
3793
+ #: webmail/lib/imaputils.py:500
3794
+ msgid "Scheduled"
3795
+ msgstr ""
3796
+
3797
+ #: webmail/lib/imaputils.py:507
3381
3798
  msgid "Trash"
3382
3799
  msgstr ""
3383
3800
 
3384
- #: 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
3385
3814
  #, python-format
3386
3815
  msgid "Attachment is too big (limit: %s)"
3387
3816
  msgstr ""
3817
+
3818
+ #~ msgid "User profile"
3819
+ #~ msgstr "Käyttäjäprofiili"
3820
+
3821
+ #~ msgid "Default top redirection"
3822
+ #~ msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
3823
+
3824
+ #~ msgid "The default redirection used when no application is specified"
3825
+ #~ msgstr ""
3826
+ #~ "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
3827
+ #~ "määritetty"