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
@@ -10,7 +10,7 @@ msgid ""
10
10
  msgstr ""
11
11
  "Project-Id-Version: Modoboa\n"
12
12
  "Report-Msgid-Bugs-To: \n"
13
- "POT-Creation-Date: 2025-08-28 09:41+0200\n"
13
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
14
14
  "PO-Revision-Date: 2018-07-06 08:26+0000\n"
15
15
  "Last-Translator: akong <akong@aspa.idv.tw>\n"
16
16
  "Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/"
@@ -48,14 +48,14 @@ msgid "Cannot be greater than domain quota"
48
48
  msgstr "不可以超過網域配額"
49
49
 
50
50
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
51
- #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
51
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
52
52
  msgid "Permission denied."
53
53
  msgstr "權限不足"
54
54
 
55
55
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
56
- #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
57
- #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
58
- #: transport/backends.py:40
56
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
57
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
58
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
59
59
  msgid "This field is required"
60
60
  msgstr "這個欄位是必填的"
61
61
 
@@ -64,7 +64,7 @@ msgid ""
64
64
  "List of administered domains (resellers and domain administrators only)."
65
65
  msgstr "管理員網域列表 (只有經銷商和網域管理員)。"
66
66
 
67
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
67
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
68
68
  msgid "Not allowed for this role."
69
69
  msgstr "不允許這個身份"
70
70
 
@@ -72,13 +72,12 @@ msgstr "不允許這個身份"
72
72
  msgid "Must be equal to mailbox full_address"
73
73
  msgstr "必須跟信箱完整位址一樣"
74
74
 
75
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
76
- #: calendars/serializers.py:175 calendars/serializers.py:177
77
- #: pdfcredentials/api/v2/serializers.py:91
75
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
76
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
78
77
  msgid "This field is required."
79
78
  msgstr "這個欄位是必填的"
80
79
 
81
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
80
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
82
81
  msgid "Local domain {} does not exist"
83
82
  msgstr "本機網域 {} 不存在"
84
83
 
@@ -86,7 +85,7 @@ msgstr "本機網域 {} 不存在"
86
85
  msgid "A list of recipient"
87
86
  msgstr "收件人列表"
88
87
 
89
- #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
88
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:313
90
89
  #, fuzzy
91
90
  #| msgid "User '%s' already exists"
92
91
  msgid "This alias already exists"
@@ -121,51 +120,51 @@ msgstr "您不可以定義無限制配額。"
121
120
  msgid "User '%s' already exists"
122
121
  msgstr "使用者 '%s' 已存在"
123
122
 
124
- #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
123
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
125
124
  msgid "Must be a positive integer"
126
125
  msgstr "必須是正整數"
127
126
 
128
- #: admin/api/v2/serializers.py:265
127
+ #: admin/api/v2/serializers.py:271
129
128
  msgid "openssl not found, please make sure it is installed."
130
129
  msgstr "openssl 找不到,請確認已安裝。"
131
130
 
132
- #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
131
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
133
132
  msgid "Directory not found."
134
133
  msgstr "目錄不存在"
135
134
 
136
- #: admin/api/v2/serializers.py:279
135
+ #: admin/api/v2/serializers.py:285
137
136
  msgid "This field only allows valid IP addresses (or networks)"
138
137
  msgstr ""
139
138
 
140
- #: admin/api/v2/serializers.py:292
139
+ #: admin/api/v2/serializers.py:298
141
140
  msgid "Please disable imap migration before disabling this option."
142
141
  msgstr ""
143
142
 
144
- #: admin/api/v2/serializers.py:305
143
+ #: admin/api/v2/serializers.py:311
145
144
  msgid "Define at least one authorized network / address"
146
145
  msgstr "定義至少一個已驗證網路/位址"
147
146
 
148
- #: admin/api/v2/serializers.py:581
147
+ #: admin/api/v2/serializers.py:588
149
148
  msgid "The left part of an email address can't be more than 64 characters."
150
149
  msgstr ""
151
150
 
152
- #: admin/api/v2/serializers.py:603
151
+ #: admin/api/v2/serializers.py:610
153
152
  #, fuzzy
154
153
  #| msgid "A mailbox is required"
155
154
  msgid "A mailbox is required to create aliases."
156
155
  msgstr "信箱是必要的"
157
156
 
158
- #: admin/api/v2/serializers.py:772
157
+ #: admin/api/v2/serializers.py:783
159
158
  #, fuzzy
160
159
  #| msgid "Unknown"
161
160
  msgid "Unknown status"
162
161
  msgstr "未知"
163
162
 
164
- #: admin/api/v2/viewsets.py:84
163
+ #: admin/api/v2/viewsets.py:95
165
164
  msgid "You don't have access to this domain"
166
165
  msgstr "您無權訪問此網域"
167
166
 
168
- #: admin/api/v2/viewsets.py:87
167
+ #: admin/api/v2/viewsets.py:98
169
168
  msgid "You can't delete your own domain"
170
169
  msgstr "您不可以刪除您擁有的網域"
171
170
 
@@ -268,19 +267,29 @@ msgstr "啟用 DNSBL 檢查"
268
267
  msgid "Check every domain against major DNSBL providers"
269
268
  msgstr "針對每個 DNSBL 供應商來檢查每個網域"
270
269
 
271
- #: admin/app_settings.py:116
270
+ #: admin/app_settings.py:117
271
+ msgid "Notify domain admins about DNS issues"
272
+ msgstr ""
273
+
274
+ #: admin/app_settings.py:120
275
+ msgid ""
276
+ "Send a notification by email to domain administrators when DNS issues are "
277
+ "encountered"
278
+ msgstr ""
279
+
280
+ #: admin/app_settings.py:128
272
281
  msgid "Custom DNS server"
273
282
  msgstr ""
274
283
 
275
- #: admin/app_settings.py:118
284
+ #: admin/app_settings.py:130
276
285
  msgid "Use a custom DNS server instead of local server configuration"
277
286
  msgstr ""
278
287
 
279
- #: admin/app_settings.py:126
288
+ #: admin/app_settings.py:138
280
289
  msgid "DKIM keys storage directory"
281
290
  msgstr "DKIM 金鑰儲存目錄"
282
291
 
283
- #: admin/app_settings.py:128
292
+ #: admin/app_settings.py:140
284
293
  msgid ""
285
294
  "Absolute path of the directory where DKIM private keys will be stored. Make "
286
295
  "sure this directory belongs to root user and is not readable by the outside "
@@ -289,56 +298,56 @@ msgstr ""
289
298
  "絕對路徑的目錄將會給 DKIM 私鑰儲存。確認這個目錄屬於 root 使用者並且外面的世"
290
299
  "界無法讀取。"
291
300
 
292
- #: admin/app_settings.py:137
301
+ #: admin/app_settings.py:149
293
302
  msgid "Default DKIM key length"
294
303
  msgstr "預設 DKIM 金鑰長度"
295
304
 
296
- #: admin/app_settings.py:139
305
+ #: admin/app_settings.py:151
297
306
  msgid "Default length in bits for newly generated DKIM keys."
298
307
  msgstr "預設長度是給新產生的 DKIM 金鑰用。"
299
308
 
300
- #: admin/app_settings.py:146
309
+ #: admin/app_settings.py:158
301
310
  msgid "Default domain quota"
302
311
  msgstr "預設網域配額"
303
312
 
304
- #: admin/app_settings.py:148
313
+ #: admin/app_settings.py:160
305
314
  msgid ""
306
315
  "Default quota (in MB) applied to freshly created domains with no value "
307
316
  "specified. A value of 0 means no quota."
308
317
  msgstr "預設配額(以MB為單位)應用於未指定值的創立網域。值為0表示沒有配額。"
309
318
 
310
- #: admin/app_settings.py:156
319
+ #: admin/app_settings.py:168
311
320
  #, fuzzy
312
321
  #| msgid "Default domain quota"
313
322
  msgid "Default domain sending limit"
314
323
  msgstr "預設網域配額"
315
324
 
316
- #: admin/app_settings.py:158
325
+ #: admin/app_settings.py:170
317
326
  msgid ""
318
327
  "Number of messages freshly created domains will be allowed to send per day. "
319
328
  "Leave empty for no limit."
320
329
  msgstr ""
321
330
 
322
- #: admin/app_settings.py:170 limits/app_settings.py:61
331
+ #: admin/app_settings.py:182 limits/app_settings.py:61
323
332
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
324
333
  msgid "Mailboxes"
325
334
  msgstr "信箱"
326
335
 
327
- #: admin/app_settings.py:176
336
+ #: admin/app_settings.py:188
328
337
  msgid "Handle mailboxes on filesystem"
329
338
  msgstr "在檔案系統上處理信箱"
330
339
 
331
- #: admin/app_settings.py:178
340
+ #: admin/app_settings.py:190
332
341
  msgid ""
333
342
  "Rename or remove mailboxes on the filesystem when they get renamed or "
334
343
  "removed within Modoboa"
335
344
  msgstr "當他要在 Modoboa 上取得更名或移除就會在檔案系統上更名或移除信箱"
336
345
 
337
- #: admin/app_settings.py:186 admin/models/domain.py:36
346
+ #: admin/app_settings.py:198 admin/models/domain.py:36
338
347
  msgid "Default mailbox quota"
339
348
  msgstr "預設信箱配額"
340
349
 
341
- #: admin/app_settings.py:188
350
+ #: admin/app_settings.py:200
342
351
  #, fuzzy
343
352
  #| msgid ""
344
353
  #| "Default mailbox quota (in MB) applied to freshly created domains with no "
@@ -349,43 +358,73 @@ msgid ""
349
358
  msgstr ""
350
359
  "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。"
351
360
 
352
- #: admin/app_settings.py:197
361
+ #: admin/app_settings.py:209
353
362
  #, fuzzy
354
363
  #| msgid "Default mailbox quota"
355
364
  msgid "Default mailbox sending limit"
356
365
  msgstr "預設信箱配額"
357
366
 
358
- #: admin/app_settings.py:199
367
+ #: admin/app_settings.py:211
359
368
  msgid ""
360
369
  "Number of messages freshly created mailboxes will be allowed to send per "
361
370
  "day. Leave empty for no limit."
362
371
  msgstr ""
363
372
 
364
- #: admin/app_settings.py:207
373
+ #: admin/app_settings.py:219
365
374
  msgid "Automatic account removal"
366
375
  msgstr "自動刪除帳號"
367
376
 
368
- #: admin/app_settings.py:209
377
+ #: admin/app_settings.py:221
369
378
  msgid "When a mailbox is removed, also remove the associated account"
370
379
  msgstr "當信箱移除時,也會移除關聯的帳號"
371
380
 
