modoboa 2.4.11__py3-none-any.whl → 2.5.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 (314) hide show
  1. modoboa/admin/api/v2/serializers.py +14 -0
  2. modoboa/amavis/__init__.py +3 -0
  3. modoboa/amavis/app_settings.py +276 -0
  4. modoboa/amavis/apps.py +18 -0
  5. modoboa/amavis/checks/__init__.py +2 -0
  6. modoboa/amavis/checks/settings_checks.py +59 -0
  7. modoboa/amavis/dbrouter.py +35 -0
  8. modoboa/amavis/factories.py +164 -0
  9. modoboa/amavis/handlers.py +146 -0
  10. modoboa/amavis/lib.py +381 -0
  11. modoboa/amavis/management/__init__.py +0 -0
  12. modoboa/amavis/management/commands/__init__.py +0 -0
  13. modoboa/amavis/management/commands/amnotify.py +99 -0
  14. modoboa/amavis/management/commands/qcleanup.py +84 -0
  15. modoboa/amavis/migrations/0001_initial.py +340 -0
  16. modoboa/amavis/migrations/__init__.py +0 -0
  17. modoboa/amavis/models.py +226 -0
  18. modoboa/amavis/serializers.py +139 -0
  19. modoboa/amavis/sql_connector.py +240 -0
  20. modoboa/amavis/sql_email.py +66 -0
  21. modoboa/amavis/tasks.py +33 -0
  22. modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
  23. modoboa/amavis/tests/__init__.py +0 -0
  24. modoboa/amavis/tests/sa-learn +3 -0
  25. modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
  26. modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
  27. modoboa/amavis/tests/spamc +3 -0
  28. modoboa/amavis/tests/test_checks.py +25 -0
  29. modoboa/amavis/tests/test_handlers.py +214 -0
  30. modoboa/amavis/tests/test_lib.py +90 -0
  31. modoboa/amavis/tests/test_management_commands.py +45 -0
  32. modoboa/amavis/tests/test_sql_email.py +67 -0
  33. modoboa/amavis/tests/test_utils.py +19 -0
  34. modoboa/amavis/tests/test_viewsets.py +319 -0
  35. modoboa/amavis/urls.py +11 -0
  36. modoboa/amavis/utils.py +105 -0
  37. modoboa/amavis/viewsets.py +265 -0
  38. modoboa/core/api/v1/serializers.py +7 -5
  39. modoboa/core/api/v2/serializers.py +4 -2
  40. modoboa/core/api/v2/tests.py +16 -4
  41. modoboa/core/api/v2/urls.py +5 -5
  42. modoboa/core/api/v2/views.py +3 -1
  43. modoboa/core/api/v2/viewsets.py +24 -3
  44. modoboa/core/handlers.py +6 -2
  45. modoboa/core/management/commands/add_allowed_hosts.py +33 -0
  46. modoboa/core/management/commands/load_initial_data.py +10 -0
  47. modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
  48. modoboa/core/tests/test_core.py +24 -0
  49. modoboa/core/utils.py +3 -0
  50. modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
  51. modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
  52. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
  53. modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
  54. modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
  55. modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
  56. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
  57. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
  58. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
  59. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
  60. modoboa/frontend_dist/assets/{AliasRecipientForm-IOae6sjF.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
  61. modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
  62. modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
  63. modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
  64. modoboa/frontend_dist/assets/{ChoiceField-DJ_c78Cm.js → ChoiceField-B3ReQHVe.js} +1 -1
  65. modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
  66. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
  67. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
  68. modoboa/frontend_dist/assets/{ConnectedLayout-Dvwmicnc.css → ConnectedLayout-Bxh21hcH.css} +1 -1
  69. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
  70. modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
  71. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
  72. modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
  73. modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
  74. modoboa/frontend_dist/assets/{DomainTransportForm-C2xo0Yd7.js → DomainTransportForm-CA-DNUxX.js} +1 -1
  75. modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
  76. modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
  77. modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
  78. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
  79. modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
  80. modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
  81. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
  82. modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
  83. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
  84. modoboa/frontend_dist/assets/{HtmlEditor-CJ9umKeO.js → HtmlEditor-Bh4c689R.js} +1 -1
  85. modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
  86. modoboa/frontend_dist/assets/{IdentitiesView-0ziuQ5s-.css → IdentitiesView-DPrrRMS5.css} +1 -1
  87. modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
  88. modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
  89. modoboa/frontend_dist/assets/{LoadingData-CYwX3Jpn.js → LoadingData-CdVvm4FI.js} +1 -1
  90. modoboa/frontend_dist/assets/{LoginCallbackView-E01qkKn0.js → LoginCallbackView-B9hAH4MI.js} +1 -1
  91. modoboa/frontend_dist/assets/{LoginView-Cy4uFV9h.js → LoginView-tHIR4Adc.js} +1 -1
  92. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
  93. modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
  94. modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
  95. modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
  96. modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
  97. modoboa/frontend_dist/assets/{ParametersForm-BZM0QSvg.js → ParametersForm-CAv4SH-E.js} +1 -1
  98. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
  99. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
  100. modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
  101. modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
  102. modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
  103. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
  104. modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
  105. modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
  106. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
  107. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
  108. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
  109. modoboa/frontend_dist/assets/{SettingsView-BxLJBFY0.js → SettingsView-9iNcDhkI.js} +2 -2
  110. modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
  111. modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
  112. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
  113. modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
  114. modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
  115. modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
  116. modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
  117. modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
  118. modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
  119. modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
  120. modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
  121. modoboa/frontend_dist/assets/{VCheckboxBtn-Dt810gWf.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
  122. modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
  123. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
  124. modoboa/frontend_dist/assets/{VContainer-DvTbsotR.js → VContainer-B46caNs1.js} +1 -1
  125. modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
  126. modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
  127. modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
  128. modoboa/frontend_dist/assets/{VDialog-Bk6EWNhz.js → VDialog-BcTg7w6P.js} +1 -1
  129. modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
  130. modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
  131. modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
  132. modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
  133. modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
  134. modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
  135. modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
  136. modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
  137. modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
  138. modoboa/frontend_dist/assets/{VRow-BF35mT1S.js → VRow-ozg66L7j.js} +1 -1
  139. modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
  140. modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
  141. modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
  142. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
  143. modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
  144. modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
  145. modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
  146. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
  147. modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
  148. modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
  149. modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
  150. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
  151. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
  152. modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
  153. modoboa/frontend_dist/assets/{admin-o-HRGnmT.js → admin-DewTk2H8.js} +1 -1
  154. modoboa/frontend_dist/assets/{aliases-DDVeehyg.js → aliases-4sXmjwXp.js} +1 -1
  155. modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
  156. modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
  157. modoboa/frontend_dist/assets/{contacts-C84DY-Q1.js → contacts-BjghrPqZ.js} +1 -1
  158. modoboa/frontend_dist/assets/{domains-Bgn4ixHL.js → domains-BSawReeu.js} +1 -1
  159. modoboa/frontend_dist/assets/{domains.store-DTE-V7Y1.js → domains.store-D-vWCEIK.js} +1 -1
  160. modoboa/frontend_dist/assets/{filter-CnffiQAW.js → filter-C82FUCw_.js} +1 -1
  161. modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
  162. modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
  163. modoboa/frontend_dist/assets/{importExport-BlQYb0NO.js → importExport-DzoL4Mvc.js} +1 -1
  164. modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
  165. modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
  166. modoboa/frontend_dist/assets/{layout.store-DkjrAoXt.js → layout.store-NXWtFIwL.js} +1 -1
  167. modoboa/frontend_dist/assets/{logos-q8SEyAa4.js → logos-BswdveCV.js} +1 -1
  168. modoboa/frontend_dist/assets/{logs-B7IJ7LBa.js → logs-6CbtfaZS.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters-A6iBEYQq.js → parameters-aSQiR7kN.js} +1 -1
  170. modoboa/frontend_dist/assets/{parameters.store-BiXS4_6w.js → parameters.store-CzQqVatx.js} +1 -1
  171. modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
  172. modoboa/frontend_dist/assets/{ssrBoot-AzTdjPjk.js → ssrBoot-CKUX4kcb.js} +1 -1
  173. modoboa/frontend_dist/assets/{tag-BnSYRTcD.js → tag-B_yWNNJD.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
  175. modoboa/frontend_dist/assets/{webmail-CSH_3l6R.js → webmail-CdU6CD9b.js} +1 -1
  176. modoboa/frontend_dist/index.html +1 -1
  177. modoboa/lib/email_utils.py +2 -2
  178. modoboa/lib/permissions.py +7 -0
  179. modoboa/lib/test_runners.py +29 -0
  180. modoboa/lib/tests/__init__.py +5 -1
  181. modoboa/locale/br/LC_MESSAGES/django.po +87 -75
  182. modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
  183. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
  184. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  185. modoboa/locale/de/LC_MESSAGES/django.po +339 -651
  186. modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
  187. modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
  188. modoboa/locale/en/LC_MESSAGES/django.po +82 -74
  189. modoboa/locale/es/LC_MESSAGES/django.po +158 -131
  190. modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
  191. modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
  192. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
  194. modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
  195. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  196. modoboa/locale/it/LC_MESSAGES/django.po +148 -122
  197. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/ja_JP/LC_MESSAGES/django.po +80 -72
  199. modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
  200. modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
  201. modoboa/locale/no/LC_MESSAGES/django.po +82 -74
  202. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
  204. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  205. modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
  206. modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
  207. modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
  208. modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
  209. modoboa/locale/si/LC_MESSAGES/django.po +82 -74
  210. modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
  211. modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
  212. modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
  213. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
  215. modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
  216. modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
  217. modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
  218. modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
  219. modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
  220. modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
  221. modoboa/parameters/api/v2/tests.py +2 -2
  222. modoboa/parameters/api/v2/viewsets.py +2 -0
  223. modoboa/policyd/tests.py +2 -0
  224. modoboa/urls_api_v2.py +6 -0
  225. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
  226. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/RECORD +231 -181
  227. modoboa/frontend_dist/assets/AccountAliasForm-BV6KvTu6.js +0 -1
  228. modoboa/frontend_dist/assets/AccountEditView-DDOFyfBD.js +0 -1
  229. modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +0 -1
  230. modoboa/frontend_dist/assets/AccountPasswordSubForm-D9S6LaeH.js +0 -1
  231. modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +0 -1
  232. modoboa/frontend_dist/assets/AddressBook-DCJxL8SU.js +0 -1
  233. modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +0 -1
  234. modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
  235. modoboa/frontend_dist/assets/AlarmsView-C0bqC4PA.js +0 -1
  236. modoboa/frontend_dist/assets/AliasEditView-DVoWoCGY.js +0 -1
  237. modoboa/frontend_dist/assets/AliasView-DrONZXOh.js +0 -1
  238. modoboa/frontend_dist/assets/AuditTrailView-OTkoZaMU.js +0 -1
  239. modoboa/frontend_dist/assets/CalendarView-CqF4_Ui9.js +0 -1
  240. modoboa/frontend_dist/assets/ComposeEmailForm-DO5_GB3e.js +0 -1
  241. modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +0 -1
  242. modoboa/frontend_dist/assets/ConfirmDialog-BBcgdAnO.js +0 -1
  243. modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +0 -1
  244. modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +0 -1
  245. modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +0 -1
  246. modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +0 -1
  247. modoboa/frontend_dist/assets/DomainEditView-CQjKwYxl.js +0 -1
  248. modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +0 -5
  249. modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +0 -1
  250. modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
  251. modoboa/frontend_dist/assets/EmailField-C8umy0EU.js +0 -1
  252. modoboa/frontend_dist/assets/EmailView-ki7uEQPD.js +0 -1
  253. modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +0 -1
  254. modoboa/frontend_dist/assets/FiltersView-FYFZxG4B.js +0 -1
  255. modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +0 -1
  256. modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +0 -1
  257. modoboa/frontend_dist/assets/InformationView-D1h38POt.js +0 -1
  258. modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
  259. modoboa/frontend_dist/assets/MailboxView-IlrLWm_H.js +0 -1
  260. modoboa/frontend_dist/assets/MenuItems-BAtHWzAE.js +0 -1
  261. modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +0 -1
  262. modoboa/frontend_dist/assets/MigrationsView-DKNOsVzF.js +0 -1
  263. modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +0 -1
  264. modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +0 -1
  265. modoboa/frontend_dist/assets/ProviderEditView-CyxCWTST.js +0 -1
  266. modoboa/frontend_dist/assets/ProviderGeneralForm-BYPjNHqB.js +0 -1
  267. modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +0 -1
  268. modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +0 -1
  269. modoboa/frontend_dist/assets/ResourcesForm-CuUvrOdY.js +0 -1
  270. modoboa/frontend_dist/assets/StatisticsView-BN7QsZMT.js +0 -1
  271. modoboa/frontend_dist/assets/TimeSerieChart-BMN8BeFZ.js +0 -1
  272. modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +0 -1
  273. modoboa/frontend_dist/assets/VAlert-DIQTrRif.js +0 -1
  274. modoboa/frontend_dist/assets/VApp-CpkYA7js.js +0 -1
  275. modoboa/frontend_dist/assets/VAutocomplete-C4IpXyl8.js +0 -1
  276. modoboa/frontend_dist/assets/VAvatar-Lpb-Dion.js +0 -1
  277. modoboa/frontend_dist/assets/VCard-er_isjE_.js +0 -1
  278. modoboa/frontend_dist/assets/VCheckbox-D-u8JXP1.js +0 -1
  279. modoboa/frontend_dist/assets/VChip-B4iSpj8_.js +0 -1
  280. modoboa/frontend_dist/assets/VColorPicker-BAjGDsXv.js +0 -1
  281. modoboa/frontend_dist/assets/VDataTable-4JRjbtgF.js +0 -1
  282. modoboa/frontend_dist/assets/VDataTableServer-tIDT1m3-.js +0 -1
  283. modoboa/frontend_dist/assets/VDataTableVirtual-BlnO18u_.js +0 -1
  284. modoboa/frontend_dist/assets/VExpansionPanels-CwGtXDhr.js +0 -1
  285. modoboa/frontend_dist/assets/VFileInput-D1_7ZkO_.js +0 -1
  286. modoboa/frontend_dist/assets/VForm-DAkW4nfy.js +0 -1
  287. modoboa/frontend_dist/assets/VMenu-BPFJwj2f.js +0 -1
  288. modoboa/frontend_dist/assets/VPicker-CfT82M8N.js +0 -1
  289. modoboa/frontend_dist/assets/VProgressCircular-w75-3ogi.js +0 -1
  290. modoboa/frontend_dist/assets/VRadioGroup-0j6DNC_k.js +0 -1
  291. modoboa/frontend_dist/assets/VSelect-Cs4ARbAS.js +0 -1
  292. modoboa/frontend_dist/assets/VSelectionControl-Dg-XyRRS.js +0 -1
  293. modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +0 -1
  294. modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +0 -1
  295. modoboa/frontend_dist/assets/VSwitch-Cs1NQrmk.js +0 -1
  296. modoboa/frontend_dist/assets/VTable-CNz2SGk4.js +0 -1
  297. modoboa/frontend_dist/assets/VTabs-B1fyVn4M.js +0 -1
  298. modoboa/frontend_dist/assets/VTextField-BdyvgvkG.js +0 -1
  299. modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
  300. modoboa/frontend_dist/assets/VTextarea-DnOMpe0Q.js +0 -1
  301. modoboa/frontend_dist/assets/VToolbar-BiCiBxBJ.js +0 -1
  302. modoboa/frontend_dist/assets/VWindowItem-ChWm_kz3.js +0 -1
  303. modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +0 -1
  304. modoboa/frontend_dist/assets/forwardRefs-Dvjn_Xq4.js +0 -1
  305. modoboa/frontend_dist/assets/global.store-BaiD63EN.js +0 -1
  306. modoboa/frontend_dist/assets/index-I1VDlN4g.js +0 -984
  307. modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +0 -1
  308. modoboa/frontend_dist/assets/permissions-CITHLHVg.js +0 -1
  309. modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +0 -1
  310. {modoboa-2.4.11.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
  311. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
  312. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
  313. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
  314. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
@@ -15,26 +15,23 @@ msgid ""
15
15
  msgstr ""
16
16
  "Project-Id-Version: Modoboa\n"
17
17
  "Report-Msgid-Bugs-To: \n"
18
- "POT-Creation-Date: 2025-07-27 10:50+0200\n"
18
+ "POT-Creation-Date: 2025-08-28 09:41+0200\n"
19
19
  "PO-Revision-Date: 2021-07-09 07:40+0000\n"
20
20
  "Last-Translator: KrystianPlichta <polandtorros@gmail.com>\n"
21
- "Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
22
- "language/pl_PL/)\n"
21
+ "Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/language/pl_PL/)\n"
23
22
  "Language: pl_PL\n"
24
23
  "MIME-Version: 1.0\n"
25
24
  "Content-Type: text/plain; charset=UTF-8\n"
26
25
  "Content-Transfer-Encoding: 8bit\n"
27
- "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && "
28
- "(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
29
- "n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
26
+ "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
30
27
 
31
28
  #: admin/api/v1/serializers.py:39
32
29
  msgid ""
33
30
  "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
34
31
  "A value of 0 means no quota."
35
32
  msgstr ""
36
- "Miejsce dzielone między skrzynki. Może być wyrażone w KB, MB (domyślnie) lub "
37
- "GB. Wartość 0 oznacza brak limitu."
33
+ "Miejsce dzielone między skrzynki. Może być wyrażone w KB, MB (domyślnie) lub"
34
+ " GB. Wartość 0 oznacza brak limitu."
38
35
 
39
36
  #: admin/api/v1/serializers.py:46
40
37
  msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
@@ -42,69 +39,70 @@ msgstr ""
42
39
  "Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak "
43
40
  "ograniczenia."
44
41
 
45
- #: admin/api/v1/serializers.py:88
42
+ #: admin/api/v1/serializers.py:94
46
43
  #, fuzzy
47
44
  msgid "domain alias with this name already exists"
48
45
  msgstr "Alias z taką nazwą już istnieje"
49
46
 
50
- #: admin/api/v1/serializers.py:98
47
+ #: admin/api/v1/serializers.py:104
51
48
  msgid "No authorized MX record found for this domain"
52
49
  msgstr "Nie znaleziono autoryzowanych dla tej domeny rekordów MX "
53
50
 
54
- #: admin/api/v1/serializers.py:116
51
+ #: admin/api/v1/serializers.py:122
55
52
  msgid "Cannot be greater than domain quota"
56
53
  msgstr "Nie może być wyższa niż limit domeny"
57
54
 
58
- #: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
59
- #: admin/api/v2/serializers.py:548 admin/models/alias.py:44
55
+ #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
56
+ #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
60
57
  msgid "Permission denied."
61
58
  msgstr "Odmowa dostępu"
62
59
 
63
- #: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
64
- #: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
65
- #: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
60
+ #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
61
+ #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
62
+ #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
66
63
  #: transport/backends.py:40
67
64
  msgid "This field is required"
68
65
  msgstr "To pole jest obowiązkowe"
69
66
 
70
- #: admin/api/v1/serializers.py:236
67
+ #: admin/api/v1/serializers.py:243
71
68
  msgid ""
72
69
  "List of administered domains (resellers and domain administrators only)."
73
70
  msgstr ""
74
71
  "Lista administratorów domen (tylko resellerów i administratorów domen)."
75
72
 
76
- #: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
73
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
77
74
  msgid "Not allowed for this role."
78
75
  msgstr "Niedozwolone dla tej roli."
79
76
 
80
- #: admin/api/v1/serializers.py:348
77
+ #: admin/api/v1/serializers.py:355
81
78
  msgid "Must be equal to mailbox full_address"
82
79
  msgstr "Musi być równe z full_address skrzynki."
83
80
 
84
- #: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
81
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
85
82
  #: calendars/serializers.py:175 calendars/serializers.py:177
83
+ #: pdfcredentials/api/v2/serializers.py:91
86
84
  msgid "This field is required."
87
85
  msgstr "To pole jest wymagane"
88
86
 
89
- #: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
87
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
90
88
  msgid "Local domain {} does not exist"
91
89
  msgstr "Lokalna domena {} nie istnieje"
92
90
 
93
- #: admin/api/v1/serializers.py:492
91
+ #: admin/api/v1/serializers.py:499
94
92
  msgid "A list of recipient"
95
93
  msgstr "Lista odbiorców"
96
94
 
97
- #: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
95
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
98
96
  #, fuzzy
99
97
  #| msgid "User '%s' already exists"
100
98
  msgid "This alias already exists"
101
99
  msgstr "Użytkownik '%s' już istnieje"
102
100
 
103
- #: admin/api/v1/serializers.py:544
101
+ #: admin/api/v1/serializers.py:551
104
102
  msgid "You don't have access to this domain."
105
103
  msgstr "Nie masz dostępu do tej domeny."
106
104
 
107
- #: admin/api/v1/serializers.py:553
105
+ #: admin/api/v1/serializers.py:560
108
106
  msgid "You don't have access to this mailbox."
109
107
  msgstr "Nie masz dostępu do tej skrzynki."
110
108
 
@@ -112,58 +110,58 @@ msgstr "Nie masz dostępu do tej skrzynki."
112
110
  msgid "Here is your new Modoboa password: {}"
113
111
  msgstr "Twoje nowe hasło do Modoboa to: {}"
114
112
 
115
- #: admin/api/v2/serializers.py:80
113
+ #: admin/api/v2/serializers.py:82
116
114
  msgid "DKIM keys storage directory not configured"
117
115
  msgstr "Katalog przechowywania kluczy DKIM nie został skonfigurowany"
118
116
 
119
- #: admin/api/v2/serializers.py:92
117
+ #: admin/api/v2/serializers.py:94
120
118
  msgid "This field is valid when type is relaydomain"
121
119
  msgstr ""
122
120
 
123
- #: admin/api/v2/serializers.py:99
121
+ #: admin/api/v2/serializers.py:101
124
122
  msgid "You can't define an unlimited quota."
125
123
  msgstr "Nie możesz przypisać nielimitowanej przestrzeni"
126
124
 
127
- #: admin/api/v2/serializers.py:133
125
+ #: admin/api/v2/serializers.py:135
128
126
  #, python-format
129
127
  msgid "User '%s' already exists"
130
128
  msgstr "Użytkownik '%s' już istnieje"
131
129
 
132
- #: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
130
+ #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
133
131
  msgid "Must be a positive integer"
134
132
  msgstr "Musi być liczbą całkowitą dodatnią"
135
133
 
136
- #: admin/api/v2/serializers.py:263
134
+ #: admin/api/v2/serializers.py:265
137
135
  msgid "openssl not found, please make sure it is installed."
138
136
  msgstr "Brak openssl , upewnij się że jest zainstalowany."
139
137
 
140
- #: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
138
+ #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
141
139
  msgid "Directory not found."
142
140
  msgstr "Katalog nie znaleziony."
143
141
 
144
- #: admin/api/v2/serializers.py:277
142
+ #: admin/api/v2/serializers.py:279
145
143
  msgid "This field only allows valid IP addresses (or networks)"
146
144
  msgstr ""
147
145
 
148
- #: admin/api/v2/serializers.py:290
146
+ #: admin/api/v2/serializers.py:292
149
147
  msgid "Please disable imap migration before disabling this option."
150
148
  msgstr ""
151
149
 
152
- #: admin/api/v2/serializers.py:303
150
+ #: admin/api/v2/serializers.py:305
153
151
  msgid "Define at least one authorized network / address"
154
152
  msgstr "Zdefiniuj przynajmniej jedną autoryzowaną sieć / adres"
155
153
 
156
- #: admin/api/v2/serializers.py:565
154
+ #: admin/api/v2/serializers.py:581
157
155
  msgid "The left part of an email address can't be more than 64 characters."
158
156
  msgstr ""
159
157
 
160
- #: admin/api/v2/serializers.py:587
158
+ #: admin/api/v2/serializers.py:603
161
159
  #, fuzzy
162
160
  #| msgid "A mailbox is required"
163
161
  msgid "A mailbox is required to create aliases."
164
162
  msgstr "Skrzynka jest obowiązkowa"
165
163
 
166
- #: admin/api/v2/serializers.py:751
164
+ #: admin/api/v2/serializers.py:772
167
165
  #, fuzzy
168
166
  #| msgid "Unknown"
169
167
  msgid "Unknown status"
@@ -177,14 +175,6 @@ msgstr "Nie masz uprawnień dla tej domeny"
177
175
  msgid "You can't delete your own domain"
178
176
  msgstr "Nie możesz usunąć swoje własnej domeny"
179
177
 
180
- #: admin/api/v2/viewsets.py:407
181
- msgid "No alarm ID provided"
182
- msgstr ""
183
-
184
- #: admin/api/v2/viewsets.py:411
185
- msgid "Received invalid alarm id(s)"
186
- msgstr ""
187
-
188
178
  #: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
189
179
  msgid "Domains"
190
180
  msgstr "Domeny"
@@ -203,11 +193,11 @@ msgstr "Poprawne MXy"
203
193
 
204
194
  #: admin/app_settings.py:37
205
195
  msgid ""
206
- "A list of IP or network address every MX record should match. A warning will "
207
- "be sent if a record does not respect it."
196
+ "A list of IP or network address every MX record should match. A warning will"
197
+ " be sent if a record does not respect it."
208
198
  msgstr ""
209
- "Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie "
210
- "wysłany w przypadku błędu."
199
+ "Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie"
200
+ " wysłany w przypadku błędu."
211
201
 
212
202
  #: admin/app_settings.py:47
213
203
  msgid "New domains must use authorized MX(s)"
@@ -291,8 +281,8 @@ msgid ""
291
281
  "sure this directory belongs to root user and is not readable by the outside "
292
282
  "world."
293
283
  msgstr ""
294
- "Ścieżka bezwzględna do katalogu w którym będą trzymane klucze prywatne DKIM. "
295
- "Upewnij się że właścicielem katalogu jest \"użytkownik root\" i że katalog "
284
+ "Ścieżka bezwzględna do katalogu w którym będą trzymane klucze prywatne DKIM."
285
+ " Upewnij się że właścicielem katalogu jest \"użytkownik root\" i że katalog "
296
286
  "nie jest publicznie dostępny do odczytu."
297
287
 
298
288
  #: admin/app_settings.py:137
@@ -324,8 +314,8 @@ msgid ""
324
314
  "Number of messages freshly created domains will be allowed to send per day. "
325
315
  "Leave empty for no limit."
326
316
  msgstr ""
327
- "Liczba wiadomości, które świeżo utworzone domeny będą mogły wysłać dziennie. "
328
- "Pozostaw puste dla braku limitu."
317
+ "Liczba wiadomości, które świeżo utworzone domeny będą mogły wysłać dziennie."
318
+ " Pozostaw puste dla braku limitu."
329
319
 
330
320
  #: admin/app_settings.py:170 limits/app_settings.py:61
331
321
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
@@ -341,8 +331,8 @@ msgid ""
341
331
  "Rename or remove mailboxes on the filesystem when they get renamed or "
342
332
  "removed within Modoboa"
343
333
  msgstr ""
344
- "Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub "
345
- "usuniętę przez Modoboa"
334
+ "Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub"
335
+ " usuniętę przez Modoboa"
346
336
 
347
337
  #: admin/app_settings.py:186 admin/models/domain.py:36
348
338
  msgid "Default mailbox quota"
@@ -351,8 +341,8 @@ msgstr "Domyślna przestrzeń dla konta pocztowego"
351
341
  #: admin/app_settings.py:188
352
342
  #, fuzzy
353
343
  #| msgid ""
354
- #| "Default mailbox quota (in MB) applied to freshly created mailboxes with "
355
- #| "no value specified. A value of 0 means no quota."
344
+ #| "Default mailbox quota (in MB) applied to freshly created mailboxes with no "
345
+ #| "value specified. A value of 0 means no quota."
356
346
  msgid ""
357
347
  "Default mailbox quota (in MB) applied to freshly created domains with no "
358
348
  "value specified. A value of 0 means no quota."
@@ -385,7 +375,8 @@ msgid "Automatic domain/mailbox creation"
385
375
  msgstr "Automatyczne tworzenie domeny/skrzynki"
386
376
 
387
377
  #: admin/app_settings.py:221
388
- msgid "Create a domain and a mailbox when an account is automatically created."
378
+ msgid ""
379
+ "Create a domain and a mailbox when an account is automatically created."
389
380
  msgstr "Utwórz domenę i skrzynkę gdy tworzone jest konto"
390
381
 
391
382
  #: admin/app_settings.py:230
@@ -396,7 +387,7 @@ msgstr "Utwórz alias podczas zmiany nazwy skrzynki"
396
387
  msgid "Create an alias using the old address when a mailbox is renamed."
397
388
  msgstr "Utwórz alias używając starego adresu podczas zmiany nazwy skrzynki."
398
389
 
399
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:162
390
+ #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
400
391
  msgid "Administration"
401
392
  msgstr "Administracja"
402
393
 
@@ -425,7 +416,7 @@ msgstr "alias domeny"
425
416
  msgid "Account import failed (%s): domain does not exist"
426
417
  msgstr "Błąd importu (%s): domena nie istnieje"
427
418
 
428
- #: admin/handlers.py:242 admin/models/mailbox.py:340
419
+ #: admin/handlers.py:242 admin/models/mailbox.py:342
429
420
  msgid "Mailbox {} already exists"
430
421
  msgstr "Skrzynka {} już istnieje"
431
422
 
@@ -461,8 +452,8 @@ msgstr "Znaleziono nie działające serwery nazw"
461
452
  #, python-format
462
453
  msgid "DNS resolution timeout, unable to query %s at the moment"
463
454
  msgstr ""
464
- "Upłynąć czas na rozwiązanie nazwy w DNS, w tym momencie nie potrafię odpytać "
465
- "%s"
455
+ "Upłynąć czas na rozwiązanie nazwy w DNS, w tym momencie nie potrafię odpytać"
456
+ " %s"
466
457
 
467
458
  #: admin/lib.py:236
468
459
  msgid "DNS name is too long: {}"
@@ -625,8 +616,8 @@ msgstr "Włącz podpisywanie DKIM"
625
616
  msgid ""
626
617
  "If you activate this feature, a DKIM key will be generated for this domain."
627
618
  msgstr ""
628
- "Jeśli włączysz tą funkcjonalność, dla tej domeny zostanie wygenerowany klucz "
629
- "DKIM"
619
+ "Jeśli włączysz tą funkcjonalność, dla tej domeny zostanie wygenerowany klucz"
620
+ " DKIM"
630
621
 
631
622
  #: admin/models/domain.py:70
632
623
  msgid "Key length"
@@ -702,7 +693,7 @@ msgstr "Limit jest wymagany"
702
693
  msgid "{}: domain quota exceeded"
703
694
  msgstr "Przekroczono limit przydziału"
704
695
 
705
- #: admin/models/mailbox.py:308
696
+ #: admin/models/mailbox.py:310
706
697
  msgid "Domain does not exist"
707
698
  msgstr "Domena nie istnieje"
708
699
 
@@ -771,14 +762,16 @@ msgstr "Ogólne"
771
762
 
772
763
  #: autoreply/app_settings.py:18
773
764
  #, fuzzy
774
- #| msgid "Timeout in seconds between two auto-replies to the same recipient"
765
+ #| msgid ""
766
+ #| "Timeout in seconds between two auto-replies to the same recipient"
775
767
  msgid "Period between two auto-replies"
776
768
  msgstr ""
777
769
  "Limit w sek. pomiędzie dwiema auto-odpowiedziami dla tego samego odbiorcy"
778
770
 
779
771
  #: autoreply/app_settings.py:20
780
772
  #, fuzzy
781
- #| msgid "Timeout in seconds between two auto-replies to the same recipient"
773
+ #| msgid ""
774
+ #| "Timeout in seconds between two auto-replies to the same recipient"
782
775
  msgid ""
783
776
  "Number of days to wait before sending a new auto-reply to the same recipient"
784
777
  msgstr ""
@@ -885,7 +878,7 @@ msgid ""
885
878
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
886
879
  msgstr ""
887
880
 
888
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
881
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
889
882
  msgid "Calendars"
890
883
  msgstr ""
891
884
 
@@ -925,7 +918,7 @@ msgstr "Częstotliwość synchronizacji"
925
918
  msgid "Interval in seconds between 2 synchronization requests"
926
919
  msgstr "Odstęp pomiędzy synchronizacjami, w sekundach"
927
920
 
928
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
921
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
929
922
  #, fuzzy
930
923
  #| msgid "Domains"
931
924
  msgid "Contacts"
@@ -977,12 +970,12 @@ msgstr "Nieprawidłowy kod PIN"
977
970
  msgid "2FA is already enabled"
978
971
  msgstr "2FA jest już włączone"
979
972
 
980
- #: core/api/v1/serializers.py:87
973
+ #: core/api/v1/serializers.py:86
981
974
  #, python-format
982
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
975
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
983
976
  msgstr ""
984
977
 
985
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
978
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
986
979
  #, fuzzy
987
980
  #| msgid "Old password"
988
981
  msgid "Invalid password"
@@ -996,44 +989,45 @@ msgstr "2FA nie jest włączone"
996
989
  msgid "Local"
997
990
  msgstr "Lokalnie"
998
991
 
999
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
992
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
1000
993
  msgid "User profile"
1001
994
  msgstr "Profil użytkownika"
1002
995
 
1003
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
1004
- #: core/api/v2/serializers.py:208
996
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
997
+ #: core/api/v2/serializers.py:228
1005
998
  msgid "Invalid syntax"
1006
999
  msgstr "Nieprawidłowa składnia"
1007
1000
 
1008
- #: core/api/v2/serializers.py:213
1001
+ #: core/api/v2/serializers.py:233
1009
1002
  msgid "Invalid rounds number"
1010
1003
  msgstr "Nieprawidłowa liczba rund"
1011
1004
 
1012
- #: core/api/v2/serializers.py:413 core/forms.py:81
1005
+ #: core/api/v2/serializers.py:433 core/forms.py:81
1013
1006
  msgid "This code is invalid"
1014
1007
  msgstr "Ten kod jest nieprawidłowy"
1015
1008
 
1016
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
1009
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194
1010
+ #: core/views/auth.py:247
1017
1011
  msgid "Please use the following code to recover your Modoboa password: {}"
1018
1012
  msgstr "Proszę użyć następującego kodu, aby odzyskać hasło Modoboa: {}"
1019
1013
 
1020
- #: core/api/v2/viewsets.py:164
1014
+ #: core/api/v2/viewsets.py:176
1021
1015
  #, fuzzy
1022
1016
  #| msgid "Administration"
1023
1017
  msgid "Administration console"
1024
1018
  msgstr "Administracja"
1025
1019
 
1026
- #: core/api/v2/viewsets.py:174
1027
- msgid "Calendar"
1028
- msgstr ""
1029
-
1030
- #: core/api/v2/viewsets.py:181
1020
+ #: core/api/v2/viewsets.py:187
1031
1021
  #, fuzzy
1032
1022
  #| msgid "Address"
1033
1023
  msgid "Address book"
1034
1024
  msgstr "Książka adresowa"
1035
1025
 
1036
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
1026
+ #: core/api/v2/viewsets.py:197
1027
+ msgid "Calendar"
1028
+ msgstr ""
1029
+
1030
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1037
1031
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
1038
1032
  #, fuzzy
1039
1033
  #| msgid "E-mail"
@@ -1224,11 +1218,11 @@ msgstr "Administrator grup"
1224
1218
 
1225
1219
  #: core/app_settings.py:239
1226
1220
  msgid ""
1227
- "Members of those LDAP Posix groups will be created as domain administrators. "
1228
- "Use ';' characters to separate groups."
1221
+ "Members of those LDAP Posix groups will be created as domain administrators."
1222
+ " Use ';' characters to separate groups."
1229
1223
  msgstr ""
1230
- "Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. "
1231
- "Użyj znaku ';' jako separatora grup."
1224
+ "Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny."
1225
+ " Użyj znaku ';' jako separatora grup."
1232
1226
 
1233
1227
  #: core/app_settings.py:248
1234
1228
  msgid "Group type"
@@ -1328,7 +1322,8 @@ msgstr "Włącz export do LDAP"
1328
1322
  #: core/app_settings.py:380
1329
1323
  msgid ""
1330
1324
  "Enable automatic synchronization between local database and LDAP directory"
1331
- msgstr "Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP"
1325
+ msgstr ""
1326
+ "Włącz automatyczną synchronizację lokalnej bazy danych i katalogu LDAP"
1332
1327
 
1333
1328
  #: core/app_settings.py:389
1334
1329
  msgid "Delete remote LDAP account when local account is deleted"
@@ -1339,8 +1334,8 @@ msgid ""
1339
1334
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1340
1335
  "be disabled."
1341
1336
  msgstr ""
1342
- "Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne, w innym "
1343
- "przypadku zostanie ono wyłączone."
1337
+ "Skasuj konto na zdalnym LDAP kiedy zostanie skasowane konto lokalne, w innym"
1338
+ " przypadku zostanie ono wyłączone."
1344
1339
 
1345
1340
  #: core/app_settings.py:401
1346
1341
  msgid "Account DN template"
@@ -1352,8 +1347,8 @@ msgid ""
1352
1347
  "The template used to construct an account's DN. It should contain one "
1353
1348
  "placeholder (ie. %(user)s)"
1354
1349
  msgstr ""
1355
- "Szablon używany do budowy DN konta. Powinien zawierać jeden placeholder (ie. "
1356
- "%(user)s)"
1350
+ "Szablon używany do budowy DN konta. Powinien zawierać jeden placeholder (ie."
1351
+ " %(user)s)"
1357
1352
 
1358
1353
  #: core/app_settings.py:412
1359
1354
  msgid "Enable import from LDAP"
@@ -1378,7 +1373,8 @@ msgstr "Włącz synchronizację Dovecot LDAP"
1378
1373
  #: core/app_settings.py:457
1379
1374
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1380
1375
  msgstr ""
1381
- "Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji Dovecot."
1376
+ "Ustawienia uwierzytelniania LDAP zostaną zastosowane do konfiguracji "
1377
+ "Dovecot."
1382
1378
 
1383
1379
  #: core/app_settings.py:465
1384
1380
  msgid "Dovecot LDAP config file"
@@ -1419,14 +1415,16 @@ msgstr ""
1419
1415
 
1420
1416
  #: core/app_settings.py:506
1421
1417
  #, fuzzy
1422
- #| msgid "Display custom RSS feed to resellers and domain administrators"
1418
+ #| msgid ""
1419
+ #| "Display custom RSS feed to resellers and domain administrators"
1423
1420
  msgid "Display custom RSS feed to super admins"
1424
1421
  msgstr ""
1425
1422
  "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen"
1426
1423
 
1427
1424
  #: core/app_settings.py:509
1428
1425
  #, fuzzy
1429
- #| msgid "Display custom RSS feed to resellers and domain administrators"
1426
+ #| msgid ""
1427
+ #| "Display custom RSS feed to resellers and domain administrators"
1430
1428
  msgid "Display custom RSS feed also to super administrators"
1431
1429
  msgstr ""
1432
1430
  "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen"
@@ -1536,7 +1534,8 @@ msgstr "Wyślij statystyki"
1536
1534
  #: core/app_settings.py:664
1537
1535
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1538
1536
  msgstr ""
1539
- "Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)"
1537
+ "Prześlij statystyki do publicznego API Modoboa (licznik i użyte "
1538
+ "rozszerzenia)"
1540
1539
 
1541
1540
  #: core/app_settings.py:683
1542
1541
  #, fuzzy
@@ -1546,8 +1545,8 @@ msgstr "Próg nieaktywności konta"
1546
1545
 
1547
1546
  #: core/app_settings.py:686
1548
1547
  msgid ""
1549
- "Allow the administrator to set a threshold (in days) beyond which an account "
1550
- "is considered inactive if the user hasn't logged in"
1548
+ "Allow the administrator to set a threshold (in days) beyond which an account"
1549
+ " is considered inactive if the user hasn't logged in"
1551
1550
  msgstr ""
1552
1551
 
1553
1552
  #: core/app_settings.py:695
@@ -1556,8 +1555,8 @@ msgstr "Próg nieaktywności konta"
1556
1555
 
1557
1556
  #: core/app_settings.py:698
1558
1557
  msgid ""
1559
- "An account with a last login date greater than this threshold (in days) will "
1560
- "be considered as inactive"
1558
+ "An account with a last login date greater than this threshold (in days) will"
1559
+ " be considered as inactive"
1561
1560
  msgstr ""
1562
1561
  "Konto z datą ostatniego logowania większą niż podany próg (w dniach) "
1563
1562
  "zostanie uznane za nieaktywne. "
@@ -1578,19 +1577,27 @@ msgstr "Max wiek wpisu w logu"
1578
1577
  msgid "The maximum age in days of a log record"
1579
1578
  msgstr "Max wiek w dniach dla wpisu w logu"
1580
1579
 
1581
- #: core/app_settings.py:726
1580
+ #: core/app_settings.py:727
1581
+ msgid "Retention time in message history"
1582
+ msgstr ""
1583
+
1584
+ #: core/app_settings.py:730
1585
+ msgid "Retention time (in days) of a message in the message history section"
1586
+ msgstr ""
1587
+
1588
+ #: core/app_settings.py:737
1582
1589
  msgid "Items per page"
1583
1590
  msgstr "Elementów na stronie"
1584
1591
 
1585
- #: core/app_settings.py:728
1592
+ #: core/app_settings.py:739
1586
1593
  msgid "Number of displayed items per page"
1587
1594
  msgstr "Liczba wyświetlanych elementów na stronie"
1588
1595
 
1589
- #: core/app_settings.py:735
1596
+ #: core/app_settings.py:746
1590
1597
  msgid "Default top redirection"
1591
1598
  msgstr "Domyślne górne przekierowanie"
1592
1599
 
1593
- #: core/app_settings.py:737
1600
+ #: core/app_settings.py:748
1594
1601
  msgid "The default redirection used when no application is specified"
1595
1602
  msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji"
1596
1603
 
@@ -1626,8 +1633,9 @@ msgstr ""
1626
1633
 
1627
1634
  #: core/checks.py:34
1628
1635
  msgid ""
1629
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1630
- "html#dovecot-oauth2"
1636
+ "Visit : "
1637
+ "https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
1638
+ "oauth2"
1631
1639
  msgstr ""
1632
1640
 
1633
1641
  #: core/checks.py:41
@@ -1638,8 +1646,9 @@ msgstr ""
1638
1646
 
1639
1647
  #: core/checks.py:45
1640
1648
  msgid ""
1641
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1642
- "radicale.html#radicale-oauth2"
1649
+ "Visit : "
1650
+ "https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
1651
+ "oauth2"
1643
1652
  msgstr ""
1644
1653
 
1645
1654
  #: core/constants.py:6
@@ -1955,7 +1964,7 @@ msgstr "Brak"
1955
1964
  #, fuzzy
1956
1965
  #| msgid "Quantity"
1957
1966
  msgid "Quarantine"
1958
- msgstr "Ilość"
1967
+ msgstr "Kwarantanna"
1959
1968
 
1960
1969
  #: dmarc/models.py:12
1961
1970
  #, fuzzy
@@ -2148,20 +2157,14 @@ msgstr ""
2148
2157
  #: imap_migration/app_settings.py:76
2149
2158
  msgid ""
2150
2159
  "A comma seperated list of folders to explicitly include in sync even if "
2151
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
2152
- "personal "
2160
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
2161
+ "debian.personal "
2153
2162
  msgstr ""
2154
2163
 
2155
2164
  #: imap_migration/apps.py:20
2156
2165
  msgid "IMAP Migration"
2157
2166
  msgstr ""
2158
2167
 
2159
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
2160
- #, fuzzy, python-brace-format
2161
- #| msgid "Connection to IMAP server failed: %s"
2162
- msgid "Connection to IMAP server failed: {error}"
2163
- msgstr "Błąd połączenia do serwera IMAP: %s"
2164
-
2165
2168
  #: imap_migration/checks.py:12
2166
2169
  msgid ""
2167
2170
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2244,16 +2247,16 @@ msgid ""
2244
2247
  "Maximum number of allowed domain administrators for a new administrator. (0 "
2245
2248
  "to deny any creation, -1 to allow unlimited creations)"
2246
2249
  msgstr ""
2247
- "Maksymalna dozwolona liczba administratorów domen dla nowego administratora. "
2248
- "(0 - tworzenie niedozwolone, -1 nielimitowana ilość)"
2250
+ "Maksymalna dozwolona liczba administratorów domen dla nowego administratora."
2251
+ " (0 - tworzenie niedozwolone, -1 nielimitowana ilość)"
2249
2252
 
2250
2253
  #: limits/app_settings.py:41
2251
2254
  msgid ""
2252
2255
  "Maximum number of allowed domains for a new administrator. (0 to deny any "
2253
2256
  "creation, -1 to allow unlimited creations)"
2254
2257
  msgstr ""
2255
- "Maksymalna dozwolona ilość domen dla nowego administratora. (0 dla tworzenie "
2256
- "niedozwolone, -1 nielimitowana ilość)"
2258
+ "Maksymalna dozwolona ilość domen dla nowego administratora. (0 dla tworzenie"
2259
+ " niedozwolone, -1 nielimitowana ilość)"
2257
2260
 
2258
2261
  #: limits/app_settings.py:49 limits/app_settings.py:123 limits/constants.py:22
2259
2262
  #: limits/constants.py:76
@@ -2262,8 +2265,8 @@ msgstr "Aliasy domen"
2262
2265
 
2263
2266
  #: limits/app_settings.py:52
2264
2267
  msgid ""
2265
- "Maximum number of allowed domain aliases for a new administrator. (0 to deny "
2266
- "any creation, -1 to allow unlimited creations)"
2268
+ "Maximum number of allowed domain aliases for a new administrator. (0 to deny"
2269
+ " any creation, -1 to allow unlimited creations)"
2267
2270
  msgstr ""
2268
2271
  "Maksymalna dozwolona ilość aliasów domen dla nowego administratora. (0 dla "
2269
2272
  "tworzenie niedozwolone, -1 nielimitowana ilość)"
@@ -2315,8 +2318,8 @@ msgstr "Włącz lub wyłącz limity na domenę"
2315
2318
 
2316
2319
  #: limits/app_settings.py:114
2317
2320
  msgid ""
2318
- "Maximum number of allowed domain administrators for a new domain. (0 to deny "
2319
- "any creation, -1 to allow unlimited creations)"
2321
+ "Maximum number of allowed domain administrators for a new domain. (0 to deny"
2322
+ " any creation, -1 to allow unlimited creations)"
2320
2323
  msgstr ""
2321
2324
  "Max liczba administratrów nowej domeny. (0 tworzenie niedozwolone, -1 dla "
2322
2325
  "braku limitu)"
@@ -2339,8 +2342,8 @@ msgstr ""
2339
2342
 
2340
2343
  #: limits/app_settings.py:149
2341
2344
  msgid ""
2342
- "Maximum number of allowed aliases for a new domain. (0 to deny any creation, "
2343
- "-1 to allow unlimited creations)"
2345
+ "Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
2346
+ " -1 to allow unlimited creations)"
2344
2347
  msgstr ""
2345
2348
  "Max liczba aliasów dla nowej domeny. (0 tworzenie niedozwolone, -1 "
2346
2349
  "nielimitowana ilość)"
@@ -2507,13 +2510,13 @@ msgstr "Konta"
2507
2510
  msgid "Personal account information"
2508
2511
  msgstr "Informacje o koncie osobistym"
2509
2512
 
2510
- #: pdfcredentials/api/v2/serializers.py:81
2513
+ #: pdfcredentials/api/v2/serializers.py:86
2511
2514
  #, fuzzy
2512
2515
  #| msgid "Directory not found."
2513
2516
  msgid "Directory is not writable"
2514
2517
  msgstr "Katalog nie znaleziony."
2515
2518
 
2516
- #: pdfcredentials/api/v2/serializers.py:102
2519
+ #: pdfcredentials/api/v2/serializers.py:114
2517
2520
  msgid "No document available for this user"
2518
2521
  msgstr "Brak dokumentu dla tego użytkownika"
2519
2522
 
@@ -2554,7 +2557,8 @@ msgid ""
2554
2557
  "Automatically delete a document just after its first download from this "
2555
2558
  "interface"
2556
2559
  msgstr ""
2557
- "Automatycznie usuwaj dokumenty jak tylko zostaną pobranie przez ten interfejs"
2560
+ "Automatycznie usuwaj dokumenty jak tylko zostaną pobranie przez ten "
2561
+ "interfejs"
2558
2562
 
2559
2563
  #: pdfcredentials/app_settings.py:68
2560
2564
  msgid "Generate documents only at account creation"
@@ -2566,7 +2570,8 @@ msgid ""
2566
2570
  "new document will be created each time a password is updated."
2567
2571
  msgstr ""
2568
2572
  "Generuj nowy dokument tylko wtedy, kiedy nowe konto jest zakładane. Jeśli "
2569
- "ustawione na nie, to nowy dokument będzie tworzony przy każdej zmianie hasła."
2573
+ "ustawione na nie, to nowy dokument będzie tworzony przy każdej zmianie "
2574
+ "hasła."
2570
2575
 
2571
2576
  #: pdfcredentials/app_settings.py:84
2572
2577
  msgid "Customization options"
@@ -2669,9 +2674,7 @@ msgid ""
2669
2674
  "the document as soon as possible.\n"
2670
2675
  msgstr ""
2671
2676
  "\n"
2672
- "Drogi użytkowniku %s, ten dokument zawiera dane uwierzytelniające które "
2673
- "będzeisz potrzebował to połączenia się. Zapoznaj się z nim i usuń go "
2674
- "najszybciej jak to możliwe.\n"
2677
+ "Drogi użytkowniku %s, ten dokument zawiera dane uwierzytelniające które będzeisz potrzebował to połączenia się. Zapoznaj się z nim i usuń go najszybciej jak to możliwe.\n"
2675
2678
 
2676
2679
  #: pdfcredentials/documents.py:95
2677
2680
  msgid "Web panel:"
@@ -2692,8 +2695,7 @@ msgid ""
2692
2695
  "your contacts.\n"
2693
2696
  msgstr ""
2694
2697
  "\n"
2695
- "Pod tym adresem możesz online przeczytać swoje wiadomości, stworzyć filtry "
2696
- "lub zarządzać\n"
2698
+ "Pod tym adresem możesz online przeczytać swoje wiadomości, stworzyć filtry lub zarządzać\n"
2697
2699
  " listą kontaktów.\n"
2698
2700
 
2699
2701
  #: pdfcredentials/documents.py:126
@@ -2722,7 +2724,8 @@ msgstr "Poświadczenia PDF"
2722
2724
 
2723
2725
  #: pdfcredentials/lib.py:29
2724
2726
  #, fuzzy
2725
- #| msgid "Failed to create the directory that will contain PDF documents (%s)"
2727
+ #| msgid ""
2728
+ #| "Failed to create the directory that will contain PDF documents (%s)"
2726
2729
  msgid "Can't write to selected directory to store PDF documents"
2727
2730
  msgstr "Nie można utworzyć katalogu do przechowywania PDF'ów (%s)"
2728
2731
 
@@ -2800,8 +2803,8 @@ msgstr ""
2800
2803
 
2801
2804
  #: rspamd/app_settings.py:21
2802
2805
  msgid ""
2803
- "Absolute path of the file which contains paths to DKIM private keys. Must be "
2804
- "readable by _rspamd group or user."
2806
+ "Absolute path of the file which contains paths to DKIM private keys. Must be"
2807
+ " readable by _rspamd group or user."
2805
2808
  msgstr ""
2806
2809
 
2807
2810
  #: rspamd/app_settings.py:30
@@ -2820,8 +2823,8 @@ msgstr ""
2820
2823
 
2821
2824
  #: rspamd/app_settings.py:53
2822
2825
  msgid ""
2823
- "Location of the rspamd dashboard. Can either be a relative URL (eg. '/"
2824
- "rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
2826
+ "Location of the rspamd dashboard. Can either be a relative URL (eg. "
2827
+ "'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
2825
2828
  "guidance on the Super-Admin dashboard."
2826
2829
  msgstr ""
2827
2830
 
@@ -3134,8 +3137,8 @@ msgstr "Stare hasło"
3134
3137
 
3135
3138
  #: templates/registration/twofactor_code_verify.html:35
3136
3139
  msgid ""
3137
- "Enter the code from the two-factor app on your mobile device. If you've lost "
3138
- "your device, you may enter one of your recovery codes."
3140
+ "Enter the code from the two-factor app on your mobile device. If you've lost"
3141
+ " your device, you may enter one of your recovery codes."
3139
3142
  msgstr ""
3140
3143
 
3141
3144
  #: templates/registration/twofactor_code_verify.html:42
@@ -3147,7 +3150,7 @@ msgstr "Kod weryfikacyjny"
3147
3150
  #: templates/registration/twofactor_code_verify.html:45
3148
3151
  #: templates/registration/twofactor_code_verify.html:51
3149
3152
  msgid "Back"
3150
- msgstr ""
3153
+ msgstr "Wstecz"
3151
3154
 
3152
3155
  #: templates/registration/twofactor_code_verify.html:49
3153
3156
  msgid "Log using Webauthn"
@@ -3220,7 +3223,7 @@ msgstr "Preferowany mechanizm uwierzytelnienia"
3220
3223
 
3221
3224
  #: webmail/app_settings.py:118
3222
3225
  msgid "Display"
3223
- msgstr ""
3226
+ msgstr "Wyświetl"
3224
3227
 
3225
3228
  #: webmail/app_settings.py:124
3226
3229
  msgid "Default message display mode"
@@ -3244,7 +3247,7 @@ msgstr ""
3244
3247
  #, fuzzy
3245
3248
  #| msgid "Number of displayed items per page"
3246
3249
  msgid "Number of displayed emails per page"
3247
- msgstr "Liczba wyświetlanych elementów na stronie"
3250
+ msgstr "Liczba wyświetlanych wiadomości na stronie"
3248
3251
 
3249
3252
  #: webmail/app_settings.py:147
3250
3253
  msgid "Sets the maximum number of messages displayed in a page"
@@ -3342,16 +3345,32 @@ msgstr ""
3342
3345
  msgid "User defined email signature"
3343
3346
  msgstr ""
3344
3347
 
3348
+ #: webmail/exceptions.py:18
3349
+ #, fuzzy
3350
+ #| msgid "Server address"
3351
+ msgid "Server response"
3352
+ msgstr "Adres serwera"
3353
+
3345
3354
  #: webmail/lib/attachments.py:112
3346
3355
  #, fuzzy
3347
3356
  #| msgid "Failed to remove filter"
3348
3357
  msgid "Failed to remove attachment: "
3349
3358
  msgstr "Nie udało się usunąć filtru"
3350
3359
 
3360
+ #: webmail/lib/imapemail.py:272
3361
+ msgid "wrote:"
3362
+ msgstr ""
3363
+
3351
3364
  #: webmail/lib/imapemail.py:306
3352
3365
  msgid "Date"
3353
3366
  msgstr "Data"
3354
3367
 
3368
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3369
+ #, fuzzy
3370
+ #| msgid "sent messages"
3371
+ msgid "Original message"
3372
+ msgstr "Wszystkie wiadomości"
3373
+
3355
3374
  #: webmail/lib/imaputils.py:221
3356
3375
  msgid "Failed to retrieve hierarchy delimiter"
3357
3376
  msgstr "Nie udało się rozpoznać hierarchii separatora"
@@ -3382,3 +3401,7 @@ msgstr ""
3382
3401
  #, python-format
3383
3402
  msgid "Attachment is too big (limit: %s)"
3384
3403
  msgstr ""
3404
+
3405
+ #, fuzzy, python-brace-format
3406
+ #~ msgid "Connection to IMAP server failed: {error}"
3407
+ #~ msgstr "Błąd połączenia do serwera IMAP: %s"