372
- #: admin/app_settings.py:218
381
+ #: admin/app_settings.py:230
373
382
  msgid "Automatic domain/mailbox creation"
374
383
  msgstr "自動建立網域/信箱"
375
384
 
376
- #: admin/app_settings.py:221
385
+ #: admin/app_settings.py:233
377
386
  msgid "Create a domain and a mailbox when an account is automatically created."
378
387
  msgstr "當帳號自動建立後會建立網域和一個信箱。"
379
388
 
380
- #: admin/app_settings.py:230
389
+ #: admin/app_settings.py:242
381
390
  msgid "Create an alias when a mailbox is renamed"
382
391
  msgstr "當信箱更名時會建立別名"
383
392
 
384
- #: admin/app_settings.py:233
393
+ #: admin/app_settings.py:245
385
394
  msgid "Create an alias using the old address when a mailbox is renamed."
386
395
  msgstr "當信箱更名時建立別名並使用在舊的位址。"
387
396
 
388
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
397
+ #: admin/app_settings.py:257
398
+ #, fuzzy
399
+ #| msgid "alias"
400
+ msgid "Aliases"
401
+ msgstr "別名"
402
+
403
+ #: admin/app_settings.py:263
404
+ msgid "Alias can target any domain"
405
+ msgstr ""
406
+
407
+ #: admin/app_settings.py:265
408
+ msgid "Allow aliases to target any domain, not just the local domains."
409
+ msgstr ""
410
+
411
+ #: admin/app_settings.py:272
412
+ msgid "Alias target block list"
413
+ msgstr ""
414
+
415
+ #: admin/app_settings.py:274
416
+ msgid "A list of domains that aliases cannot target (comma separated)."
417
+ msgstr ""
418
+
419
+ #: admin/app_settings.py:282
420
+ msgid "Alias target allow list"
421
+ msgstr ""
422
+
423
+ #: admin/app_settings.py:284
424
+ msgid "A list of domains that aliases can target (comma separated)."
425
+ msgstr ""
426
+
427
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
389
428
  msgid "Administration"
390
429
  msgstr "管理員"
391
430
 
@@ -407,6 +446,39 @@ msgstr ""
407
446
  msgid "Closed"
408
447
  msgstr "關閉"
409
448
 
449
+ #: admin/dns_checker.py:96
450
+ msgid "MX {} listed by DNSBL provider {}"
451
+ msgstr ""
452
+
453
+ #: admin/dns_checker.py:138
454
+ #, fuzzy
455
+ #| msgid "Domain {} has no MX record"
456
+ msgid "Domain has no MX record"
457
+ msgstr "網域 {} 沒有 MX 紀錄"
458
+
459
+ #: admin/dns_checker.py:141
460
+ msgid "Domain {} has no MX record"
461
+ msgstr "網域 {} 沒有 MX 紀錄"
462
+
463
+ #: admin/dns_checker.py:159
464
+ #, fuzzy
465
+ #| msgid "MX records of {}"
466
+ msgid "Invalid MX record: {}"
467
+ msgstr "MX 紀錄 {}"
468
+
469
+ #: admin/dns_checker.py:166
470
+ #, python-brace-format
471
+ msgid "MX record for domain {0} is invalid: {1}"
472
+ msgstr "此網域的 MX 紀錄 {0} 是無效的: {1}"
473
+
474
+ #: admin/dns_checker.py:177
475
+ msgid "[modoboa] MX issue(s) for domain {}"
476
+ msgstr "[modoboa] 此網域的 MX 問題(s) {}"
477
+
478
+ #: admin/dns_checker.py:224
479
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
480
+ msgstr "[modoboa] 此網域的 DNSBL 問題(s) {}"
481
+
410
482
  #: admin/handlers.py:179
411
483
  msgid "domain alias"
412
484
  msgstr "網域別名"
@@ -416,61 +488,57 @@ msgstr "網域別名"
416
488
  msgid "Account import failed (%s): domain does not exist"
417
489
  msgstr "帳號匯入失敗 (%s): 網域不存在"
418
490
 
419
- #: admin/handlers.py:242 admin/models/mailbox.py:342
420
- msgid "Mailbox {} already exists"
421
- msgstr "信箱 {} 已存在"
422
-
423
- #: admin/handlers.py:251
491
+ #: admin/handlers.py:246
424
492
  #, python-format
425
493
  msgid "Account import failed (%s): wrong quota value"
426
494
  msgstr "帳號匯入失敗 (%s): 錯誤配額"
427
495
 
428
- #: admin/lib.py:121
496
+ #: admin/lib.py:126
429
497
  msgid "You are not allowed to import domains"
430
498
  msgstr "您未允許匯入網域"
431
499
 
432
- #: admin/lib.py:130
500
+ #: admin/lib.py:135
433
501
  msgid "You are not allowed to import domain aliases."
434
502
  msgstr "您未允許匯入網域別名。"
435
503
 
436
- #: admin/lib.py:222 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
437
- #: admin/tests/test_mx.py:171
504
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
505
+ #: admin/tests/test_mx.py:157
438
506
  #, fuzzy, python-format
439
507
  #| msgid "No DNS records found for %s"
440
508
  msgid "No DNS record found for %s"
441
509
  msgstr "沒有找到 %s 的 DNS 紀錄"
442
510
 
443
- #: admin/lib.py:225
511
+ #: admin/lib.py:230
444
512
  #, fuzzy, python-format
445
513
  #| msgid "No MX record for %s"
446
514
  msgid "No %(type)s record for %(name)s"
447
515
  msgstr "沒有 %s 的 MX 紀錄"
448
516
 
449
- #: admin/lib.py:229 admin/tests/test_mx.py:156
517
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
450
518
  msgid "No working name servers found"
451
519
  msgstr "沒有找到執行中的名稱伺服器"
452
520
 
453
- #: admin/lib.py:232 admin/tests/test_mx.py:160
521
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
454
522
  #, python-format
455
523
  msgid "DNS resolution timeout, unable to query %s at the moment"
456
524
  msgstr "DNS 解析逾時,無法查詢 %s 在這個時間點"
457
525
 
458
- #: admin/lib.py:236
526
+ #: admin/lib.py:241
459
527
  msgid "DNS name is too long: {}"
460
528
  msgstr ""
461
529
 
462
- #: admin/lib.py:267
530
+ #: admin/lib.py:272
463
531
  #, fuzzy, python-brace-format
464
532
  #| msgid "Invalid IP address format for %(domain)s; %(addr)s"
465
533
  msgid "Invalid IP address format for {domain}; {addr}"
466
534
  msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s"
467
535
 
468
- #: admin/lib.py:360
536
+ #: admin/lib.py:365
469
537
  #, python-format
470
538
  msgid "Object already exists: %s"
471
539
  msgstr "元件已存在: %s"
472
540
 
473
- #: admin/lib.py:364
541
+ #: admin/lib.py:369
474
542
  #, python-format
475
543
  msgid "%d objects imported successfully"
476
544
  msgstr "%d 元件已匯入成功"
@@ -505,81 +573,54 @@ msgstr ""
505
573
  msgid "Failed to generate DKIM public key"
506
574
  msgstr "開啟 Modoboa 公用 API 的通訊"
507
575
 
508
- #: admin/management/commands/subcommands/_mx.py:133
509
- msgid "MX {} listed by DNSBL provider {}"
510
- msgstr ""
511
-
512
- #: admin/management/commands/subcommands/_mx.py:174
513
- #, fuzzy
514
- #| msgid "Domain {} has no MX record"
515
- msgid "Domain has no MX record"
516
- msgstr "網域 {} 沒有 MX 紀錄"
517
-
518
- #: admin/management/commands/subcommands/_mx.py:177
519
- msgid "Domain {} has no MX record"
520
- msgstr "網域 {} 沒有 MX 紀錄"
521
-
522
- #: admin/management/commands/subcommands/_mx.py:195
523
- #, fuzzy
524
- #| msgid "MX records of {}"
525
- msgid "Invalid MX record: {}"
526
- msgstr "MX 紀錄 {}"
527
-
528
- #: admin/management/commands/subcommands/_mx.py:202
529
- #, python-brace-format
530
- msgid "MX record for domain {0} is invalid: {1}"
531
- msgstr "此網域的 MX 紀錄 {0} 是無效的: {1}"
532
-
533
- #: admin/management/commands/subcommands/_mx.py:213
534
- msgid "[modoboa] MX issue(s) for domain {}"
535
- msgstr "[modoboa] 此網域的 MX 問題(s) {}"
536
-
537
- #: admin/management/commands/subcommands/_mx.py:269
538
- msgid "[modoboa] DNSBL issue(s) for domain {}"
539
- msgstr "[modoboa] 此網域的 DNSBL 問題(s) {}"
540
-
541
- #: admin/models/alias.py:42
576
+ #: admin/models/alias.py:43
542
577
  msgid "Domain not found."
543
578
  msgstr "網域不存在。"
544
579
 
545
- #: admin/models/alias.py:97 admin/models/mailbox.py:85
580
+ #: admin/models/alias.py:117 admin/models/mailbox.py:85
546
581
  msgid "address"
547
582
  msgstr "地址"
548
583
 
549
- #: admin/models/alias.py:99
584
+ #: admin/models/alias.py:119
550
585
  msgid "The alias address."
551
586
  msgstr "別名位址。"
552
587
 
553
- #: admin/models/alias.py:103 admin/models/domain.py:45
588
+ #: admin/models/alias.py:123 admin/models/domain.py:45
554
589
  #: admin/models/domain_alias.py:45 autoreply/models.py:25
555
590
  msgid "enabled"
556
591
  msgstr "已啟用"
557
592
 
558
- #: admin/models/alias.py:104 admin/models/domain_alias.py:46
593
+ #: admin/models/alias.py:124 admin/models/domain_alias.py:46
559
594
  msgid "Check to activate this alias"
560
595
  msgstr "點擊啟用這個別名"
561
596
 
562
- #: admin/models/alias.py:108
597
+ #: admin/models/alias.py:128
563
598
  msgid "Description"
564
599
  msgstr "描述"
565
600
 
566
- #: admin/models/alias.py:109
601
+ #: admin/models/alias.py:129
567
602
  msgid "Expire at"
568
603
  msgstr "過期在"
569
604
 
570
- #: admin/models/alias.py:150
605
+ #: admin/models/alias.py:170
571
606
  msgid "alias"
572
607
  msgstr "別名"
573
608
 
574
- #: admin/models/alias.py:183
609
+ #: admin/models/alias.py:203
575
610
  msgid "Invalid address"
576
611
  msgstr "無效位址"
577
612
 
578
- #: admin/models/alias.py:202
613
+ #: admin/models/alias.py:206
614
+ #, fuzzy
615
+ #| msgid "The domain name"
616
+ msgid "Target domain not allowed"
617
+ msgstr "網域名稱"
618
+
619
+ #: admin/models/alias.py:224
579
620
  msgid "Local recipient {}@{} not found"
580
621
  msgstr "本機收件人 {}@{} 未找到"
581
622
 
582
- #: admin/models/alias.py:251
623
+ #: admin/models/alias.py:273
583
624
  #, fuzzy
584
625
  #| msgid "Invalid line: %s"
585
626
  msgid "Invalid line: {}"
@@ -699,6 +740,10 @@ msgstr "網域配額已超過"
699
740
  msgid "Domain does not exist"
700
741
  msgstr "網域不存在"
701
742
 
743
+ #: admin/models/mailbox.py:342
744
+ msgid "Mailbox {} already exists"
745
+ msgstr "信箱 {} 已存在"
746
+
702
747
  #: admin/templates/admin/notifications/domain_in_dnsbl.html:3
703
748
  #, python-format
704
749
  msgid ""
@@ -720,22 +765,392 @@ msgstr ""
720
765
  msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
721
766
  msgstr "Modoboa 已偵測到網域 %(domain)s 沒有正確的 MX 紀錄:"
722
767
 
723
- #: admin/tests/test_mx.py:155
768
+ #: admin/tests/test_mx.py:141
724
769
  #, python-format
725
770
  msgid "No MX record for %s"
726
771
  msgstr "沒有 %s 的 MX 紀錄"
727
772
 
728
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
773
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
729
774
  #, python-format
730
775
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
731
776
  msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s"
732
777
 
733
- #: admin/tests/test_mx.py:199
778
+ #: admin/tests/test_mx.py:185
734
779
  #, fuzzy, python-format
735
780
  #| msgid "No MX record for %s"
736
781
  msgid "No AAAA record for %s"
737
782
  msgstr "沒有 %s 的 MX 紀錄"
738
783
 
784
+ #: amavis/app_settings.py:11
785
+ #, fuzzy
786
+ #| msgid "LDAP settings"
787
+ msgid "Amavis settings"
788
+ msgstr "IMAP 設定"
789
+
790
+ #: amavis/app_settings.py:17
791
+ msgid "Localpart is case sensitive"
792
+ msgstr ""
793
+
794
+ #: amavis/app_settings.py:19
795
+ msgid "Value should match amavisd.conf variable $localpart_is_case_sensitive"
796
+ msgstr ""
797
+
798
+ #: amavis/app_settings.py:27
799
+ msgid "Recipient delimiter"
800
+ msgstr ""
801
+
802
+ #: amavis/app_settings.py:29
803
+ msgid "Value should match amavisd.conf variable $recipient_delimiter"
804
+ msgstr ""
805
+
806
+ #: amavis/app_settings.py:41
807
+ #, fuzzy
808
+ #| msgid "Quantity"
809
+ msgid "Quarantine settings"
810
+ msgstr "數量"
811
+
812
+ #: amavis/app_settings.py:47
813
+ #, fuzzy
814
+ #| msgid "Maximum log record age"
815
+ msgid "Maximum message age"
816
+ msgstr "最大日誌紀錄時間"
817
+
818
+ #: amavis/app_settings.py:49
819
+ msgid "Quarantine messages maximum age (in days) before deletion"
820
+ msgstr ""
821
+
822
+ #: amavis/app_settings.py:60
823
+ msgid "Message releasing"
824
+ msgstr ""
825
+
826
+ #: amavis/app_settings.py:66
827
+ #, fuzzy
828
+ #| msgid "Show greylisted messages"
829
+ msgid "Remove released messages"
830
+ msgstr "顯示灰名單郵件"
831
+
832
+ #: amavis/app_settings.py:68
833
+ msgid "Remove messages marked as released while cleaning up the database"
834
+ msgstr ""
835
+
836
+ #: amavis/app_settings.py:76
837
+ #, fuzzy
838
+ #| msgid "Use a secured connection"
839
+ msgid "Amavis connection mode"
840
+ msgstr "安全連線模式"
841
+
842
+ #: amavis/app_settings.py:78
843
+ #, fuzzy
844
+ #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
845
+ msgid "Mode used to access the PDP server"
846
+ msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器"
847
+
848
+ #: amavis/app_settings.py:85
849
+ #, fuzzy
850
+ #| msgid "Server address"
851
+ msgid "PDP server address"
852
+ msgstr "伺服器地址"
853
+
854
+ #: amavis/app_settings.py:87
855
+ #, fuzzy
856
+ #| msgid "Server address"
857
+ msgid "PDP server address (if inet mode)"
858
+ msgstr "伺服器地址"
859
+
860
+ #: amavis/app_settings.py:95
861
+ #, fuzzy
862
+ #| msgid "Server port"
863
+ msgid "PDP server port"
864
+ msgstr "伺服器連接埠"
865
+
866
+ #: amavis/app_settings.py:97
867
+ msgid "PDP server port (if inet mode)"
868
+ msgstr ""
869
+
870
+ #: amavis/app_settings.py:105
871
+ #, fuzzy
872
+ #| msgid "Server port"
873
+ msgid "PDP server socket"
874
+ msgstr "伺服器連接埠"
875
+
876
+ #: amavis/app_settings.py:107
877
+ msgid "Path to the PDP server socket (if unix mode)"
878
+ msgstr ""
879
+
880
+ #: amavis/app_settings.py:115
881
+ msgid "Allow direct release"
882
+ msgstr ""
883
+
884
+ #: amavis/app_settings.py:117
885
+ msgid "Allow users to directly release their messages"
886
+ msgstr ""
887
+
888
+ #: amavis/app_settings.py:124
889
+ msgid "Enable self-service mode"
890
+ msgstr ""
891
+
892
+ #: amavis/app_settings.py:126
893
+ msgid "Activate the 'self-service' mode"
894
+ msgstr ""
895
+
896
+ #: amavis/app_settings.py:133
897
+ #, fuzzy
898
+ #| msgid "Notifications"
899
+ msgid "Notifications sender"
900
+ msgstr "通知"
901
+
902
+ #: amavis/app_settings.py:135
903
+ #, fuzzy
904
+ #| msgid "Email address used to send notifications."
905
+ msgid "The e-mail address used to send notitications"
906
+ msgstr "郵件地址用於寄送通知。"
907
+
908
+ #: amavis/app_settings.py:146
909
+ msgid "Manual learning"
910
+ msgstr ""
911
+
912
+ #: amavis/app_settings.py:152
913
+ msgid "Enable manual learning"
914
+ msgstr ""
915
+
916
+ #: amavis/app_settings.py:154
917
+ #, fuzzy
918
+ #| msgid "Allow this administrator to access user mailboxes"
919
+ msgid "Allow super administrators to manually train Spamassassin"
920
+ msgstr "允許這個管理者來存取使用者信箱"
921
+
922
+ #: amavis/app_settings.py:161
923
+ msgid "Is Spamassassin local?"
924
+ msgstr ""
925
+
926
+ #: amavis/app_settings.py:163
927
+ msgid "Tell if Spamassassin is running on the same server than modoboa"
928
+ msgstr ""
929
+
930
+ #: amavis/app_settings.py:171
931
+ #, fuzzy
932
+ #| msgid "Default subject"
933
+ msgid "Default user"
934
+ msgstr "預設編輯器"
935
+
936
+ #: amavis/app_settings.py:173
937
+ msgid "Name of the user owning the default bayesian database"
938
+ msgstr ""
939
+
940
+ #: amavis/app_settings.py:181
941
+ #, fuzzy
942
+ #| msgid "Sender address"
943
+ msgid "Spamd address"
944
+ msgstr "伺服器位址"
945
+
946
+ #: amavis/app_settings.py:183
947
+ msgid "The IP address where spamd can be reached"
948
+ msgstr ""
949
+
950
+ #: amavis/app_settings.py:191
951
+ msgid "Spamd port"
952
+ msgstr ""
953
+
954
+ #: amavis/app_settings.py:193
955
+ msgid "The TCP port spamd is listening on"
956
+ msgstr ""
957
+
958
+ #: amavis/app_settings.py:202
959
+ #, fuzzy
960
+ #| msgid "Enable per-domain limits"
961
+ msgid "Enable per-domain manual learning"
962
+ msgstr "啟用每個網域限制"
963
+
964
+ #: amavis/app_settings.py:205
965
+ #, fuzzy
966
+ #| msgid "Allow this administrator to access user mailboxes"
967
+ msgid ""
968
+ "Allow domain administrators to train Spamassassin (within dedicated per-"
969
+ "domain databases)"
970
+ msgstr "允許這個管理者來存取使用者信箱"
971
+
972
+ #: amavis/app_settings.py:215
973
+ #, fuzzy
974
+ #| msgid "Enable per-domain limits"
975
+ msgid "Enable per-user manual learning"
976
+ msgstr "啟用每個網域限制"
977
+
978
+ #: amavis/app_settings.py:218
979
+ msgid ""
980
+ "Allow simple users to personally train Spamassassin (within a dedicated "
981
+ "database)"
982
+ msgstr ""
983
+
984
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
985
+ msgid "Display"
986
+ msgstr "顯示"
987
+
988
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
989
+ msgid "Number of displayed emails per page"
990
+ msgstr "每一頁顯示郵件數量"
991
+
992
+ #: amavis/app_settings.py:246
993
+ #, fuzzy
994
+ #| msgid "Sets the maximum number of messages displayed in a page"
995
+ msgid "Set the maximum number of messages displayed in a page"
996
+ msgstr "設定最大每一頁顯示郵件數量"
997
+
998
+ #: amavis/app_settings.py:266 amavis/app_settings.py:273
999
+ msgid "Amavis"
1000
+ msgstr ""
1001
+
1002
+ #: amavis/checks/settings_checks.py:8
1003
+ msgid ""
1004
+ "AMAVIS_DEFAULT_DATABASE_ENCODING does not match the character encoding used "
1005
+ "by the Amavis database."
1006
+ msgstr ""
1007
+
1008
+ #: amavis/checks/settings_checks.py:12
1009
+ msgid ""
1010
+ "Check your database character encoding and set/update "
1011
+ "AMAVIS_DEFAULT_DATABASE_ENCODING."
1012
+ msgstr ""
1013
+
1014
+ #: amavis/checks/settings_checks.py:19
1015
+ msgid "Modoboa Amavis has not been tested using the selected database engine."
1016
+ msgstr ""
1017
+
1018
+ #: amavis/checks/settings_checks.py:20
1019
+ msgid "Try using PostgreSQL, MySQL or MariaDB."
1020
+ msgstr ""
1021
+
1022
+ #: amavis/handlers.py:141
1023
+ msgid "Pending requests"
1024
+ msgstr ""
1025
+
1026
+ #: amavis/lib.py:59
1027
+ #, python-format
1028
+ msgid "Connection to amavis failed: %s"
1029
+ msgstr ""
1030
+
1031
+ #: amavis/lib.py:133
1032
+ #, fuzzy
1033
+ #| msgid "Failed to locate rrdtool binary."
1034
+ msgid "Failed to find {} binary"
1035
+ msgstr "指定 rrdtools 位置失敗。"
1036
+
1037
+ #: amavis/lib.py:148
1038
+ #, fuzzy
1039
+ #| msgid "Local recipient {}@{} not found"
1040
+ msgid "No recipient found"
1041
+ msgstr "本機收件人 {}@{} 未找到"
1042
+
1043
+ #: amavis/lib.py:159
1044
+ #, fuzzy
1045
+ #| msgid "Domain not found."
1046
+ msgid "Local domain not found"
1047
+ msgstr "網域不存在。"
1048
+
1049
+ #: amavis/management/commands/amnotify.py:59
1050
+ #, fuzzy
1051
+ #| msgid "%s: limit reached"
1052
+ msgid "[modoboa] Pending release requests"
1053
+ msgstr "%s: 已達到上限"
1054
+
1055
+ #: amavis/models.py:101
1056
+ #, fuzzy
1057
+ #| msgid "Search filter"
1058
+ msgid "Virus filter"
1059
+ msgstr "搜尋過濾器"
1060
+
1061
+ #: amavis/models.py:105 amavis/models.py:119 amavis/models.py:133
1062
+ msgid "yes"
1063
+ msgstr ""
1064
+
1065
+ #: amavis/models.py:106 amavis/models.py:120 amavis/models.py:134
1066
+ msgid "no"
1067
+ msgstr ""
1068
+
1069
+ #: amavis/models.py:107 amavis/models.py:121 amavis/models.py:135
1070
+ msgid "default"
1071
+ msgstr ""
1072
+
1073
+ #: amavis/models.py:111
1074
+ msgid "Bypass virus checks or not. Choose 'default' to use global settings."
1075
+ msgstr ""
1076
+
1077
+ #: amavis/models.py:115
1078
+ #, fuzzy
1079
+ #| msgid "Search filter"
1080
+ msgid "Spam filter"
1081
+ msgstr "搜尋過濾器"
1082
+
1083
+ #: amavis/models.py:125
1084
+ msgid "Bypass spam checks or not. Choose 'default' to use global settings."
1085
+ msgstr ""
1086
+
1087
+ #: amavis/models.py:129
1088
+ #, fuzzy
1089
+ #| msgid "Search filter"
1090
+ msgid "Banned filter"
1091
+ msgstr "搜尋過濾器"
1092
+
1093
+ #: amavis/models.py:139
1094
+ msgid "Bypass banned checks or not. Choose 'default' to use global settings."
1095
+ msgstr ""
1096
+
1097
+ #: amavis/models.py:170
1098
+ msgid "Spam marker"
1099
+ msgstr ""
1100
+
1101
+ #: amavis/models.py:176
1102
+ msgid ""
1103
+ "Modify spam subject using the specified text. Choose 'default' to use global "
1104
+ "settings."
1105
+ msgstr ""
1106
+
1107
+ #: amavis/templates/amavis/notifications/pending_requests.html:3
1108
+ #, python-format
1109
+ msgid "%(counter)s release request is pending for action."
1110
+ msgid_plural "%(counter)s release requests are pending for action."
1111
+ msgstr[0] ""
1112
+
1113
+ #: amavis/templates/amavis/notifications/pending_requests.html:8
1114
+ msgid "Sketch:"
1115
+ msgstr ""
1116
+
1117
+ #: amavis/templates/amavis/notifications/pending_requests.html:10
1118
+ msgid "From:"
1119
+ msgstr ""
1120
+
1121
+ #: amavis/templates/amavis/notifications/pending_requests.html:11
1122
+ msgid "To:"
1123
+ msgstr ""
1124
+
1125
+ #: amavis/templates/amavis/notifications/pending_requests.html:12
1126
+ #, fuzzy
1127
+ #| msgid "Date"
1128
+ msgid "Date:"
1129
+ msgstr "日期"
1130
+
1131
+ #: amavis/templates/amavis/notifications/pending_requests.html:13
1132
+ #, fuzzy
1133
+ #| msgid "Subject"
1134
+ msgid "Subject:"
1135
+ msgstr "主旨"
1136
+
1137
+ #: amavis/templates/amavis/notifications/pending_requests.html:14
1138
+ #, fuzzy
1139
+ #| msgid "sent messages"
1140
+ msgid "Act on this message:"
1141
+ msgstr "已發訊息"
1142
+
1143
+ #: amavis/templates/amavis/notifications/pending_requests.html:16
1144
+ #, python-format
1145
+ msgid "Please visit %(listingurl)s for a full listing."
1146
+ msgstr ""
1147
+
1148
+ #: amavis/viewsets.py:122
1149
+ #, fuzzy
1150
+ #| msgid "Invalid address"
1151
+ msgid "Invalid request"
1152
+ msgstr "無效位址"
1153
+
739
1154
  #: autoreply/api/v2/serializers.py:27
740
1155
  msgid "Value can't be less than 1 day"
741
1156
  msgstr ""
@@ -857,7 +1272,7 @@ msgstr "網域管理員"
857
1272
  msgid "Allow domain administrators to manage user calendars (read and write)"
858
1273
  msgstr "允許這個管理者來存取使用者信箱"
859
1274
 
860
- #: calendars/app_settings.py:60 core/app_settings.py:676
1275
+ #: calendars/app_settings.py:60 core/app_settings.py:664
861
1276
  #: rspamd/app_settings.py:45
862
1277
  msgid "Miscellaneous"
863
1278
  msgstr "雜項"
@@ -871,15 +1286,15 @@ msgid ""
871
1286
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
872
1287
  msgstr ""
873
1288
 
874
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
1289
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:205
875
1290
  msgid "Calendars"
876
1291
  msgstr ""
877
1292
 
878
- #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
1293
+ #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
879
1294
  msgid "Server location is not set, please fix it."
880
1295
  msgstr ""
881
1296
 
882
- #: calendars/viewsets.py:197
1297
+ #: calendars/viewsets.py:199
883
1298
  msgid "Uploaded file is too big (max: {} bytes)"
884
1299
  msgstr ""
885
1300
 
@@ -909,7 +1324,7 @@ msgstr "LDAP 設定"
909
1324
  msgid "Interval in seconds between 2 synchronization requests"
910
1325
  msgstr ""
911
1326
 
912
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
1327
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:195
913
1328
  #, fuzzy
914
1329
  #| msgid "Domains"
915
1330
  msgid "Contacts"
@@ -961,12 +1376,12 @@ msgstr "無效的線"
961
1376
  msgid "2FA is already enabled"
962
1377
  msgstr ""
963
1378
 
964
- #: core/api/v1/serializers.py:86
1379
+ #: core/api/v1/serializers.py:87
965
1380
  #, python-format
966
1381
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
967
1382
  msgstr ""
968
1383
 
969
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
1384
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
970
1385
  #, fuzzy
971
1386
  #| msgid "Old password"
972
1387
  msgid "Invalid password"
@@ -980,24 +1395,20 @@ msgstr ""
980
1395
  msgid "Local"
981
1396
  msgstr "本機"
982
1397
 
983
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
984
- msgid "User profile"
985
- msgstr "使用者檔案"
986
-
987
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
988
- #: core/api/v2/serializers.py:228
1398
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1399
+ #: core/api/v2/serializers.py:221
989
1400
  msgid "Invalid syntax"
990
1401
  msgstr "無效語法"
991
1402
 
992
- #: core/api/v2/serializers.py:233
1403
+ #: core/api/v2/serializers.py:226
993
1404
  msgid "Invalid rounds number"
994
1405
  msgstr ""
995
1406
 
996
- #: core/api/v2/serializers.py:433 core/forms.py:81
1407
+ #: core/api/v2/serializers.py:426 core/forms.py:81
997
1408
  msgid "This code is invalid"
998
1409
  msgstr ""
999
1410
 
1000
- #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
1411
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1001
1412
  msgid "Please use the following code to recover your Modoboa password: {}"
1002
1413
  msgstr ""
1003
1414
 
@@ -1007,48 +1418,60 @@ msgstr ""
1007
1418
  msgid "Administration console"
1008
1419
  msgstr "管理員"
1009
1420
 
1010
- #: core/api/v2/viewsets.py:187
1421
+ #: core/api/v2/viewsets.py:184 dmarc/models.py:11
1422
+ #, fuzzy
1423
+ #| msgid "Quantity"
1424
+ msgid "Quarantine"
1425
+ msgstr "數量"
1426
+
1427
+ #: core/api/v2/viewsets.py:186
1428
+ #, fuzzy
1429
+ #| msgid "Quantity"
1430
+ msgid "Amavis quarantine"
1431
+ msgstr "數量"
1432
+
1433
+ #: core/api/v2/viewsets.py:197
1011
1434
  #, fuzzy
1012
1435
  #| msgid "Address"
1013
1436
  msgid "Address book"
1014
1437
  msgstr "地址"
1015
1438
 
1016
- #: core/api/v2/viewsets.py:197
1439
+ #: core/api/v2/viewsets.py:207
1017
1440
  msgid "Calendar"
1018
1441
  msgstr ""
1019
1442
 
1020
- #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1021
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1443
+ #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1444
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1022
1445
  #, fuzzy
1023
1446
  #| msgid "E-mail"
1024
1447
  msgid "Webmail"
1025
1448
  msgstr "網頁郵件"
1026
1449
 
1027
- #: core/app_settings.py:37
1450
+ #: core/app_settings.py:25
1028
1451
  msgid "Authentication"
1029
1452
  msgstr "驗證"
1030
1453
 
1031
- #: core/app_settings.py:43
1454
+ #: core/app_settings.py:31
1032
1455
  msgid "Authentication type"
1033
1456
  msgstr "驗證類型"
1034
1457
 
1035
- #: core/app_settings.py:45
1458
+ #: core/app_settings.py:33
1036
1459
  msgid "The backend used for authentication"
1037
1460
  msgstr "此背景程式已用於驗證"
1038
1461
 
1039
- #: core/app_settings.py:52
1462
+ #: core/app_settings.py:40
1040
1463
  msgid "Default password scheme"
1041
1464
  msgstr "預設密碼方案"
1042
1465
 
1043
- #: core/app_settings.py:54
1466
+ #: core/app_settings.py:42
1044
1467
  msgid "Scheme used to crypt mailbox passwords"
1045
1468
  msgstr "方案已使用於加密信箱密碼"
1046
1469
 
1047
- #: core/app_settings.py:61
1470
+ #: core/app_settings.py:49
1048
1471
  msgid "Rounds"
1049
1472
  msgstr "輪"
1050
1473
 
1051
- #: core/app_settings.py:63
1474
+ #: core/app_settings.py:51
1052
1475
  msgid ""
1053
1476
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1054
1477
  "between 1000 and 999999999, inclusive."
@@ -1056,281 +1479,281 @@ msgstr ""
1056
1479
  "重複幾輪產生 (只能用於 sha256crypt 和 sha512crypt). 必須介於 1000 到 "
1057
1480
  "999999999, 包括."
1058
1481
 
1059
- #: core/app_settings.py:73
1482
+ #: core/app_settings.py:61
1060
1483
  #, fuzzy
1061
1484
  #| msgid "Default password scheme"
1062
1485
  msgid "Update password scheme at login"
1063
1486
  msgstr "預設密碼方案"
1064
1487
 
1065
- #: core/app_settings.py:76
1488
+ #: core/app_settings.py:64
1066
1489
  msgid "Update user password at login to use the default password scheme"
1067
1490
  msgstr ""
1068
1491
 
1069
- #: core/app_settings.py:84
1492
+ #: core/app_settings.py:72
1070
1493
  msgid "Default password"
1071
1494
  msgstr "預設密碼"
1072
1495
 
1073
- #: core/app_settings.py:86
1496
+ #: core/app_settings.py:74
1074
1497
  msgid "Default password for automatically created accounts."
1075
1498
  msgstr "預設密碼是給自動產生帳號用。"
1076
1499
 
1077
- #: core/app_settings.py:93
1500
+ #: core/app_settings.py:81
1078
1501
  msgid "Random password length"
1079
1502
  msgstr "隨機密碼長度"
1080
1503
 
1081
- #: core/app_settings.py:95
1504
+ #: core/app_settings.py:83
1082
1505
  msgid "Length of randomly generated passwords."
1083
1506
  msgstr "隨機產生密碼的長度。"
1084
1507
 
1085
- #: core/app_settings.py:103
1508
+ #: core/app_settings.py:91
1086
1509
  msgid "Allow special characters for random password"
1087
1510
  msgstr ""
1088
1511
 
1089
- #: core/app_settings.py:106
1512
+ #: core/app_settings.py:94
1090
1513
  #, fuzzy
1091
1514
  #| msgid "Length of randomly generated passwords."
1092
1515
  msgid "Enable special characters in randomly generated passwords."
1093
1516
  msgstr "隨機產生密碼的長度。"
1094
1517
 
1095
- #: core/app_settings.py:114
1518
+ #: core/app_settings.py:102
1096
1519
  #, fuzzy
1097
1520
  #| msgid "Default password scheme"
1098
1521
  msgid "Update password service URL"
1099
1522
  msgstr "預設密碼方案"
1100
1523
 
1101
- #: core/app_settings.py:116
1524
+ #: core/app_settings.py:104
1102
1525
  msgid ""
1103
1526
  "The URL of an external page where users will be able to update their "
1104
1527
  "password. It applies only to non local users, ie. those automatically "
1105
1528
  "created after a successful external authentication (LDAP, SMTP)."
1106
1529
  msgstr ""
1107
1530
 
1108
- #: core/app_settings.py:126
1531
+ #: core/app_settings.py:114
1109
1532
  msgid "Password recovery announcement"
1110
1533
  msgstr ""
1111
1534
 
1112
- #: core/app_settings.py:128
1535
+ #: core/app_settings.py:116
1113
1536
  msgid "A temporary message that will be displayed on the reset password page."
1114
1537
  msgstr ""
1115
1538
 
1116
- #: core/app_settings.py:137
1539
+ #: core/app_settings.py:125
1117
1540
  msgid "Enable password recovery by SMS"
1118
1541
  msgstr ""
1119
1542
 
1120
- #: core/app_settings.py:140
1543
+ #: core/app_settings.py:128
1121
1544
  msgid "Enable password recovery by SMS for users who filled a phone number."
1122
1545
  msgstr ""
1123
1546
 
1124
- #: core/app_settings.py:148
1547
+ #: core/app_settings.py:136
1125
1548
  msgid "SMS provider"
1126
1549
  msgstr ""
1127
1550
 
1128
- #: core/app_settings.py:151
1551
+ #: core/app_settings.py:139
1129
1552
  msgid "Choose a provider to send password recovery SMS"
1130
1553
  msgstr ""
1131
1554
 
1132
- #: core/app_settings.py:163
1555
+ #: core/app_settings.py:151
1133
1556
  msgid "LDAP"
1134
1557
  msgstr ""
1135
1558
 
1136
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1559
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1137
1560
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1138
- #: webmail/app_settings.py:73
1561
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1139
1562
  msgid "Server address"
1140
1563
  msgstr "伺服器位址"
1141
1564
 
1142
- #: core/app_settings.py:171
1565
+ #: core/app_settings.py:159
1143
1566
  msgid "The IP address or the DNS name of the LDAP server"
1144
1567
  msgstr "LDAP 伺服器的 IP 或 DNS 名稱"
1145
1568
 
1146
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1569
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1147
1570
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1148
- #: webmail/app_settings.py:91
1571
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1149
1572
  msgid "Server port"
1150
1573
  msgstr "伺服器連接埠"
1151
1574
 
1152
- #: core/app_settings.py:180
1575
+ #: core/app_settings.py:168
1153
1576
  msgid "The TCP port number used by the LDAP server"
1154
1577
  msgstr "LDAP 伺服器所使用的 TCP 連接埠"
1155
1578
 
1156
- #: core/app_settings.py:188
1579
+ #: core/app_settings.py:176
1157
1580
  msgid "Enable secondary server (fallback)"
1158
1581
  msgstr ""
1159
1582
 
1160
- #: core/app_settings.py:191
1583
+ #: core/app_settings.py:179
1161
1584
  msgid ""
1162
1585
  "Enable a secondary LDAP server which will be used if the primary one fails"
1163
1586
  msgstr ""
1164
1587
 
1165
- #: core/app_settings.py:199
1588
+ #: core/app_settings.py:187
1166
1589
  #, fuzzy
1167
1590
  #| msgid "Server address"
1168
1591
  msgid "Secondary server address"
1169
1592
  msgstr "伺服器地址"
1170
1593
 
1171
- #: core/app_settings.py:202
1594
+ #: core/app_settings.py:190
1172
1595
  #, fuzzy
1173
1596
  #| msgid "The IP address or the DNS name of the LDAP server"
1174
1597
  msgid "The IP address or the DNS name of the seondary LDAP server"
1175
1598
  msgstr "LDAP 伺服器的 IP 或 DNS 名稱"
1176
1599
 
1177
- #: core/app_settings.py:209
1600
+ #: core/app_settings.py:197
1178
1601
  #, fuzzy
1179
1602
  #| msgid "Server port"
1180
1603
  msgid "Secondary server port"
1181
1604
  msgstr "伺服器連接埠"
1182
1605
 
1183
- #: core/app_settings.py:212
1606
+ #: core/app_settings.py:200
1184
1607
  #, fuzzy
1185
1608
  #| msgid "The TCP port number used by the LDAP server"
1186
1609
  msgid "The TCP port number used by the LDAP secondary server"
1187
1610
  msgstr "LDAP 伺服器所使用的 TCP 連接埠"
1188
1611
 
1189
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1612
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1190
1613
  #: webmail/app_settings.py:45
1191
1614
  msgid "Use a secured connection"
1192
1615
  msgstr "使用安全的連線"
1193
1616
 
1194
- #: core/app_settings.py:221
1617
+ #: core/app_settings.py:209
1195
1618
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1196
1619
  msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器"
1197
1620
 
1198
- #: core/app_settings.py:228
1621
+ #: core/app_settings.py:216
1199
1622
  msgid "Active Directory"
1200
1623
  msgstr "Active Directory"
1201
1624
 
1202
- #: core/app_settings.py:230
1625
+ #: core/app_settings.py:218
1203
1626
  msgid "Tell if the LDAP server is an Active Directory one"
1204
1627
  msgstr "判斷 LDAP 伺服器是否是 Active Directory 伺服器"
1205
1628
 
1206
- #: core/app_settings.py:237
1629
+ #: core/app_settings.py:225
1207
1630
  msgid "Administrator groups"
1208
1631
  msgstr "管理者群組"
1209
1632
 
1210
- #: core/app_settings.py:239
1633
+ #: core/app_settings.py:227
1211
1634
  msgid ""
1212
1635
  "Members of those LDAP Posix groups will be created as domain administrators. "
1213
1636
  "Use ';' characters to separate groups."
1214
1637
  msgstr "這些 LDAP 群組的成員將會建立為網域管理者。使用 ';' 字元來分開群組"
1215
1638
 
1216
- #: core/app_settings.py:248
1639
+ #: core/app_settings.py:236
1217
1640
  msgid "Group type"
1218
1641
  msgstr "群組類型"
1219
1642
 
1220
- #: core/app_settings.py:250
1643
+ #: core/app_settings.py:238
1221
1644
  msgid "The LDAP group type to use with your directory."
1222
1645
  msgstr "此 LDAP 群組類型會使用您的目錄"
1223
1646
 
1224
- #: core/app_settings.py:257
1647
+ #: core/app_settings.py:245
1225
1648
  msgid "Groups search base"
1226
1649
  msgstr "群組搜尋基準"
1227
1650
 
1228
- #: core/app_settings.py:259
1651
+ #: core/app_settings.py:247
1229
1652
  msgid "The distinguished name of the search base used to find groups"
1230
1653
  msgstr "搜尋基準使用醒目的名稱來找到群組"
1231
1654
 
1232
- #: core/app_settings.py:267
1655
+ #: core/app_settings.py:255
1233
1656
  msgid "Password attribute"
1234
1657
  msgstr "密碼屬性"
1235
1658
 
1236
- #: core/app_settings.py:269
1659
+ #: core/app_settings.py:257
1237
1660
  msgid "The attribute used to store user passwords"
1238
1661
  msgstr "此屬性使用在儲存使用者密碼"
1239
1662
 
1240
- #: core/app_settings.py:276
1663
+ #: core/app_settings.py:264
1241
1664
  #, fuzzy
1242
1665
  #| msgid "Authentication method"
1243
1666
  msgid "LDAP authentication settings"
1244
1667
  msgstr "身份驗證方法"
1245
1668
 
1246
- #: core/app_settings.py:284
1669
+ #: core/app_settings.py:272
1247
1670
  msgid "Authentication method"
1248
1671
  msgstr "身份驗證方法"
1249
1672
 
1250
- #: core/app_settings.py:287
1673
+ #: core/app_settings.py:275
1251
1674
  msgid "Choose the authentication method to use"
1252
1675
  msgstr "選擇驗證模組來使用"
1253
1676
 
1254
- #: core/app_settings.py:294 core/app_settings.py:357
1677
+ #: core/app_settings.py:282 core/app_settings.py:345
1255
1678
  msgid "Bind DN"
1256
1679
  msgstr "Bind DN"
1257
1680
 
1258
- #: core/app_settings.py:296 core/app_settings.py:359
1681
+ #: core/app_settings.py:284 core/app_settings.py:347
1259
1682
  msgid ""
1260
1683
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1261
1684
  "for an anonymous bind"
1262
1685
  msgstr "當對應到 LDAP 伺服器請使用醒目的名稱。保留空白為匿名 bind"
1263
1686
 
1264
- #: core/app_settings.py:305 core/app_settings.py:367
1687
+ #: core/app_settings.py:293 core/app_settings.py:355
1265
1688
  msgid "Bind password"
1266
1689
  msgstr "Bind 密碼"
1267
1690
 
1268
- #: core/app_settings.py:307 core/app_settings.py:369
1691
+ #: core/app_settings.py:295 core/app_settings.py:357
1269
1692
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1270
1693
  msgstr "此密碼使用於當綁定到 LDAP 伺服器 (有 'Bind DN')"
1271
1694
 
1272
- #: core/app_settings.py:317 core/app_settings.py:422
1695
+ #: core/app_settings.py:305 core/app_settings.py:410
1273
1696
  msgid "Users search base"
1274
1697
  msgstr "使用者搜尋基準"
1275
1698
 
1276
- #: core/app_settings.py:319 core/app_settings.py:424
1699
+ #: core/app_settings.py:307 core/app_settings.py:412
1277
1700
  msgid "The distinguished name of the search base used to find users"
1278
1701
  msgstr "搜尋基準使用醒目的名稱來找到使用者"
1279
1702
 
1280
- #: core/app_settings.py:328 core/app_settings.py:433
1703
+ #: core/app_settings.py:316 core/app_settings.py:421
1281
1704
  msgid "Search filter"
1282
1705
  msgstr "搜尋過濾器"
1283
1706
 
1284
- #: core/app_settings.py:330 core/app_settings.py:435
1707
+ #: core/app_settings.py:318 core/app_settings.py:423
1285
1708
  msgid ""
1286
1709
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1287
1710
  "valid, it must be enclosed in parentheses."
1288
1711
  msgstr ""
1289
1712
  "過濾字串的選 (例如 '(objectClass=person)'). 要能正常使用,這必須括在括號內。"
1290
1713
 
1291
- #: core/app_settings.py:339
1714
+ #: core/app_settings.py:327
1292
1715
  msgid "User DN template"
1293
1716
  msgstr "使用者 DN 範本"
1294
1717
 
1295
- #: core/app_settings.py:341
1718
+ #: core/app_settings.py:329
1296
1719
  #, python-format
1297
1720
  msgid ""
1298
1721
  "The template used to construct a user's DN. It should contain one "
1299
1722
  "placeholder (ie. %(user)s)"
1300
1723
  msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)"
1301
1724
 
1302
- #: core/app_settings.py:350
1725
+ #: core/app_settings.py:338
1303
1726
  #, fuzzy
1304
1727
  #| msgid "LDAP settings"
1305
1728
  msgid "LDAP synchronization settings"
1306
1729
  msgstr "LDAP 設定"
1307
1730
 
1308
- #: core/app_settings.py:378
1731
+ #: core/app_settings.py:366
1309
1732
  msgid "Enable export to LDAP"
1310
1733
  msgstr ""
1311
1734
 
1312
- #: core/app_settings.py:380
1735
+ #: core/app_settings.py:368
1313
1736
  msgid ""
1314
1737
  "Enable automatic synchronization between local database and LDAP directory"
1315
1738
  msgstr ""
1316
1739
 
1317
- #: core/app_settings.py:389
1740
+ #: core/app_settings.py:377
1318
1741
  msgid "Delete remote LDAP account when local account is deleted"
1319
1742
  msgstr ""
1320
1743
 
1321
- #: core/app_settings.py:392
1744
+ #: core/app_settings.py:380
1322
1745
  msgid ""
1323
1746
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1324
1747
  "be disabled."
1325
1748
  msgstr ""
1326
1749
 
1327
- #: core/app_settings.py:401
1750
+ #: core/app_settings.py:389
1328
1751
  #, fuzzy
1329
1752
  #| msgid "User DN template"
1330
1753
  msgid "Account DN template"
1331
1754
  msgstr "使用者 DN 範本"
1332
1755
 
1333
- #: core/app_settings.py:403
1756
+ #: core/app_settings.py:391
1334
1757
  #, fuzzy, python-format
1335
1758
  #| msgid ""
1336
1759
  #| "The template used to construct a user's DN. It should contain one "
@@ -1340,245 +1763,237 @@ msgid ""
1340
1763
  "placeholder (ie. %(user)s)"
1341
1764
  msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)"
1342
1765
 
1343
- #: core/app_settings.py:412
1766
+ #: core/app_settings.py:400
1344
1767
  msgid "Enable import from LDAP"
1345
1768
  msgstr ""
1346
1769
 
1347
- #: core/app_settings.py:414
1770
+ #: core/app_settings.py:402
1348
1771
  msgid "Enable account synchronization from LDAP directory to local database"
1349
1772
  msgstr ""
1350
1773
 
1351
- #: core/app_settings.py:444
1774
+ #: core/app_settings.py:432
1352
1775
  #, fuzzy
1353
1776
  #| msgid "Password attribute"
1354
1777
  msgid "Username attribute"
1355
1778
  msgstr "密碼屬性"
1356
1779
 
1357
- #: core/app_settings.py:446
1780
+ #: core/app_settings.py:434
1358
1781
  msgid "The name of the LDAP attribute where the username can be found."
1359
1782
  msgstr ""
1360
1783
 
1361
- #: core/app_settings.py:455
1784
+ #: core/app_settings.py:443
1362
1785
  #, fuzzy
1363
1786
  #| msgid "Enable communication"
1364
1787
  msgid "Enable Dovecot LDAP sync"
1365
1788
  msgstr "啟用通訊"
1366
1789
 
1367
- #: core/app_settings.py:457
1790
+ #: core/app_settings.py:445
1368
1791
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1369
1792
  msgstr ""
1370
1793
 
1371
- #: core/app_settings.py:465
1794
+ #: core/app_settings.py:453
1372
1795
  msgid "Dovecot LDAP config file"
1373
1796
  msgstr ""
1374
1797
 
1375
- #: core/app_settings.py:467
1798
+ #: core/app_settings.py:455
1376
1799
  msgid ""
1377
1800
  "Location of the configuration file which contains Dovecot LDAP settings."
1378
1801
  msgstr ""
1379
1802
 
1380
- #: core/app_settings.py:480
1803
+ #: core/app_settings.py:468
1381
1804
  msgid "Dashboard"
1382
1805
  msgstr "儀表板"
1383
1806
 
1384
- #: core/app_settings.py:486
1807
+ #: core/app_settings.py:474
1385
1808
  #, fuzzy
1386
1809
  #| msgid "spam messages"
1387
1810
  msgid "Custom welcome message"
1388
1811
  msgstr "垃圾郵件"
1389
1812
 
1390
- #: core/app_settings.py:488
1813
+ #: core/app_settings.py:476
1391
1814
  msgid "A welcome message that will be displayed instead the default one"
1392
1815
  msgstr ""
1393
1816
 
1394
- #: core/app_settings.py:495
1817
+ #: core/app_settings.py:483
1395
1818
  msgid "Custom RSS feed"
1396
1819
  msgstr "自訂 RSS 來源"
1397
1820
 
1398
- #: core/app_settings.py:497
1821
+ #: core/app_settings.py:485
1399
1822
  msgid "Display custom RSS feed to resellers and domain administrators"
1400
1823
  msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者"
1401
1824
 
1402
- #: core/app_settings.py:506
1825
+ #: core/app_settings.py:494
1403
1826
  #, fuzzy
1404
1827
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1405
1828
  msgid "Display custom RSS feed to super admins"
1406
1829
  msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者"
1407
1830
 
1408
- #: core/app_settings.py:509
1831
+ #: core/app_settings.py:497
1409
1832
  #, fuzzy
1410
1833
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1411
1834
  msgid "Display custom RSS feed also to super administrators"
1412
1835
  msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者"
1413
1836
 
1414
- #: core/app_settings.py:517
1837
+ #: core/app_settings.py:505
1415
1838
  msgid "Hide features widget"
1416
1839
  msgstr "隱藏功能物件"
1417
1840
 
1418
- #: core/app_settings.py:519
1841
+ #: core/app_settings.py:507
1419
1842
  msgid "Hide features widget for resellers and domain administrators"
1420
1843
  msgstr "隱藏功能物件給經銷商和網域管理者"
1421
1844
 
1422
- #: core/app_settings.py:531
1845
+ #: core/app_settings.py:519
1423
1846
  msgid "Theme"
1424
1847
  msgstr ""
1425
1848
 
1426
- #: core/app_settings.py:537
1849
+ #: core/app_settings.py:525
1427
1850
  msgid "Primary theme color"
1428
1851
  msgstr ""
1429
1852
 
1430
- #: core/app_settings.py:539
1853
+ #: core/app_settings.py:527
1431
1854
  msgid ""
1432
1855
  "Primary color of the theme (hexadecimal code), used as the background color "
1433
1856
  "of the left menu for example"
1434
1857
  msgstr ""
1435
1858
 
1436
- #: core/app_settings.py:548
1859
+ #: core/app_settings.py:536
1437
1860
  msgid "Primary theme color (lighter version)"
1438
1861
  msgstr ""
1439
1862
 
1440
- #: core/app_settings.py:551 core/app_settings.py:563
1863
+ #: core/app_settings.py:539 core/app_settings.py:551
1441
1864
  msgid "Primary color of the theme (hexadecimal code)"
1442
1865
  msgstr ""
1443
1866
 
1444
- #: core/app_settings.py:560
1867
+ #: core/app_settings.py:548
1445
1868
  msgid "Primary theme color (darker version)"
1446
1869
  msgstr ""
1447
1870
 
1448
- #: core/app_settings.py:571
1871
+ #: core/app_settings.py:559
1449
1872
  #, fuzzy
1450
1873
  #| msgid "Secondary email"
1451
1874
  msgid "Secondary theme color"
1452
1875
  msgstr "次要電子郵件"
1453
1876
 
1454
- #: core/app_settings.py:573
1877
+ #: core/app_settings.py:561
1455
1878
  msgid ""
1456
1879
  "Secondary color of the theme (hexadecimal code), used as the background "
1457
1880
  "color of some buttons for example"
1458
1881
  msgstr ""
1459
1882
 
1460
- #: core/app_settings.py:581
1883
+ #: core/app_settings.py:569
1461
1884
  msgid "Labels theme color"
1462
1885
  msgstr ""
1463
1886
 
1464
- #: core/app_settings.py:583
1887
+ #: core/app_settings.py:571
1465
1888
  msgid "Theme color for labels (hexadecimal code)"
1466
1889
  msgstr ""
1467
1890
 
1468
- #: core/app_settings.py:595
1891
+ #: core/app_settings.py:583
1469
1892
  msgid "Notifications"
1470
1893
  msgstr "通知"
1471
1894
 
1472
- #: core/app_settings.py:601
1895
+ #: core/app_settings.py:589
1473
1896
  msgid "Sender address"
1474
1897
  msgstr "伺服器位址"
1475
1898
 
1476
- #: core/app_settings.py:603
1899
+ #: core/app_settings.py:591
1477
1900
  msgid "Email address used to send notifications."
1478
1901
  msgstr "郵件地址用於寄送通知。"
1479
1902
 
1480
- #: core/app_settings.py:614
1903
+ #: core/app_settings.py:602
1481
1904
  msgid "Public API"
1482
1905
  msgstr "公用 API"
1483
1906
 
1484
- #: core/app_settings.py:620
1907
+ #: core/app_settings.py:608
1485
1908
  msgid "Enable communication"
1486
1909
  msgstr "啟用通訊"
1487
1910
 
1488
- #: core/app_settings.py:622 core/app_settings.py:632
1911
+ #: core/app_settings.py:610 core/app_settings.py:620
1489
1912
  msgid "Automatically checks if a newer version is available"
1490
1913
  msgstr "假如有新的版本就自動檢查"
1491
1914
 
1492
- #: core/app_settings.py:629
1915
+ #: core/app_settings.py:617
1493
1916
  msgid "Check new versions"
1494
1917
  msgstr "檢查新的版本"
1495
1918
 
1496
- #: core/app_settings.py:640
1919
+ #: core/app_settings.py:628
1497
1920
  msgid "Send an email when new versions are found"
1498
1921
  msgstr ""
1499
1922
 
1500
- #: core/app_settings.py:644
1923
+ #: core/app_settings.py:632
1501
1924
  msgid "Send an email to notify admins about new versions"
1502
1925
  msgstr ""
1503
1926
 
1504
- #: core/app_settings.py:651 sievefilters/constants.py:25
1927
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1505
1928
  msgid "Recipient"
1506
1929
  msgstr ""
1507
1930
 
1508
- #: core/app_settings.py:654
1931
+ #: core/app_settings.py:642
1509
1932
  msgid "Recipient of new versions notification emails."
1510
1933
  msgstr ""
1511
1934
 
1512
- #: core/app_settings.py:661
1935
+ #: core/app_settings.py:649
1513
1936
  msgid "Send statistics"
1514
1937
  msgstr "寄送狀態"
1515
1938
 
1516
- #: core/app_settings.py:664
1939
+ #: core/app_settings.py:652
1517
1940
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1518
1941
  msgstr "寄送狀態到 Modoboa 公用 API (計數器及已使用的外掛)"
1519
1942
 
1520
- #: core/app_settings.py:683
1943
+ #: core/app_settings.py:671
1521
1944
  #, fuzzy
1522
1945
  #| msgid "Inactive account threshold"
1523
1946
  msgid "Enable inactive account tracking"
1524
1947
  msgstr "未啟用帳號上限"
1525
1948
 
1526
- #: core/app_settings.py:686
1949
+ #: core/app_settings.py:674
1527
1950
  msgid ""
1528
1951
  "Allow the administrator to set a threshold (in days) beyond which an account "
1529
1952
  "is considered inactive if the user hasn't logged in"
1530
1953
  msgstr ""
1531
1954
 
1532
- #: core/app_settings.py:695
1955
+ #: core/app_settings.py:683
1533
1956
  msgid "Inactive account threshold"
1534
1957
  msgstr "未啟用帳號上限"
1535
1958
 
1536
- #: core/app_settings.py:698
1959
+ #: core/app_settings.py:686
1537
1960
  msgid ""
1538
1961
  "An account with a last login date greater than this threshold (in days) will "
1539
1962
  "be considered as inactive"
1540
1963
  msgstr "這個帳號最後一次登錄日期超過這個上限 (在幾天) 將考慮停用"
1541
1964
 
1542
- #: core/app_settings.py:707
1965
+ #: core/app_settings.py:695
1543
1966
  msgid "Top notifications check interval"
1544
1967
  msgstr "檢查提醒間隔"
1545
1968
 
1546
- #: core/app_settings.py:710
1969
+ #: core/app_settings.py:698
1547
1970
  msgid "Interval between two top notification checks (in seconds)"
1548
1971
  msgstr "兩次檢查提醒間隔 (在幾秒)"
1549
1972
 
1550
- #: core/app_settings.py:717
1973
+ #: core/app_settings.py:705
1551
1974
  msgid "Maximum log record age"
1552
1975
  msgstr "最大日誌紀錄時間"
1553
1976
 
1554
- #: core/app_settings.py:719
1977
+ #: core/app_settings.py:707
1555
1978
  msgid "The maximum age in days of a log record"
1556
1979
  msgstr ""
1557
1980
 
1558
- #: core/app_settings.py:727
1981
+ #: core/app_settings.py:715
1559
1982
  msgid "Retention time in message history"
1560
1983
  msgstr ""
1561
1984
 
1562
- #: core/app_settings.py:730
1985
+ #: core/app_settings.py:718
1563
1986
  msgid "Retention time (in days) of a message in the message history section"
1564
1987
  msgstr ""
1565
1988
 
1566
- #: core/app_settings.py:737
1989
+ #: core/app_settings.py:725
1567
1990
  msgid "Items per page"
1568
1991
  msgstr "每頁的條目數量"
1569
1992
 
1570
- #: core/app_settings.py:739
1993
+ #: core/app_settings.py:727
1571
1994
  msgid "Number of displayed items per page"
1572
1995
  msgstr ""
1573
1996
 
1574
- #: core/app_settings.py:746
1575
- msgid "Default top redirection"
1576
- msgstr ""
1577
-
1578
- #: core/app_settings.py:748
1579
- msgid "The default redirection used when no application is specified"
1580
- msgstr ""
1581
-
1582
1997
  #: core/checks.py:15
1583
1998
  msgid ""
1584
1999
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -1710,7 +2125,7 @@ msgstr "您不可以刪除您擁有的帳號"
1710
2125
  msgid "One or more updates are available"
1711
2126
  msgstr "一個或多個可用的更新"
1712
2127
 
1713
- #: core/handlers.py:138
2128
+ #: core/handlers.py:140
1714
2129
  #, python-format
1715
2130
  msgid "You are still using a deprecated password scheme (%s)"
1716
2131
  msgstr ""
@@ -1866,22 +2281,22 @@ msgstr[0] "一個或多個可用的更新"
1866
2281
  msgid "The core part of Modoboa"
1867
2282
  msgstr "Modoboa 的核心部分"
1868
2283
 
1869
- #: core/views/auth.py:65
2284
+ #: core/views/auth.py:82
1870
2285
  #, python-format
1871
2286
  msgid "User '%s' successfully logged in"
1872
2287
  msgstr ""
1873
2288
 
1874
- #: core/views/auth.py:109
2289
+ #: core/views/auth.py:128
1875
2290
  #, python-format
1876
2291
  msgid "Password scheme mismatch. Updating %s password"
1877
2292
  msgstr ""
1878
2293
 
1879
- #: core/views/auth.py:116
2294
+ #: core/views/auth.py:135
1880
2295
  #, python-format
1881
2296
  msgid "Password hash parameter missmatch. Updating %s password"
1882
2297
  msgstr ""
1883
2298
 
1884
- #: core/views/auth.py:154
2299
+ #: core/views/auth.py:173
1885
2300
  msgid "User '{}' successfully logged out"
1886
2301
  msgstr ""
1887
2302
 
@@ -1910,16 +2325,10 @@ msgid "Not resolved"
1910
2325
  msgstr "未定義"
1911
2326
 
1912
2327
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
1913
- #: webmail/constants.py:18
2328
+ #: webmail/constants.py:38
1914
2329
  msgid "None"
1915
2330
  msgstr "沒有"
1916
2331
 
1917
- #: dmarc/models.py:11
1918
- #, fuzzy
1919
- #| msgid "Quantity"
1920
- msgid "Quarantine"
1921
- msgstr "數量"
1922
-
1923
2332
  #: dmarc/models.py:12
1924
2333
  #, fuzzy
1925
2334
  #| msgid "Subject"
@@ -2050,7 +2459,12 @@ msgstr ""
2050
2459
  msgid "Public key mismatchs"
2051
2460
  msgstr ""
2052
2461
 
2053
- #: imap_migration/api/v2/serializers.py:117
2462
+ #: imap_migration/api/v2/serializers.py:66
2463
+ #, fuzzy
2464
+ msgid "Migrated domain with name {} already exists"
2465
+ msgstr "這個名稱的別名已存在"
2466
+
2467
+ #: imap_migration/api/v2/serializers.py:130
2054
2468
  #, fuzzy
2055
2469
  #| msgid "Access updated"
2056
2470
  msgid "Access denied"
@@ -2768,7 +3182,7 @@ msgstr ""
2768
3182
  msgid "Rspamd"
2769
3183
  msgstr ""
2770
3184
 
2771
- #: sievefilters/api/v2/viewsets.py:193
3185
+ #: sievefilters/api/v2/viewsets.py:203
2772
3186
  #, fuzzy, python-format
2773
3187
  #| msgid "User '%s' already exists"
2774
3188
  msgid "Filter %s already exists"
@@ -2854,7 +3268,7 @@ msgstr ""
2854
3268
  msgid "is not"
2855
3269
  msgstr ""
2856
3270
 
2857
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3271
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
2858
3272
  msgid "Subject"
2859
3273
  msgstr "主旨"
2860
3274
 
@@ -3104,23 +3518,23 @@ msgstr "最大附件大小的位元組 (假如有指定可以是 KB, MB, GB)"
3104
3518
  msgid "SMTP settings"
3105
3519
  msgstr "SMTP 設定"
3106
3520
 
3107
- #: webmail/app_settings.py:75
3521
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3108
3522
  msgid "Address of your SMTP server"
3109
3523
  msgstr "您的 SMTP 伺服器位址"
3110
3524
 
3111
- #: webmail/app_settings.py:82
3525
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3112
3526
  #, fuzzy
3113
3527
  #| msgid "Use a secured connection"
3114
3528
  msgid "Secured connection mode"
3115
3529
  msgstr "安全連線模式"
3116
3530
 
3117
- #: webmail/app_settings.py:84
3531
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3118
3532
  #, fuzzy
3119
3533
  #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
3120
3534
  msgid "Use a secured connection to access SMTP server"
3121
3535
  msgstr "使用安全的連線來存取 SMTP 伺服器"
3122
3536
 
3123
- #: webmail/app_settings.py:93
3537
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3124
3538
  msgid "Listening port of your SMTP server"
3125
3539
  msgstr "您的 SMTP 伺服器的連接埠"
3126
3540
 
@@ -3135,121 +3549,119 @@ msgstr "必須驗證"
3135
3549
  msgid "Server needs authentication"
3136
3550
  msgstr "伺服器需要驗證"
3137
3551
 
3138
- #: webmail/app_settings.py:118
3139
- msgid "Display"
3140
- msgstr "顯示"
3552
+ #: webmail/app_settings.py:113
3553
+ #, fuzzy
3554
+ #| msgid "LDAP settings"
3555
+ msgid "Scheduling settings"
3556
+ msgstr "LDAP 設定"
3141
3557
 
3142
- #: webmail/app_settings.py:124
3558
+ #: webmail/app_settings.py:161
3143
3559
  msgid "Default message display mode"
3144
3560
  msgstr "預設訊息顯示模式"
3145
3561
 
3146
- #: webmail/app_settings.py:126
3562
+ #: webmail/app_settings.py:163
3147
3563
  msgid "The default mode used when displaying a message"
3148
3564
  msgstr "當正在顯示訊息時會使用預設模式"
3149
3565
 
3150
- #: webmail/app_settings.py:133
3566
+ #: webmail/app_settings.py:170
3151
3567
  msgid "Enable HTML links display"
3152
3568
  msgstr "啟用 HTMK 顯示連結"
3153
3569
 
3154
- #: webmail/app_settings.py:136
3570
+ #: webmail/app_settings.py:173
3155
3571
  msgid "Enable/Disable HTML links display"
3156
3572
  msgstr "啟用/停用 HTMK 顯示連結"
3157
3573
 
3158
- #: webmail/app_settings.py:144
3159
- msgid "Number of displayed emails per page"
3160
- msgstr "每一頁顯示郵件數量"
3161
-
3162
- #: webmail/app_settings.py:147
3574
+ #: webmail/app_settings.py:184
3163
3575
  msgid "Sets the maximum number of messages displayed in a page"
3164
3576
  msgstr "設定最大每一頁顯示郵件數量"
3165
3577
 
3166
- #: webmail/app_settings.py:154
3578
+ #: webmail/app_settings.py:191
3167
3579
  msgid "Listing refresh rate"
3168
3580
  msgstr "列出重整頻率"
3169
3581
 
3170
- #: webmail/app_settings.py:156
3582
+ #: webmail/app_settings.py:193
3171
3583
  msgid "Automatic listing refresh rate (in secconds)"
3172
3584
  msgstr ""
3173
3585
 
3174
- #: webmail/app_settings.py:163
3586
+ #: webmail/app_settings.py:200
3175
3587
  msgid "Folder container's width"
3176
3588
  msgstr "資料夾寬度"
3177
3589
 
3178
- #: webmail/app_settings.py:165
3590
+ #: webmail/app_settings.py:202
3179
3591
  msgid "The width of the folder list container"
3180
3592
  msgstr "資料夾列表寬度"
3181
3593
 
3182
- #: webmail/app_settings.py:176
3594
+ #: webmail/app_settings.py:213
3183
3595
  #, fuzzy
3184
3596
  #| msgid "Create aliases"
3185
3597
  msgid "Folders"
3186
3598
  msgstr "資料夾"
3187
3599
 
3188
- #: webmail/app_settings.py:182
3600
+ #: webmail/app_settings.py:219
3189
3601
  #, fuzzy
3190
3602
  #| msgid "Create aliases"
3191
3603
  msgid "Trash folder"
3192
3604
  msgstr "垃圾筒"
3193
3605
 
3194
- #: webmail/app_settings.py:184
3606
+ #: webmail/app_settings.py:221
3195
3607
  #, fuzzy
3196
3608
  #| msgid "rejected messages"
3197
3609
  msgid "Folder where deleted messages go"
3198
3610
  msgstr "已刪除郵件的資料夾"
3199
3611
 
3200
- #: webmail/app_settings.py:191
3612
+ #: webmail/app_settings.py:228
3201
3613
  #, fuzzy
3202
3614
  #| msgid "Create aliases"
3203
3615
  msgid "Sent folder"
3204
3616
  msgstr "寄件夾"
3205
3617
 
3206
- #: webmail/app_settings.py:193
3618
+ #: webmail/app_settings.py:230
3207
3619
  msgid "Folder where copies of sent messages go"
3208
3620
  msgstr "已寄出郵件的資料夾"
3209
3621
 
3210
- #: webmail/app_settings.py:200
3622
+ #: webmail/app_settings.py:237
3211
3623
  #, fuzzy
3212
3624
  #| msgid "Create aliases"
3213
3625
  msgid "Drafts folder"
3214
3626
  msgstr "草稿"
3215
3627
 
3216
- #: webmail/app_settings.py:201
3628
+ #: webmail/app_settings.py:238
3217
3629
  msgid "Folder where drafts go"
3218
3630
  msgstr "草稿郵件的資料夾"
3219
3631
 
3220
- #: webmail/app_settings.py:207
3632
+ #: webmail/app_settings.py:244
3221
3633
  #, fuzzy
3222
3634
  #| msgid "Create aliases"
3223
3635
  msgid "Junk folder"
3224
3636
  msgstr "垃圾信資料夾"
3225
3637
 
3226
- #: webmail/app_settings.py:209
3638
+ #: webmail/app_settings.py:246
3227
3639
  #, fuzzy
3228
3640
  #| msgid "rejected messages"
3229
3641
  msgid "Folder where junk messages should go"
3230
3642
  msgstr "垃圾郵件的資料夾"
3231
3643
 
3232
- #: webmail/app_settings.py:220
3644
+ #: webmail/app_settings.py:257
3233
3645
  #, fuzzy
3234
3646
  #| msgid "sent messages"
3235
3647
  msgid "Composing messages"
3236
3648
  msgstr "編寫郵件"
3237
3649
 
3238
- #: webmail/app_settings.py:226
3650
+ #: webmail/app_settings.py:263
3239
3651
  #, fuzzy
3240
3652
  #| msgid "Default subject"
3241
3653
  msgid "Default editor"
3242
3654
  msgstr "預設編輯器"
3243
3655
 
3244
- #: webmail/app_settings.py:228
3656
+ #: webmail/app_settings.py:265
3245
3657
  msgid "The default editor to use when composing a message"
3246
3658
  msgstr "當編寫郵件時會使用預設編輯器"
3247
3659
 
3248
- #: webmail/app_settings.py:235
3660
+ #: webmail/app_settings.py:272
3249
3661
  msgid "Signature text"
3250
3662
  msgstr "簽名文字"
3251
3663
 
3252
- #: webmail/app_settings.py:237
3664
+ #: webmail/app_settings.py:274
3253
3665
  msgid "User defined email signature"
3254
3666
  msgstr "使用者定義郵件簽名"
3255
3667
 
@@ -3264,47 +3676,66 @@ msgstr "伺服器位址"
3264
3676
  msgid "Failed to remove attachment: "
3265
3677
  msgstr "移除附件失敗:"
3266
3678
 
3267
- #: webmail/lib/imapemail.py:272
3679
+ #: webmail/lib/imapemail.py:270
3268
3680
  msgid "wrote:"
3269
3681
  msgstr ""
3270
3682
 
3271
- #: webmail/lib/imapemail.py:306
3683
+ #: webmail/lib/imapemail.py:304
3272
3684
  msgid "Date"
3273
3685
  msgstr "日期"
3274
3686
 
3275
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3687
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3276
3688
  #, fuzzy
3277
3689
  #| msgid "sent messages"
3278
3690
  msgid "Original message"
3279
3691
  msgstr "已發訊息"
3280
3692
 
3281
- #: webmail/lib/imaputils.py:221
3693
+ #: webmail/lib/imaputils.py:222
3282
3694
  msgid "Failed to retrieve hierarchy delimiter"
3283
3695
  msgstr "無法檢查層次分隔"
3284
3696
 
3285
- #: webmail/lib/imaputils.py:472
3697
+ #: webmail/lib/imaputils.py:478
3286
3698
  msgid "Inbox"
3287
3699
  msgstr "收件夾"
3288
3700
 
3289
- #: webmail/lib/imaputils.py:476
3701
+ #: webmail/lib/imaputils.py:482
3290
3702
  #, fuzzy
3291
3703
  #| msgid "Create aliases"
3292
3704
  msgid "Drafts"
3293
3705
  msgstr "草稿"
3294
3706
 
3295
- #: webmail/lib/imaputils.py:481
3707
+ #: webmail/lib/imaputils.py:487
3296
3708
  msgid "Junk"
3297
3709
  msgstr "垃圾信"
3298
3710
 
3299
- #: webmail/lib/imaputils.py:486
3711
+ #: webmail/lib/imaputils.py:492
3300
3712
  msgid "Sent"
3301
3713
  msgstr "寄件夾"
3302
3714
 
3303
- #: webmail/lib/imaputils.py:491
3715
+ #: webmail/lib/imaputils.py:500
3716
+ msgid "Scheduled"
3717
+ msgstr ""
3718
+
3719
+ #: webmail/lib/imaputils.py:507
3304
3720
  msgid "Trash"
3305
3721
  msgstr "垃圾筒"
3306
3722
 
3307
- #: webmail/viewsets.py:343
3723
+ #: webmail/serializers.py:220
3724
+ msgid "Moving scheduled messages is forbidden"
3725
+ msgstr ""
3726
+
3727
+ #: webmail/serializers.py:253
3728
+ msgid "Only datetime in the future is allowed"
3729
+ msgstr ""
3730
+
3731
+ #: webmail/serializers.py:258
3732
+ msgid "Provived datetime must be one minute in the future at least"
3733
+ msgstr ""
3734
+
3735
+ #: webmail/viewsets.py:359
3308
3736
  #, python-format
3309
3737
  msgid "Attachment is too big (limit: %s)"
3310
3738
  msgstr "附件太大 (限制: %s)"
3739
+
3740
+ #~ msgid "User profile"
3741
+ #~ msgstr "使用者檔案"