wagtail 7.0.1__py3-none-any.whl → 7.1__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 (1731) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_page.py +8 -7
  3. wagtail/actions/create_alias.py +1 -0
  4. wagtail/admin/apps.py +2 -0
  5. wagtail/admin/checks.py +2 -1
  6. wagtail/admin/filters.py +11 -6
  7. wagtail/admin/forms/account.py +4 -1
  8. wagtail/admin/forms/pages.py +1 -1
  9. wagtail/admin/forms/workflows.py +1 -1
  10. wagtail/admin/locale/af/LC_MESSAGES/djangojs.mo +0 -0
  11. wagtail/admin/locale/ar/LC_MESSAGES/django.mo +0 -0
  12. wagtail/admin/locale/ar/LC_MESSAGES/django.po +2936 -375
  13. wagtail/admin/locale/ar/LC_MESSAGES/djangojs.mo +0 -0
  14. wagtail/admin/locale/ar/LC_MESSAGES/djangojs.po +167 -22
  15. wagtail/admin/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  16. wagtail/admin/locale/be/LC_MESSAGES/django.mo +0 -0
  17. wagtail/admin/locale/be/LC_MESSAGES/django.po +4 -32
  18. wagtail/admin/locale/be/LC_MESSAGES/djangojs.mo +0 -0
  19. wagtail/admin/locale/be/LC_MESSAGES/djangojs.po +8 -2
  20. wagtail/admin/locale/bg/LC_MESSAGES/django.po +1 -1
  21. wagtail/admin/locale/bn/LC_MESSAGES/django.po +1 -1
  22. wagtail/admin/locale/ca/LC_MESSAGES/django.mo +0 -0
  23. wagtail/admin/locale/ca/LC_MESSAGES/django.po +31 -63
  24. wagtail/admin/locale/ca/LC_MESSAGES/djangojs.mo +0 -0
  25. wagtail/admin/locale/ca/LC_MESSAGES/djangojs.po +15 -0
  26. wagtail/admin/locale/cs/LC_MESSAGES/django.mo +0 -0
  27. wagtail/admin/locale/cs/LC_MESSAGES/django.po +6 -39
  28. wagtail/admin/locale/cs/LC_MESSAGES/djangojs.mo +0 -0
  29. wagtail/admin/locale/cs/LC_MESSAGES/djangojs.po +12 -3
  30. wagtail/admin/locale/cy/LC_MESSAGES/django.mo +0 -0
  31. wagtail/admin/locale/cy/LC_MESSAGES/django.po +1 -9
  32. wagtail/admin/locale/da/LC_MESSAGES/django.mo +0 -0
  33. wagtail/admin/locale/da/LC_MESSAGES/django.po +1 -5
  34. wagtail/admin/locale/de/LC_MESSAGES/django.mo +0 -0
  35. wagtail/admin/locale/de/LC_MESSAGES/django.po +13 -66
  36. wagtail/admin/locale/de/LC_MESSAGES/djangojs.mo +0 -0
  37. wagtail/admin/locale/de/LC_MESSAGES/djangojs.po +12 -3
  38. wagtail/admin/locale/dv/LC_MESSAGES/django.mo +0 -0
  39. wagtail/admin/locale/dv/LC_MESSAGES/django.po +9 -65
  40. wagtail/admin/locale/dv/LC_MESSAGES/djangojs.mo +0 -0
  41. wagtail/admin/locale/dv/LC_MESSAGES/djangojs.po +9 -0
  42. wagtail/admin/locale/el/LC_MESSAGES/django.mo +0 -0
  43. wagtail/admin/locale/el/LC_MESSAGES/django.po +6 -11
  44. wagtail/admin/locale/el/LC_MESSAGES/djangojs.mo +0 -0
  45. wagtail/admin/locale/el/LC_MESSAGES/djangojs.po +8 -2
  46. wagtail/admin/locale/en/LC_MESSAGES/django.po +232 -279
  47. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +41 -24
  48. wagtail/admin/locale/en_IN/LC_MESSAGES/djangojs.mo +0 -0
  49. wagtail/admin/locale/es/LC_MESSAGES/django.mo +0 -0
  50. wagtail/admin/locale/es/LC_MESSAGES/django.po +13 -58
  51. wagtail/admin/locale/es/LC_MESSAGES/djangojs.mo +0 -0
  52. wagtail/admin/locale/es/LC_MESSAGES/djangojs.po +12 -3
  53. wagtail/admin/locale/es_419/LC_MESSAGES/django.po +4 -4
  54. wagtail/admin/locale/es_VE/LC_MESSAGES/django.po +1 -1
  55. wagtail/admin/locale/es_VE/LC_MESSAGES/djangojs.mo +0 -0
  56. wagtail/admin/locale/et/LC_MESSAGES/django.mo +0 -0
  57. wagtail/admin/locale/et/LC_MESSAGES/django.po +6 -35
  58. wagtail/admin/locale/et/LC_MESSAGES/djangojs.mo +0 -0
  59. wagtail/admin/locale/et/LC_MESSAGES/djangojs.po +6 -0
  60. wagtail/admin/locale/eu/LC_MESSAGES/django.po +1 -1
  61. wagtail/admin/locale/fa/LC_MESSAGES/django.mo +0 -0
  62. wagtail/admin/locale/fa/LC_MESSAGES/django.po +4 -39
  63. wagtail/admin/locale/fa/LC_MESSAGES/djangojs.mo +0 -0
  64. wagtail/admin/locale/fa/LC_MESSAGES/djangojs.po +5 -2
  65. wagtail/admin/locale/fi/LC_MESSAGES/django.mo +0 -0
  66. wagtail/admin/locale/fi/LC_MESSAGES/django.po +13 -51
  67. wagtail/admin/locale/fi/LC_MESSAGES/djangojs.mo +0 -0
  68. wagtail/admin/locale/fi/LC_MESSAGES/djangojs.po +8 -2
  69. wagtail/admin/locale/fr/LC_MESSAGES/django.mo +0 -0
  70. wagtail/admin/locale/fr/LC_MESSAGES/django.po +33 -63
  71. wagtail/admin/locale/fr/LC_MESSAGES/djangojs.mo +0 -0
  72. wagtail/admin/locale/fr/LC_MESSAGES/djangojs.po +17 -2
  73. wagtail/admin/locale/gl/LC_MESSAGES/django.mo +0 -0
  74. wagtail/admin/locale/gl/LC_MESSAGES/django.po +31 -63
  75. wagtail/admin/locale/gl/LC_MESSAGES/djangojs.mo +0 -0
  76. wagtail/admin/locale/gl/LC_MESSAGES/djangojs.po +17 -2
  77. wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +1 -1
  78. wagtail/admin/locale/hi/LC_MESSAGES/djangojs.mo +0 -0
  79. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  80. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +6 -43
  81. wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.mo +0 -0
  82. wagtail/admin/locale/hr_HR/LC_MESSAGES/djangojs.po +6 -0
  83. wagtail/admin/locale/ht/LC_MESSAGES/django.po +1 -1
  84. wagtail/admin/locale/hu/LC_MESSAGES/django.mo +0 -0
  85. wagtail/admin/locale/hu/LC_MESSAGES/django.po +84 -64
  86. wagtail/admin/locale/hu/LC_MESSAGES/djangojs.mo +0 -0
  87. wagtail/admin/locale/hu/LC_MESSAGES/djangojs.po +15 -0
  88. wagtail/admin/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  89. wagtail/admin/locale/id_ID/LC_MESSAGES/django.po +1 -5
  90. wagtail/admin/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  91. wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +130 -69
  92. wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.mo +0 -0
  93. wagtail/admin/locale/is_IS/LC_MESSAGES/djangojs.po +9 -0
  94. wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
  95. wagtail/admin/locale/it/LC_MESSAGES/django.po +96 -68
  96. wagtail/admin/locale/it/LC_MESSAGES/djangojs.mo +0 -0
  97. wagtail/admin/locale/it/LC_MESSAGES/djangojs.po +11 -2
  98. wagtail/admin/locale/ja/LC_MESSAGES/django.mo +0 -0
  99. wagtail/admin/locale/ja/LC_MESSAGES/django.po +5 -6
  100. wagtail/admin/locale/ka/LC_MESSAGES/django.po +1 -1
  101. wagtail/admin/locale/ko/LC_MESSAGES/django.mo +0 -0
  102. wagtail/admin/locale/ko/LC_MESSAGES/django.po +7 -44
  103. wagtail/admin/locale/ko/LC_MESSAGES/djangojs.mo +0 -0
  104. wagtail/admin/locale/ko/LC_MESSAGES/djangojs.po +8 -2
  105. wagtail/admin/locale/lt/LC_MESSAGES/django.mo +0 -0
  106. wagtail/admin/locale/lt/LC_MESSAGES/django.po +4 -32
  107. wagtail/admin/locale/lv/LC_MESSAGES/django.mo +0 -0
  108. wagtail/admin/locale/lv/LC_MESSAGES/django.po +4 -8
  109. wagtail/admin/locale/lv/LC_MESSAGES/djangojs.mo +0 -0
  110. wagtail/admin/locale/lv/LC_MESSAGES/djangojs.po +8 -2
  111. wagtail/admin/locale/mi/LC_MESSAGES/django.mo +0 -0
  112. wagtail/admin/locale/mi/LC_MESSAGES/django.po +4 -9
  113. wagtail/admin/locale/mn/LC_MESSAGES/django.mo +0 -0
  114. wagtail/admin/locale/mn/LC_MESSAGES/django.po +4 -24
  115. wagtail/admin/locale/my/LC_MESSAGES/django.po +1 -1
  116. wagtail/admin/locale/nb/LC_MESSAGES/django.mo +0 -0
  117. wagtail/admin/locale/nb/LC_MESSAGES/django.po +4 -32
  118. wagtail/admin/locale/nl/LC_MESSAGES/django.mo +0 -0
  119. wagtail/admin/locale/nl/LC_MESSAGES/django.po +13 -66
  120. wagtail/admin/locale/nl/LC_MESSAGES/djangojs.mo +0 -0
  121. wagtail/admin/locale/nl/LC_MESSAGES/djangojs.po +12 -3
  122. wagtail/admin/locale/pl/LC_MESSAGES/django.mo +0 -0
  123. wagtail/admin/locale/pl/LC_MESSAGES/django.po +13 -66
  124. wagtail/admin/locale/pl/LC_MESSAGES/djangojs.mo +0 -0
  125. wagtail/admin/locale/pl/LC_MESSAGES/djangojs.po +10 -1
  126. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  127. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +13 -66
  128. wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo +0 -0
  129. wagtail/admin/locale/pt_BR/LC_MESSAGES/djangojs.po +9 -0
  130. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  131. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +9 -43
  132. wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.mo +0 -0
  133. wagtail/admin/locale/pt_PT/LC_MESSAGES/djangojs.po +6 -0
  134. wagtail/admin/locale/ro/LC_MESSAGES/django.mo +0 -0
  135. wagtail/admin/locale/ro/LC_MESSAGES/django.po +13 -66
  136. wagtail/admin/locale/ro/LC_MESSAGES/djangojs.mo +0 -0
  137. wagtail/admin/locale/ro/LC_MESSAGES/djangojs.po +11 -2
  138. wagtail/admin/locale/ru/LC_MESSAGES/django.mo +0 -0
  139. wagtail/admin/locale/ru/LC_MESSAGES/django.po +13 -66
  140. wagtail/admin/locale/ru/LC_MESSAGES/djangojs.mo +0 -0
  141. wagtail/admin/locale/ru/LC_MESSAGES/djangojs.po +10 -1
  142. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  143. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +1 -5
  144. wagtail/admin/locale/sl/LC_MESSAGES/django.mo +0 -0
  145. wagtail/admin/locale/sl/LC_MESSAGES/django.po +13 -66
  146. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.mo +0 -0
  147. wagtail/admin/locale/sl/LC_MESSAGES/djangojs.po +11 -2
  148. wagtail/admin/locale/sv/LC_MESSAGES/django.mo +0 -0
  149. wagtail/admin/locale/sv/LC_MESSAGES/django.po +13 -66
  150. wagtail/admin/locale/sv/LC_MESSAGES/djangojs.mo +0 -0
  151. wagtail/admin/locale/sv/LC_MESSAGES/djangojs.po +11 -2
  152. wagtail/admin/locale/ta/LC_MESSAGES/djangojs.mo +0 -0
  153. wagtail/admin/locale/tet/LC_MESSAGES/django.mo +0 -0
  154. wagtail/admin/locale/tet/LC_MESSAGES/django.po +1 -5
  155. wagtail/admin/locale/th/LC_MESSAGES/django.mo +0 -0
  156. wagtail/admin/locale/th/LC_MESSAGES/django.po +1 -13
  157. wagtail/admin/locale/tr/LC_MESSAGES/django.mo +0 -0
  158. wagtail/admin/locale/tr/LC_MESSAGES/django.po +11 -30
  159. wagtail/admin/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  160. wagtail/admin/locale/tr_TR/LC_MESSAGES/django.po +1 -29
  161. wagtail/admin/locale/ug/LC_MESSAGES/django.mo +0 -0
  162. wagtail/admin/locale/ug/LC_MESSAGES/django.po +12 -65
  163. wagtail/admin/locale/ug/LC_MESSAGES/djangojs.mo +0 -0
  164. wagtail/admin/locale/ug/LC_MESSAGES/djangojs.po +9 -0
  165. wagtail/admin/locale/uk/LC_MESSAGES/django.mo +0 -0
  166. wagtail/admin/locale/uk/LC_MESSAGES/django.po +6 -43
  167. wagtail/admin/locale/uk/LC_MESSAGES/djangojs.mo +0 -0
  168. wagtail/admin/locale/uk/LC_MESSAGES/djangojs.po +9 -2
  169. wagtail/admin/locale/vi/LC_MESSAGES/django.mo +0 -0
  170. wagtail/admin/locale/vi/LC_MESSAGES/django.po +1 -5
  171. wagtail/admin/locale/zh/LC_MESSAGES/django.po +1 -1
  172. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  173. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +8 -49
  174. wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo +0 -0
  175. wagtail/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po +12 -3
  176. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  177. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +5 -34
  178. wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo +0 -0
  179. wagtail/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po +6 -0
  180. wagtail/admin/panels/base.py +13 -0
  181. wagtail/admin/panels/field_panel.py +16 -0
  182. wagtail/admin/panels/group.py +16 -0
  183. wagtail/admin/panels/inline_panel.py +30 -2
  184. wagtail/admin/panels/multiple_chooser_panel.py +10 -2
  185. wagtail/admin/rich_text/editors/draftail/__init__.py +2 -2
  186. wagtail/admin/signals.py +9 -3
  187. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  188. wagtail/admin/static/wagtailadmin/css/panels/streamfield.css +1 -1
  189. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  190. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  191. wagtail/admin/static/wagtailadmin/js/date-time-chooser.js +1 -1
  192. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  193. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  194. wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js +1 -1
  195. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  196. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  197. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  198. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  199. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  200. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +0 -20
  201. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  202. wagtail/admin/telepath/__init__.py +70 -0
  203. wagtail/admin/telepath/widgets.py +78 -0
  204. wagtail/admin/templates/wagtailadmin/account/account.html +4 -2
  205. wagtail/admin/templates/wagtailadmin/admin_base.html +0 -1
  206. wagtail/admin/templates/wagtailadmin/base.html +1 -1
  207. wagtail/admin/templates/wagtailadmin/bulk_actions/confirmation/form.html +1 -1
  208. wagtail/admin/templates/wagtailadmin/generic/chooser/chooser.html +4 -4
  209. wagtail/admin/templates/wagtailadmin/generic/chooser/creation_form.html +1 -0
  210. wagtail/admin/templates/wagtailadmin/generic/form.html +1 -0
  211. wagtail/admin/templates/wagtailadmin/icons/grid.svg +1 -0
  212. wagtail/admin/templates/wagtailadmin/notifications/base.html +1 -1
  213. wagtail/admin/templates/wagtailadmin/pages/add_subpage.html +1 -1
  214. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_delete.html +7 -3
  215. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_delete_form.html +6 -0
  216. wagtail/admin/templates/wagtailadmin/pages/confirm_delete.html +3 -14
  217. wagtail/admin/templates/wagtailadmin/pages/edit_alias.html +1 -1
  218. wagtail/admin/templates/wagtailadmin/pages/listing/_button_with_dropdown.html +1 -4
  219. wagtail/admin/templates/wagtailadmin/pages/listing/_page_header_buttons.html +3 -1
  220. wagtail/admin/templates/wagtailadmin/panels/inline_panel.html +2 -7
  221. wagtail/admin/templates/wagtailadmin/panels/inline_panel_child.html +1 -1
  222. wagtail/admin/templates/wagtailadmin/panels/multiple_chooser_panel.html +1 -7
  223. wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.html +3 -2
  224. wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +1 -0
  225. wagtail/admin/templates/wagtailadmin/shared/button_with_dropdown.html +8 -0
  226. wagtail/admin/templates/wagtailadmin/shared/dialog/confirm_site_name.html +18 -0
  227. wagtail/admin/templates/wagtailadmin/shared/formatted_field.html +1 -1
  228. wagtail/admin/templates/wagtailadmin/shared/headers/_filters.html +1 -1
  229. wagtail/admin/templates/wagtailadmin/shared/icons.html +1 -1
  230. wagtail/admin/templates/wagtailadmin/shared/keyboard_shortcuts_dialog.html +6 -4
  231. wagtail/admin/templates/wagtailadmin/shared/panel.html +2 -0
  232. wagtail/admin/templates/wagtailadmin/shared/side_panels/checks.html +53 -37
  233. wagtail/admin/templates/wagtailadmin/shared/side_panels/comments.html +18 -11
  234. wagtail/admin/templates/wagtailadmin/shared/tabs/tab_nav_link.html +1 -1
  235. wagtail/admin/templates/wagtailadmin/shared/workflow_history/detail.html +4 -4
  236. wagtail/admin/templates/wagtailadmin/tables/boolean_cell.html +2 -2
  237. wagtail/admin/templates/wagtailadmin/tables/download_cell.html +1 -1
  238. wagtail/admin/templates/wagtailadmin/tables/usage_count_column_cell.html +11 -0
  239. wagtail/admin/templates/wagtailadmin/userbar/base.html +15 -8
  240. wagtail/admin/templates/wagtailadmin/userbar/item_accessibility.html +18 -18
  241. wagtail/admin/templates/wagtailadmin/userbar/item_admin.html +2 -1
  242. wagtail/admin/templates/wagtailadmin/userbar/item_page_add.html +2 -1
  243. wagtail/admin/templates/wagtailadmin/userbar/item_page_edit.html +2 -1
  244. wagtail/admin/templates/wagtailadmin/userbar/item_page_explore.html +2 -1
  245. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/chooser.html +4 -2
  246. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/includes/results.html +1 -1
  247. wagtail/admin/templatetags/wagtailadmin_tags.py +64 -31
  248. wagtail/admin/templatetags/wagtailuserbar.py +4 -72
  249. wagtail/admin/tests/pages/test_bulk_actions/test_bulk_delete.py +253 -16
  250. wagtail/admin/tests/pages/test_copy_page.py +121 -0
  251. wagtail/admin/tests/pages/test_create_page.py +112 -66
  252. wagtail/admin/tests/pages/test_delete_page.py +33 -3
  253. wagtail/admin/tests/pages/test_edit_page.py +35 -6
  254. wagtail/admin/tests/pages/test_workflow_history.py +8 -6
  255. wagtail/admin/tests/test_account_management.py +37 -0
  256. wagtail/admin/tests/test_audit_log.py +3 -3
  257. wagtail/admin/tests/test_block_preview.py +31 -7
  258. wagtail/admin/tests/test_buttons_hooks.py +65 -3
  259. wagtail/admin/tests/test_edit_handlers.py +69 -55
  260. wagtail/admin/tests/test_reports_views.py +2 -2
  261. wagtail/{tests → admin/tests}/test_telepath.py +1 -1
  262. wagtail/admin/tests/test_templatetags.py +20 -18
  263. wagtail/admin/tests/test_userbar.py +249 -14
  264. wagtail/admin/tests/test_widgets.py +210 -5
  265. wagtail/admin/tests/test_workflows.py +1 -1
  266. wagtail/admin/tests/ui/test_sidebar.py +1 -1
  267. wagtail/admin/tests/viewsets/test_base_viewset.py +5 -0
  268. wagtail/admin/tests/viewsets/test_model_viewset.py +10 -17
  269. wagtail/admin/ui/menus/__init__.py +25 -0
  270. wagtail/admin/ui/menus/pages.py +43 -0
  271. wagtail/admin/ui/side_panels.py +1 -1
  272. wagtail/admin/ui/sidebar.py +1 -1
  273. wagtail/admin/ui/tables/__init__.py +15 -1
  274. wagtail/admin/userbar.py +85 -27
  275. wagtail/admin/views/account.py +3 -1
  276. wagtail/admin/views/bulk_action/base_bulk_action.py +6 -1
  277. wagtail/admin/views/bulk_action/mixins.py +38 -0
  278. wagtail/admin/views/generic/mixins.py +7 -0
  279. wagtail/admin/views/generic/models.py +17 -19
  280. wagtail/admin/views/generic/preview.py +7 -4
  281. wagtail/admin/views/pages/bulk_actions/delete.py +36 -2
  282. wagtail/admin/views/pages/copy.py +7 -0
  283. wagtail/admin/views/pages/create.py +11 -5
  284. wagtail/admin/views/pages/delete.py +8 -11
  285. wagtail/admin/views/pages/edit.py +8 -1
  286. wagtail/admin/views/pages/utils.py +19 -0
  287. wagtail/admin/viewsets/base.py +8 -4
  288. wagtail/admin/viewsets/chooser.py +1 -1
  289. wagtail/admin/viewsets/model.py +1 -1
  290. wagtail/admin/wagtail_hooks.py +51 -77
  291. wagtail/admin/widgets/button.py +84 -61
  292. wagtail/admin/widgets/chooser.py +2 -2
  293. wagtail/admin/widgets/datetime.py +2 -2
  294. wagtail/admin/widgets/slug.py +55 -5
  295. wagtail/api/v2/filters.py +28 -41
  296. wagtail/api/v2/tests/test_documents.py +1 -1
  297. wagtail/api/v2/tests/test_images.py +1 -1
  298. wagtail/api/v2/tests/test_pages.py +18 -19
  299. wagtail/api/v2/views.py +12 -1
  300. wagtail/apps.py +0 -2
  301. wagtail/blocks/base.py +21 -10
  302. wagtail/blocks/field_block.py +12 -3
  303. wagtail/blocks/list_block.py +2 -1
  304. wagtail/blocks/static_block.py +2 -1
  305. wagtail/blocks/stream_block.py +2 -1
  306. wagtail/blocks/struct_block.py +7 -4
  307. wagtail/contrib/forms/forms.py +13 -22
  308. wagtail/contrib/forms/locale/af/LC_MESSAGES/django.mo +0 -0
  309. wagtail/contrib/forms/locale/af/LC_MESSAGES/django.po +1 -1
  310. wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.mo +0 -0
  311. wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.po +92 -28
  312. wagtail/contrib/forms/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  313. wagtail/contrib/forms/locale/be/LC_MESSAGES/django.po +1 -1
  314. wagtail/contrib/forms/locale/bg/LC_MESSAGES/django.po +1 -1
  315. wagtail/contrib/forms/locale/bn/LC_MESSAGES/django.po +1 -1
  316. wagtail/contrib/forms/locale/ca/LC_MESSAGES/django.po +1 -1
  317. wagtail/contrib/forms/locale/cs/LC_MESSAGES/django.po +1 -1
  318. wagtail/contrib/forms/locale/cy/LC_MESSAGES/django.po +1 -1
  319. wagtail/contrib/forms/locale/da/LC_MESSAGES/django.po +1 -1
  320. wagtail/contrib/forms/locale/de/LC_MESSAGES/django.mo +0 -0
  321. wagtail/contrib/forms/locale/de/LC_MESSAGES/django.po +20 -3
  322. wagtail/contrib/forms/locale/dv/LC_MESSAGES/django.po +1 -1
  323. wagtail/contrib/forms/locale/el/LC_MESSAGES/django.po +1 -1
  324. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +13 -13
  325. wagtail/contrib/forms/locale/es/LC_MESSAGES/django.po +1 -1
  326. wagtail/contrib/forms/locale/es_419/LC_MESSAGES/django.po +1 -1
  327. wagtail/contrib/forms/locale/et/LC_MESSAGES/django.po +1 -1
  328. wagtail/contrib/forms/locale/eu/LC_MESSAGES/django.po +1 -1
  329. wagtail/contrib/forms/locale/fa/LC_MESSAGES/django.po +1 -1
  330. wagtail/contrib/forms/locale/fi/LC_MESSAGES/django.po +1 -1
  331. wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.mo +0 -0
  332. wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.po +9 -1
  333. wagtail/contrib/forms/locale/gl/LC_MESSAGES/django.po +1 -1
  334. wagtail/contrib/forms/locale/he_IL/LC_MESSAGES/django.po +1 -1
  335. wagtail/contrib/forms/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  336. wagtail/contrib/forms/locale/ht/LC_MESSAGES/django.po +1 -1
  337. wagtail/contrib/forms/locale/hu/LC_MESSAGES/django.mo +0 -0
  338. wagtail/contrib/forms/locale/hu/LC_MESSAGES/django.po +21 -3
  339. wagtail/contrib/forms/locale/hy/LC_MESSAGES/django.mo +0 -0
  340. wagtail/contrib/forms/locale/hy/LC_MESSAGES/django.po +1 -1
  341. wagtail/contrib/forms/locale/id_ID/LC_MESSAGES/django.po +1 -1
  342. wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  343. wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.po +20 -3
  344. wagtail/contrib/forms/locale/it/LC_MESSAGES/django.po +1 -1
  345. wagtail/contrib/forms/locale/ja/LC_MESSAGES/django.po +1 -1
  346. wagtail/contrib/forms/locale/ka/LC_MESSAGES/django.po +1 -1
  347. wagtail/contrib/forms/locale/ko/LC_MESSAGES/django.po +1 -1
  348. wagtail/contrib/forms/locale/lt/LC_MESSAGES/django.po +1 -1
  349. wagtail/contrib/forms/locale/lv/LC_MESSAGES/django.po +1 -1
  350. wagtail/contrib/forms/locale/mi/LC_MESSAGES/django.po +1 -1
  351. wagtail/contrib/forms/locale/mn/LC_MESSAGES/django.po +1 -1
  352. wagtail/contrib/forms/locale/my/LC_MESSAGES/django.po +1 -1
  353. wagtail/contrib/forms/locale/nb/LC_MESSAGES/django.po +1 -1
  354. wagtail/contrib/forms/locale/nl/LC_MESSAGES/django.po +1 -1
  355. wagtail/contrib/forms/locale/pl/LC_MESSAGES/django.po +1 -1
  356. wagtail/contrib/forms/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  357. wagtail/contrib/forms/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  358. wagtail/contrib/forms/locale/ro/LC_MESSAGES/django.po +1 -1
  359. wagtail/contrib/forms/locale/ru/LC_MESSAGES/django.po +1 -1
  360. wagtail/contrib/forms/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  361. wagtail/contrib/forms/locale/sl/LC_MESSAGES/django.po +1 -1
  362. wagtail/contrib/forms/locale/sv/LC_MESSAGES/django.po +1 -1
  363. wagtail/contrib/forms/locale/tet/LC_MESSAGES/django.po +1 -1
  364. wagtail/contrib/forms/locale/th/LC_MESSAGES/django.po +1 -1
  365. wagtail/contrib/forms/locale/tr/LC_MESSAGES/django.po +1 -1
  366. wagtail/contrib/forms/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  367. wagtail/contrib/forms/locale/ug/LC_MESSAGES/django.po +1 -1
  368. wagtail/contrib/forms/locale/uk/LC_MESSAGES/django.po +1 -1
  369. wagtail/contrib/forms/locale/vi/LC_MESSAGES/django.po +1 -1
  370. wagtail/contrib/forms/locale/zh/LC_MESSAGES/django.po +1 -1
  371. wagtail/contrib/forms/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  372. wagtail/contrib/forms/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  373. wagtail/contrib/forms/tests/test_forms.py +51 -80
  374. wagtail/contrib/forms/tests/test_views.py +6 -0
  375. wagtail/contrib/forms/views.py +4 -0
  376. wagtail/contrib/frontend_cache/backends/cloudfront.py +6 -1
  377. wagtail/contrib/frontend_cache/tests.py +72 -0
  378. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.mo +0 -0
  379. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.po +114 -27
  380. wagtail/contrib/redirects/locale/be/LC_MESSAGES/django.po +1 -1
  381. wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.po +1 -1
  382. wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.po +1 -1
  383. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +1 -1
  384. wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.po +1 -1
  385. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +1 -1
  386. wagtail/contrib/redirects/locale/da/LC_MESSAGES/django.po +1 -1
  387. wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.po +1 -1
  388. wagtail/contrib/redirects/locale/dv/LC_MESSAGES/django.po +1 -1
  389. wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.po +1 -1
  390. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +1 -1
  391. wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  392. wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.po +1 -1
  393. wagtail/contrib/redirects/locale/es/LC_MESSAGES/django.po +1 -1
  394. wagtail/contrib/redirects/locale/es_419/LC_MESSAGES/django.po +1 -1
  395. wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo +0 -0
  396. wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po +1 -1
  397. wagtail/contrib/redirects/locale/et/LC_MESSAGES/django.po +1 -1
  398. wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.mo +0 -0
  399. wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.po +1 -1
  400. wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +1 -1
  401. wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.po +1 -1
  402. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +1 -1
  403. wagtail/contrib/redirects/locale/gl/LC_MESSAGES/django.po +1 -1
  404. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.po +1 -1
  405. wagtail/contrib/redirects/locale/hi/LC_MESSAGES/django.mo +0 -0
  406. wagtail/contrib/redirects/locale/hi/LC_MESSAGES/django.po +1 -1
  407. wagtail/contrib/redirects/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  408. wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.mo +0 -0
  409. wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.po +1 -1
  410. wagtail/contrib/redirects/locale/hu/LC_MESSAGES/django.po +1 -1
  411. wagtail/contrib/redirects/locale/hy/LC_MESSAGES/django.mo +0 -0
  412. wagtail/contrib/redirects/locale/hy/LC_MESSAGES/django.po +1 -1
  413. wagtail/contrib/redirects/locale/id_ID/LC_MESSAGES/django.po +1 -1
  414. wagtail/contrib/redirects/locale/is_IS/LC_MESSAGES/django.po +1 -1
  415. wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +1 -1
  416. wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.po +1 -1
  417. wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.po +1 -1
  418. wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.po +1 -1
  419. wagtail/contrib/redirects/locale/lt/LC_MESSAGES/django.po +1 -1
  420. wagtail/contrib/redirects/locale/lv/LC_MESSAGES/django.po +1 -1
  421. wagtail/contrib/redirects/locale/mi/LC_MESSAGES/django.po +1 -1
  422. wagtail/contrib/redirects/locale/mn/LC_MESSAGES/django.po +1 -1
  423. wagtail/contrib/redirects/locale/my/LC_MESSAGES/django.po +1 -1
  424. wagtail/contrib/redirects/locale/nb/LC_MESSAGES/django.po +1 -1
  425. wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.po +1 -1
  426. wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.po +1 -1
  427. wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  428. wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  429. wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.po +1 -1
  430. wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.po +1 -1
  431. wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  432. wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.po +1 -1
  433. wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.mo +0 -0
  434. wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.po +1 -1
  435. wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.po +1 -1
  436. wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.mo +0 -0
  437. wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.po +1 -1
  438. wagtail/contrib/redirects/locale/tet/LC_MESSAGES/django.po +1 -1
  439. wagtail/contrib/redirects/locale/th/LC_MESSAGES/django.po +1 -1
  440. wagtail/contrib/redirects/locale/tr/LC_MESSAGES/django.po +1 -1
  441. wagtail/contrib/redirects/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  442. wagtail/contrib/redirects/locale/ug/LC_MESSAGES/django.po +1 -1
  443. wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.po +1 -1
  444. wagtail/contrib/redirects/locale/vi/LC_MESSAGES/django.po +1 -1
  445. wagtail/contrib/redirects/locale/zh/LC_MESSAGES/django.po +1 -1
  446. wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  447. wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  448. wagtail/contrib/redirects/management/commands/import_redirects.py +2 -2
  449. wagtail/contrib/redirects/tests/test_import_command.py +49 -31
  450. wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.po +1 -1
  451. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.mo +0 -0
  452. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.po +91 -30
  453. wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  454. wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.po +1 -1
  455. wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.po +1 -1
  456. wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.po +1 -1
  457. wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.po +1 -1
  458. wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.po +1 -1
  459. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +1 -1
  460. wagtail/contrib/search_promotions/locale/da/LC_MESSAGES/django.po +1 -1
  461. wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.po +1 -1
  462. wagtail/contrib/search_promotions/locale/dv/LC_MESSAGES/django.po +1 -1
  463. wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.po +1 -1
  464. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +12 -12
  465. wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.po +1 -1
  466. wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.po +1 -1
  467. wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.po +1 -1
  468. wagtail/contrib/search_promotions/locale/eu/LC_MESSAGES/django.po +1 -1
  469. wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.po +1 -1
  470. wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.po +1 -1
  471. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +1 -1
  472. wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.po +1 -1
  473. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +1 -1
  474. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  475. wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.po +1 -1
  476. wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.po +1 -1
  477. wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.po +1 -1
  478. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  479. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +9 -4
  480. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +1 -1
  481. wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.po +1 -1
  482. wagtail/contrib/search_promotions/locale/ka/LC_MESSAGES/django.po +1 -1
  483. wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.po +1 -1
  484. wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.po +1 -1
  485. wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.po +1 -1
  486. wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.po +1 -1
  487. wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.po +1 -1
  488. wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.po +1 -1
  489. wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.po +1 -1
  490. wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.po +1 -1
  491. wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.po +1 -1
  492. wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  493. wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  494. wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.po +1 -1
  495. wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.po +1 -1
  496. wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  497. wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +1 -1
  498. wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +1 -1
  499. wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.po +1 -1
  500. wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.po +1 -1
  501. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +1 -1
  502. wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  503. wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.po +1 -1
  504. wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.po +1 -1
  505. wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.po +1 -1
  506. wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.po +1 -1
  507. wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  508. wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  509. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/includes/searchpromotion_form.html +1 -1
  510. wagtail/contrib/search_promotions/tests.py +39 -25
  511. wagtail/contrib/search_promotions/views/reports.py +2 -2
  512. wagtail/contrib/search_promotions/views/settings.py +6 -2
  513. wagtail/contrib/settings/forms.py +93 -3
  514. wagtail/contrib/settings/locale/ar/LC_MESSAGES/django.mo +0 -0
  515. wagtail/contrib/settings/locale/ar/LC_MESSAGES/django.po +11 -2
  516. wagtail/contrib/settings/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  517. wagtail/contrib/settings/locale/be/LC_MESSAGES/django.mo +0 -0
  518. wagtail/contrib/settings/locale/be/LC_MESSAGES/django.po +6 -2
  519. wagtail/contrib/settings/locale/bn/LC_MESSAGES/django.po +1 -1
  520. wagtail/contrib/settings/locale/ca/LC_MESSAGES/django.mo +0 -0
  521. wagtail/contrib/settings/locale/ca/LC_MESSAGES/django.po +10 -3
  522. wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.mo +0 -0
  523. wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.po +4 -1
  524. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.mo +0 -0
  525. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.po +5 -1
  526. wagtail/contrib/settings/locale/da/LC_MESSAGES/django.po +1 -1
  527. wagtail/contrib/settings/locale/de/LC_MESSAGES/django.mo +0 -0
  528. wagtail/contrib/settings/locale/de/LC_MESSAGES/django.po +6 -1
  529. wagtail/contrib/settings/locale/dv/LC_MESSAGES/django.po +2 -1
  530. wagtail/contrib/settings/locale/el/LC_MESSAGES/django.mo +0 -0
  531. wagtail/contrib/settings/locale/el/LC_MESSAGES/django.po +5 -1
  532. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +16 -7
  533. wagtail/contrib/settings/locale/en_IN/LC_MESSAGES/django.po +2 -1
  534. wagtail/contrib/settings/locale/es/LC_MESSAGES/django.mo +0 -0
  535. wagtail/contrib/settings/locale/es/LC_MESSAGES/django.po +4 -1
  536. wagtail/contrib/settings/locale/es_419/LC_MESSAGES/django.po +2 -1
  537. wagtail/contrib/settings/locale/es_VE/LC_MESSAGES/django.po +2 -1
  538. wagtail/contrib/settings/locale/et/LC_MESSAGES/django.mo +0 -0
  539. wagtail/contrib/settings/locale/et/LC_MESSAGES/django.po +4 -1
  540. wagtail/contrib/settings/locale/fa/LC_MESSAGES/django.mo +0 -0
  541. wagtail/contrib/settings/locale/fa/LC_MESSAGES/django.po +6 -1
  542. wagtail/contrib/settings/locale/fi/LC_MESSAGES/django.mo +0 -0
  543. wagtail/contrib/settings/locale/fi/LC_MESSAGES/django.po +4 -1
  544. wagtail/contrib/settings/locale/fr/LC_MESSAGES/django.mo +0 -0
  545. wagtail/contrib/settings/locale/fr/LC_MESSAGES/django.po +10 -3
  546. wagtail/contrib/settings/locale/gl/LC_MESSAGES/django.mo +0 -0
  547. wagtail/contrib/settings/locale/gl/LC_MESSAGES/django.po +10 -3
  548. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  549. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.po +4 -1
  550. wagtail/contrib/settings/locale/hi/LC_MESSAGES/django.po +4 -1
  551. wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  552. wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.po +5 -2
  553. wagtail/contrib/settings/locale/ht/LC_MESSAGES/django.mo +0 -0
  554. wagtail/contrib/settings/locale/ht/LC_MESSAGES/django.po +4 -1
  555. wagtail/contrib/settings/locale/hu/LC_MESSAGES/django.mo +0 -0
  556. wagtail/contrib/settings/locale/hu/LC_MESSAGES/django.po +11 -3
  557. wagtail/contrib/settings/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  558. wagtail/contrib/settings/locale/id_ID/LC_MESSAGES/django.po +4 -1
  559. wagtail/contrib/settings/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  560. wagtail/contrib/settings/locale/is_IS/LC_MESSAGES/django.po +4 -1
  561. wagtail/contrib/settings/locale/it/LC_MESSAGES/django.mo +0 -0
  562. wagtail/contrib/settings/locale/it/LC_MESSAGES/django.po +5 -2
  563. wagtail/contrib/settings/locale/ja/LC_MESSAGES/django.mo +0 -0
  564. wagtail/contrib/settings/locale/ja/LC_MESSAGES/django.po +4 -1
  565. wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.mo +0 -0
  566. wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.po +4 -1
  567. wagtail/contrib/settings/locale/ko/LC_MESSAGES/django.mo +0 -0
  568. wagtail/contrib/settings/locale/ko/LC_MESSAGES/django.po +4 -1
  569. wagtail/contrib/settings/locale/lt/LC_MESSAGES/django.mo +0 -0
  570. wagtail/contrib/settings/locale/lt/LC_MESSAGES/django.po +4 -1
  571. wagtail/contrib/settings/locale/lv/LC_MESSAGES/django.mo +0 -0
  572. wagtail/contrib/settings/locale/lv/LC_MESSAGES/django.po +4 -1
  573. wagtail/contrib/settings/locale/mi/LC_MESSAGES/django.mo +0 -0
  574. wagtail/contrib/settings/locale/mi/LC_MESSAGES/django.po +4 -1
  575. wagtail/contrib/settings/locale/mn/LC_MESSAGES/django.mo +0 -0
  576. wagtail/contrib/settings/locale/mn/LC_MESSAGES/django.po +6 -2
  577. wagtail/contrib/settings/locale/my/LC_MESSAGES/django.mo +0 -0
  578. wagtail/contrib/settings/locale/my/LC_MESSAGES/django.po +4 -1
  579. wagtail/contrib/settings/locale/nb/LC_MESSAGES/django.mo +0 -0
  580. wagtail/contrib/settings/locale/nb/LC_MESSAGES/django.po +5 -1
  581. wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.mo +0 -0
  582. wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.po +4 -1
  583. wagtail/contrib/settings/locale/pl/LC_MESSAGES/django.mo +0 -0
  584. wagtail/contrib/settings/locale/pl/LC_MESSAGES/django.po +4 -1
  585. wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  586. wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.po +7 -2
  587. wagtail/contrib/settings/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  588. wagtail/contrib/settings/locale/pt_PT/LC_MESSAGES/django.po +4 -1
  589. wagtail/contrib/settings/locale/ro/LC_MESSAGES/django.mo +0 -0
  590. wagtail/contrib/settings/locale/ro/LC_MESSAGES/django.po +5 -2
  591. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.mo +0 -0
  592. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.po +6 -2
  593. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  594. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.po +2 -2
  595. wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.mo +0 -0
  596. wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.po +5 -2
  597. wagtail/contrib/settings/locale/sr/LC_MESSAGES/django.po +1 -1
  598. wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.mo +0 -0
  599. wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.po +4 -1
  600. wagtail/contrib/settings/locale/ta/LC_MESSAGES/django.po +1 -1
  601. wagtail/contrib/settings/locale/tet/LC_MESSAGES/django.mo +0 -0
  602. wagtail/contrib/settings/locale/tet/LC_MESSAGES/django.po +4 -1
  603. wagtail/contrib/settings/locale/th/LC_MESSAGES/django.mo +0 -0
  604. wagtail/contrib/settings/locale/th/LC_MESSAGES/django.po +6 -2
  605. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.mo +0 -0
  606. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.po +5 -2
  607. wagtail/contrib/settings/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  608. wagtail/contrib/settings/locale/tr_TR/LC_MESSAGES/django.po +5 -2
  609. wagtail/contrib/settings/locale/ug/LC_MESSAGES/django.mo +0 -0
  610. wagtail/contrib/settings/locale/ug/LC_MESSAGES/django.po +6 -2
  611. wagtail/contrib/settings/locale/uk/LC_MESSAGES/django.mo +0 -0
  612. wagtail/contrib/settings/locale/uk/LC_MESSAGES/django.po +5 -2
  613. wagtail/contrib/settings/locale/vi/LC_MESSAGES/django.mo +0 -0
  614. wagtail/contrib/settings/locale/vi/LC_MESSAGES/django.po +4 -1
  615. wagtail/contrib/settings/locale/zh/LC_MESSAGES/django.po +1 -1
  616. wagtail/contrib/settings/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  617. wagtail/contrib/settings/locale/zh_Hans/LC_MESSAGES/django.po +6 -2
  618. wagtail/contrib/settings/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  619. wagtail/contrib/settings/locale/zh_Hant/LC_MESSAGES/django.po +4 -1
  620. wagtail/contrib/settings/models.py +10 -0
  621. wagtail/contrib/settings/registry.py +14 -4
  622. wagtail/contrib/settings/templates/wagtailsettings/edit.html +6 -0
  623. wagtail/contrib/settings/templates/wagtailsettings/permissions/includes/site_permission_form.html +11 -0
  624. wagtail/contrib/settings/tests/generic/test_admin.py +15 -1
  625. wagtail/contrib/settings/tests/generic/test_model.py +1 -1
  626. wagtail/contrib/settings/tests/shared/__init__.py +0 -0
  627. wagtail/contrib/settings/tests/shared/test_preview.py +193 -0
  628. wagtail/contrib/settings/tests/site_specific/test_admin.py +320 -10
  629. wagtail/contrib/settings/tests/site_specific/test_forms.py +1 -1
  630. wagtail/contrib/settings/urls.py +5 -0
  631. wagtail/contrib/settings/views.py +89 -13
  632. wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.mo +0 -0
  633. wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.po +73 -2
  634. wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.mo +0 -0
  635. wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.po +1 -5
  636. wagtail/contrib/simple_translation/locale/ca/LC_MESSAGES/django.mo +0 -0
  637. wagtail/contrib/simple_translation/locale/ca/LC_MESSAGES/django.po +1 -5
  638. wagtail/contrib/simple_translation/locale/cs/LC_MESSAGES/django.mo +0 -0
  639. wagtail/contrib/simple_translation/locale/cs/LC_MESSAGES/django.po +1 -5
  640. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.mo +0 -0
  641. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.po +1 -5
  642. wagtail/contrib/simple_translation/locale/de/LC_MESSAGES/django.mo +0 -0
  643. wagtail/contrib/simple_translation/locale/de/LC_MESSAGES/django.po +1 -5
  644. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.mo +0 -0
  645. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.po +1 -5
  646. wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.mo +0 -0
  647. wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.po +1 -1
  648. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +2 -7
  649. wagtail/contrib/simple_translation/locale/es/LC_MESSAGES/django.mo +0 -0
  650. wagtail/contrib/simple_translation/locale/es/LC_MESSAGES/django.po +1 -5
  651. wagtail/contrib/simple_translation/locale/es_419/LC_MESSAGES/django.mo +0 -0
  652. wagtail/contrib/simple_translation/locale/es_419/LC_MESSAGES/django.po +1 -1
  653. wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.mo +0 -0
  654. wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.po +1 -1
  655. wagtail/contrib/simple_translation/locale/fi/LC_MESSAGES/django.mo +0 -0
  656. wagtail/contrib/simple_translation/locale/fi/LC_MESSAGES/django.po +1 -5
  657. wagtail/contrib/simple_translation/locale/fr/LC_MESSAGES/django.mo +0 -0
  658. wagtail/contrib/simple_translation/locale/fr/LC_MESSAGES/django.po +1 -5
  659. wagtail/contrib/simple_translation/locale/gl/LC_MESSAGES/django.mo +0 -0
  660. wagtail/contrib/simple_translation/locale/gl/LC_MESSAGES/django.po +1 -5
  661. wagtail/contrib/simple_translation/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  662. wagtail/contrib/simple_translation/locale/hr_HR/LC_MESSAGES/django.po +1 -5
  663. wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.mo +0 -0
  664. wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.po +1 -5
  665. wagtail/contrib/simple_translation/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  666. wagtail/contrib/simple_translation/locale/is_IS/LC_MESSAGES/django.po +1 -5
  667. wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.mo +0 -0
  668. wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.po +1 -5
  669. wagtail/contrib/simple_translation/locale/ko/LC_MESSAGES/django.mo +0 -0
  670. wagtail/contrib/simple_translation/locale/ko/LC_MESSAGES/django.po +1 -5
  671. wagtail/contrib/simple_translation/locale/lt/LC_MESSAGES/django.mo +0 -0
  672. wagtail/contrib/simple_translation/locale/lt/LC_MESSAGES/django.po +1 -5
  673. wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.mo +0 -0
  674. wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.po +1 -1
  675. wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.mo +0 -0
  676. wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.po +1 -1
  677. wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.mo +0 -0
  678. wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.po +1 -1
  679. wagtail/contrib/simple_translation/locale/nl/LC_MESSAGES/django.mo +0 -0
  680. wagtail/contrib/simple_translation/locale/nl/LC_MESSAGES/django.po +1 -5
  681. wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.mo +0 -0
  682. wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.po +1 -5
  683. wagtail/contrib/simple_translation/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  684. wagtail/contrib/simple_translation/locale/pt_BR/LC_MESSAGES/django.po +1 -5
  685. wagtail/contrib/simple_translation/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  686. wagtail/contrib/simple_translation/locale/pt_PT/LC_MESSAGES/django.po +1 -5
  687. wagtail/contrib/simple_translation/locale/ro/LC_MESSAGES/django.mo +0 -0
  688. wagtail/contrib/simple_translation/locale/ro/LC_MESSAGES/django.po +1 -5
  689. wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.mo +0 -0
  690. wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.po +1 -5
  691. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.mo +0 -0
  692. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.po +1 -5
  693. wagtail/contrib/simple_translation/locale/sv/LC_MESSAGES/django.mo +0 -0
  694. wagtail/contrib/simple_translation/locale/sv/LC_MESSAGES/django.po +1 -5
  695. wagtail/contrib/simple_translation/locale/ug/LC_MESSAGES/django.mo +0 -0
  696. wagtail/contrib/simple_translation/locale/ug/LC_MESSAGES/django.po +1 -5
  697. wagtail/contrib/simple_translation/locale/uk/LC_MESSAGES/django.mo +0 -0
  698. wagtail/contrib/simple_translation/locale/uk/LC_MESSAGES/django.po +1 -5
  699. wagtail/contrib/simple_translation/locale/vi/LC_MESSAGES/django.po +1 -1
  700. wagtail/contrib/simple_translation/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  701. wagtail/contrib/simple_translation/locale/zh_Hans/LC_MESSAGES/django.po +1 -5
  702. wagtail/contrib/simple_translation/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  703. wagtail/contrib/simple_translation/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  704. wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py +34 -0
  705. wagtail/contrib/simple_translation/wagtail_hooks.py +2 -9
  706. wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.mo +0 -0
  707. wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.po +1 -1
  708. wagtail/contrib/styleguide/locale/ar/LC_MESSAGES/django.mo +0 -0
  709. wagtail/contrib/styleguide/locale/ar/LC_MESSAGES/django.po +4 -1
  710. wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  711. wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  712. wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.po +1 -1
  713. wagtail/contrib/styleguide/locale/bg/LC_MESSAGES/django.po +1 -1
  714. wagtail/contrib/styleguide/locale/bn/LC_MESSAGES/django.po +1 -1
  715. wagtail/contrib/styleguide/locale/ca/LC_MESSAGES/django.po +1 -1
  716. wagtail/contrib/styleguide/locale/cs/LC_MESSAGES/django.po +1 -1
  717. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.po +1 -1
  718. wagtail/contrib/styleguide/locale/da/LC_MESSAGES/django.po +1 -1
  719. wagtail/contrib/styleguide/locale/de/LC_MESSAGES/django.po +1 -1
  720. wagtail/contrib/styleguide/locale/dv/LC_MESSAGES/django.po +1 -1
  721. wagtail/contrib/styleguide/locale/el/LC_MESSAGES/django.po +1 -1
  722. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +1 -1
  723. wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  724. wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.po +1 -1
  725. wagtail/contrib/styleguide/locale/es/LC_MESSAGES/django.po +1 -1
  726. wagtail/contrib/styleguide/locale/es_419/LC_MESSAGES/django.po +1 -1
  727. wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.mo +0 -0
  728. wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.po +1 -1
  729. wagtail/contrib/styleguide/locale/et/LC_MESSAGES/django.po +1 -1
  730. wagtail/contrib/styleguide/locale/fa/LC_MESSAGES/django.po +1 -1
  731. wagtail/contrib/styleguide/locale/fi/LC_MESSAGES/django.po +1 -1
  732. wagtail/contrib/styleguide/locale/fr/LC_MESSAGES/django.po +1 -1
  733. wagtail/contrib/styleguide/locale/gl/LC_MESSAGES/django.po +1 -1
  734. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +1 -1
  735. wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.mo +0 -0
  736. wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.po +1 -1
  737. wagtail/contrib/styleguide/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  738. wagtail/contrib/styleguide/locale/ht/LC_MESSAGES/django.po +1 -1
  739. wagtail/contrib/styleguide/locale/hu/LC_MESSAGES/django.po +1 -1
  740. wagtail/contrib/styleguide/locale/id_ID/LC_MESSAGES/django.po +1 -1
  741. wagtail/contrib/styleguide/locale/is_IS/LC_MESSAGES/django.po +1 -1
  742. wagtail/contrib/styleguide/locale/it/LC_MESSAGES/django.po +1 -1
  743. wagtail/contrib/styleguide/locale/ja/LC_MESSAGES/django.po +1 -1
  744. wagtail/contrib/styleguide/locale/ka/LC_MESSAGES/django.po +1 -1
  745. wagtail/contrib/styleguide/locale/ko/LC_MESSAGES/django.po +1 -1
  746. wagtail/contrib/styleguide/locale/lt/LC_MESSAGES/django.po +1 -1
  747. wagtail/contrib/styleguide/locale/lv/LC_MESSAGES/django.po +1 -1
  748. wagtail/contrib/styleguide/locale/mi/LC_MESSAGES/django.po +1 -1
  749. wagtail/contrib/styleguide/locale/mn/LC_MESSAGES/django.po +1 -1
  750. wagtail/contrib/styleguide/locale/my/LC_MESSAGES/django.po +1 -1
  751. wagtail/contrib/styleguide/locale/nb/LC_MESSAGES/django.po +1 -1
  752. wagtail/contrib/styleguide/locale/nl/LC_MESSAGES/django.po +1 -1
  753. wagtail/contrib/styleguide/locale/pl/LC_MESSAGES/django.po +1 -1
  754. wagtail/contrib/styleguide/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  755. wagtail/contrib/styleguide/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  756. wagtail/contrib/styleguide/locale/ro/LC_MESSAGES/django.po +1 -1
  757. wagtail/contrib/styleguide/locale/ru/LC_MESSAGES/django.po +1 -1
  758. wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  759. wagtail/contrib/styleguide/locale/sl/LC_MESSAGES/django.po +1 -1
  760. wagtail/contrib/styleguide/locale/sv/LC_MESSAGES/django.po +1 -1
  761. wagtail/contrib/styleguide/locale/ta/LC_MESSAGES/django.mo +0 -0
  762. wagtail/contrib/styleguide/locale/ta/LC_MESSAGES/django.po +1 -1
  763. wagtail/contrib/styleguide/locale/tet/LC_MESSAGES/django.po +1 -1
  764. wagtail/contrib/styleguide/locale/th/LC_MESSAGES/django.po +1 -1
  765. wagtail/contrib/styleguide/locale/tr/LC_MESSAGES/django.po +1 -1
  766. wagtail/contrib/styleguide/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  767. wagtail/contrib/styleguide/locale/ug/LC_MESSAGES/django.po +1 -1
  768. wagtail/contrib/styleguide/locale/uk/LC_MESSAGES/django.po +1 -1
  769. wagtail/contrib/styleguide/locale/vi/LC_MESSAGES/django.po +1 -1
  770. wagtail/contrib/styleguide/locale/zh/LC_MESSAGES/django.po +1 -1
  771. wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  772. wagtail/contrib/styleguide/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  773. wagtail/contrib/styleguide/templates/wagtailstyleguide/base.html +49 -16
  774. wagtail/contrib/table_block/blocks.py +2 -2
  775. wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.mo +0 -0
  776. wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.po +28 -2
  777. wagtail/contrib/table_block/locale/be/LC_MESSAGES/django.mo +0 -0
  778. wagtail/contrib/table_block/locale/be/LC_MESSAGES/django.po +3 -2
  779. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.po +1 -1
  780. wagtail/contrib/table_block/locale/cs/LC_MESSAGES/django.po +1 -1
  781. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.po +2 -1
  782. wagtail/contrib/table_block/locale/de/LC_MESSAGES/django.po +1 -1
  783. wagtail/contrib/table_block/locale/dv/LC_MESSAGES/django.po +2 -1
  784. wagtail/contrib/table_block/locale/el/LC_MESSAGES/django.po +2 -1
  785. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  786. wagtail/contrib/table_block/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  787. wagtail/contrib/table_block/locale/en_IN/LC_MESSAGES/django.po +2 -1
  788. wagtail/contrib/table_block/locale/es/LC_MESSAGES/django.po +1 -1
  789. wagtail/contrib/table_block/locale/et/LC_MESSAGES/django.po +1 -1
  790. wagtail/contrib/table_block/locale/fa/LC_MESSAGES/django.po +1 -1
  791. wagtail/contrib/table_block/locale/fi/LC_MESSAGES/django.mo +0 -0
  792. wagtail/contrib/table_block/locale/fi/LC_MESSAGES/django.po +2 -2
  793. wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.po +1 -1
  794. wagtail/contrib/table_block/locale/gl/LC_MESSAGES/django.po +1 -1
  795. wagtail/contrib/table_block/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  796. wagtail/contrib/table_block/locale/ht/LC_MESSAGES/django.po +1 -1
  797. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.mo +0 -0
  798. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.po +2 -2
  799. wagtail/contrib/table_block/locale/id_ID/LC_MESSAGES/django.po +1 -1
  800. wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  801. wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.po +2 -3
  802. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.mo +0 -0
  803. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +2 -2
  804. wagtail/contrib/table_block/locale/ja/LC_MESSAGES/django.po +1 -1
  805. wagtail/contrib/table_block/locale/ko/LC_MESSAGES/django.po +1 -1
  806. wagtail/contrib/table_block/locale/lt/LC_MESSAGES/django.po +1 -1
  807. wagtail/contrib/table_block/locale/lv/LC_MESSAGES/django.mo +0 -0
  808. wagtail/contrib/table_block/locale/lv/LC_MESSAGES/django.po +1 -1
  809. wagtail/contrib/table_block/locale/mi/LC_MESSAGES/django.po +1 -1
  810. wagtail/contrib/table_block/locale/mn/LC_MESSAGES/django.po +1 -1
  811. wagtail/contrib/table_block/locale/my/LC_MESSAGES/django.po +1 -1
  812. wagtail/contrib/table_block/locale/nb/LC_MESSAGES/django.po +1 -1
  813. wagtail/contrib/table_block/locale/nl/LC_MESSAGES/django.mo +0 -0
  814. wagtail/contrib/table_block/locale/nl/LC_MESSAGES/django.po +2 -2
  815. wagtail/contrib/table_block/locale/pl/LC_MESSAGES/django.mo +0 -0
  816. wagtail/contrib/table_block/locale/pl/LC_MESSAGES/django.po +2 -2
  817. wagtail/contrib/table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  818. wagtail/contrib/table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  819. wagtail/contrib/table_block/locale/ro/LC_MESSAGES/django.po +1 -1
  820. wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.mo +0 -0
  821. wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.po +4 -2
  822. wagtail/contrib/table_block/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  823. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.mo +0 -0
  824. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.po +3 -3
  825. wagtail/contrib/table_block/locale/sv/LC_MESSAGES/django.po +1 -1
  826. wagtail/contrib/table_block/locale/tet/LC_MESSAGES/django.po +1 -1
  827. wagtail/contrib/table_block/locale/th/LC_MESSAGES/django.mo +0 -0
  828. wagtail/contrib/table_block/locale/th/LC_MESSAGES/django.po +3 -2
  829. wagtail/contrib/table_block/locale/tr/LC_MESSAGES/django.po +1 -1
  830. wagtail/contrib/table_block/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  831. wagtail/contrib/table_block/locale/ug/LC_MESSAGES/django.po +1 -1
  832. wagtail/contrib/table_block/locale/uk/LC_MESSAGES/django.po +1 -1
  833. wagtail/contrib/table_block/locale/vi/LC_MESSAGES/django.po +1 -1
  834. wagtail/contrib/table_block/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  835. wagtail/contrib/table_block/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  836. wagtail/contrib/table_block/tests.py +1 -0
  837. wagtail/contrib/typed_table_block/blocks.py +101 -98
  838. wagtail/contrib/typed_table_block/locale/ar/LC_MESSAGES/django.mo +0 -0
  839. wagtail/contrib/typed_table_block/locale/ar/LC_MESSAGES/django.po +15 -6
  840. wagtail/contrib/typed_table_block/locale/be/LC_MESSAGES/django.po +1 -1
  841. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.po +1 -1
  842. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.po +1 -1
  843. wagtail/contrib/typed_table_block/locale/de/LC_MESSAGES/django.po +1 -1
  844. wagtail/contrib/typed_table_block/locale/dv/LC_MESSAGES/django.mo +0 -0
  845. wagtail/contrib/typed_table_block/locale/dv/LC_MESSAGES/django.po +1 -1
  846. wagtail/contrib/typed_table_block/locale/el/LC_MESSAGES/django.po +1 -1
  847. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
  848. wagtail/contrib/typed_table_block/locale/es/LC_MESSAGES/django.po +1 -1
  849. wagtail/contrib/typed_table_block/locale/fa/LC_MESSAGES/django.po +1 -1
  850. wagtail/contrib/typed_table_block/locale/fi/LC_MESSAGES/django.po +1 -1
  851. wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.po +1 -1
  852. wagtail/contrib/typed_table_block/locale/gl/LC_MESSAGES/django.po +1 -1
  853. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.po +1 -1
  854. wagtail/contrib/typed_table_block/locale/is_IS/LC_MESSAGES/django.po +1 -1
  855. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.po +1 -1
  856. wagtail/contrib/typed_table_block/locale/ko/LC_MESSAGES/django.po +1 -1
  857. wagtail/contrib/typed_table_block/locale/lt/LC_MESSAGES/django.po +1 -1
  858. wagtail/contrib/typed_table_block/locale/nl/LC_MESSAGES/django.po +1 -1
  859. wagtail/contrib/typed_table_block/locale/pl/LC_MESSAGES/django.po +1 -1
  860. wagtail/contrib/typed_table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  861. wagtail/contrib/typed_table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  862. wagtail/contrib/typed_table_block/locale/ro/LC_MESSAGES/django.po +1 -1
  863. wagtail/contrib/typed_table_block/locale/ru/LC_MESSAGES/django.po +1 -1
  864. wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.po +1 -1
  865. wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.po +1 -1
  866. wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.mo +0 -0
  867. wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.po +1 -1
  868. wagtail/contrib/typed_table_block/locale/ug/LC_MESSAGES/django.po +1 -1
  869. wagtail/contrib/typed_table_block/locale/uk/LC_MESSAGES/django.po +1 -1
  870. wagtail/contrib/typed_table_block/locale/zh/LC_MESSAGES/django.po +1 -1
  871. wagtail/contrib/typed_table_block/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  872. wagtail/contrib/typed_table_block/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  873. wagtail/contrib/typed_table_block/tests.py +32 -2
  874. wagtail/coreutils.py +57 -1
  875. wagtail/documents/locale/af/LC_MESSAGES/django.mo +0 -0
  876. wagtail/documents/locale/af/LC_MESSAGES/django.po +1 -1
  877. wagtail/documents/locale/ar/LC_MESSAGES/django.mo +0 -0
  878. wagtail/documents/locale/ar/LC_MESSAGES/django.po +259 -67
  879. wagtail/documents/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  880. wagtail/documents/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  881. wagtail/documents/locale/be/LC_MESSAGES/django.po +9 -9
  882. wagtail/documents/locale/bg/LC_MESSAGES/django.po +1 -1
  883. wagtail/documents/locale/bn/LC_MESSAGES/django.po +1 -1
  884. wagtail/documents/locale/ca/LC_MESSAGES/django.mo +0 -0
  885. wagtail/documents/locale/ca/LC_MESSAGES/django.po +13 -11
  886. wagtail/documents/locale/cs/LC_MESSAGES/django.po +9 -9
  887. wagtail/documents/locale/cy/LC_MESSAGES/django.mo +0 -0
  888. wagtail/documents/locale/cy/LC_MESSAGES/django.po +9 -16
  889. wagtail/documents/locale/da/LC_MESSAGES/django.po +1 -1
  890. wagtail/documents/locale/de/LC_MESSAGES/django.mo +0 -0
  891. wagtail/documents/locale/de/LC_MESSAGES/django.po +7 -14
  892. wagtail/documents/locale/dv/LC_MESSAGES/django.mo +0 -0
  893. wagtail/documents/locale/dv/LC_MESSAGES/django.po +7 -14
  894. wagtail/documents/locale/el/LC_MESSAGES/django.po +7 -7
  895. wagtail/documents/locale/en/LC_MESSAGES/django.po +33 -33
  896. wagtail/documents/locale/es/LC_MESSAGES/django.mo +0 -0
  897. wagtail/documents/locale/es/LC_MESSAGES/django.po +8 -15
  898. wagtail/documents/locale/es_419/LC_MESSAGES/django.po +1 -1
  899. wagtail/documents/locale/et/LC_MESSAGES/django.po +7 -7
  900. wagtail/documents/locale/eu/LC_MESSAGES/django.po +1 -1
  901. wagtail/documents/locale/fa/LC_MESSAGES/django.mo +0 -0
  902. wagtail/documents/locale/fa/LC_MESSAGES/django.po +7 -14
  903. wagtail/documents/locale/fi/LC_MESSAGES/django.mo +0 -0
  904. wagtail/documents/locale/fi/LC_MESSAGES/django.po +7 -14
  905. wagtail/documents/locale/fr/LC_MESSAGES/django.mo +0 -0
  906. wagtail/documents/locale/fr/LC_MESSAGES/django.po +14 -12
  907. wagtail/documents/locale/gl/LC_MESSAGES/django.mo +0 -0
  908. wagtail/documents/locale/gl/LC_MESSAGES/django.po +13 -11
  909. wagtail/documents/locale/he_IL/LC_MESSAGES/django.po +1 -1
  910. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  911. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +8 -15
  912. wagtail/documents/locale/ht/LC_MESSAGES/django.mo +0 -0
  913. wagtail/documents/locale/ht/LC_MESSAGES/django.po +1 -1
  914. wagtail/documents/locale/hu/LC_MESSAGES/django.mo +0 -0
  915. wagtail/documents/locale/hu/LC_MESSAGES/django.po +13 -11
  916. wagtail/documents/locale/id_ID/LC_MESSAGES/django.po +6 -6
  917. wagtail/documents/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  918. wagtail/documents/locale/is_IS/LC_MESSAGES/django.po +7 -14
  919. wagtail/documents/locale/it/LC_MESSAGES/django.mo +0 -0
  920. wagtail/documents/locale/it/LC_MESSAGES/django.po +8 -15
  921. wagtail/documents/locale/ja/LC_MESSAGES/django.po +6 -6
  922. wagtail/documents/locale/ka/LC_MESSAGES/django.po +1 -1
  923. wagtail/documents/locale/ko/LC_MESSAGES/django.mo +0 -0
  924. wagtail/documents/locale/ko/LC_MESSAGES/django.po +6 -13
  925. wagtail/documents/locale/lt/LC_MESSAGES/django.po +9 -9
  926. wagtail/documents/locale/lv/LC_MESSAGES/django.po +1 -1
  927. wagtail/documents/locale/mi/LC_MESSAGES/django.po +7 -7
  928. wagtail/documents/locale/mn/LC_MESSAGES/django.po +7 -7
  929. wagtail/documents/locale/my/LC_MESSAGES/django.po +1 -1
  930. wagtail/documents/locale/nb/LC_MESSAGES/django.mo +0 -0
  931. wagtail/documents/locale/nb/LC_MESSAGES/django.po +7 -14
  932. wagtail/documents/locale/nl/LC_MESSAGES/django.mo +0 -0
  933. wagtail/documents/locale/nl/LC_MESSAGES/django.po +7 -14
  934. wagtail/documents/locale/pl/LC_MESSAGES/django.mo +0 -0
  935. wagtail/documents/locale/pl/LC_MESSAGES/django.po +9 -16
  936. wagtail/documents/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  937. wagtail/documents/locale/pt_BR/LC_MESSAGES/django.po +8 -15
  938. wagtail/documents/locale/pt_PT/LC_MESSAGES/django.po +8 -8
  939. wagtail/documents/locale/ro/LC_MESSAGES/django.mo +0 -0
  940. wagtail/documents/locale/ro/LC_MESSAGES/django.po +8 -15
  941. wagtail/documents/locale/ru/LC_MESSAGES/django.mo +0 -0
  942. wagtail/documents/locale/ru/LC_MESSAGES/django.po +9 -16
  943. wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  944. wagtail/documents/locale/sl/LC_MESSAGES/django.mo +0 -0
  945. wagtail/documents/locale/sl/LC_MESSAGES/django.po +9 -16
  946. wagtail/documents/locale/sv/LC_MESSAGES/django.mo +0 -0
  947. wagtail/documents/locale/sv/LC_MESSAGES/django.po +7 -14
  948. wagtail/documents/locale/tet/LC_MESSAGES/django.po +6 -6
  949. wagtail/documents/locale/th/LC_MESSAGES/django.po +6 -6
  950. wagtail/documents/locale/tr/LC_MESSAGES/django.po +7 -7
  951. wagtail/documents/locale/tr_TR/LC_MESSAGES/django.po +7 -7
  952. wagtail/documents/locale/ug/LC_MESSAGES/django.mo +0 -0
  953. wagtail/documents/locale/ug/LC_MESSAGES/django.po +7 -14
  954. wagtail/documents/locale/uk/LC_MESSAGES/django.mo +0 -0
  955. wagtail/documents/locale/uk/LC_MESSAGES/django.po +9 -16
  956. wagtail/documents/locale/vi/LC_MESSAGES/django.po +6 -6
  957. wagtail/documents/locale/zh/LC_MESSAGES/django.po +1 -1
  958. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  959. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.po +6 -13
  960. wagtail/documents/locale/zh_Hant/LC_MESSAGES/django.po +6 -6
  961. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html +12 -9
  962. wagtail/documents/templates/wagtaildocs/chooser/results.html +1 -1
  963. wagtail/documents/templates/wagtaildocs/multiple/add.html +2 -2
  964. wagtail/documents/tests/test_admin_views.py +26 -0
  965. wagtail/documents/tests/test_bulk_actions/test_bulk_add_to_collection.py +85 -1
  966. wagtail/documents/tests/test_bulk_actions/test_bulk_delete.py +65 -18
  967. wagtail/documents/views/bulk_actions/delete.py +5 -1
  968. wagtail/documents/views/bulk_actions/document_bulk_action.py +3 -1
  969. wagtail/documents/views/documents.py +15 -1
  970. wagtail/embeds/blocks.py +5 -4
  971. wagtail/embeds/embeds.py +5 -2
  972. wagtail/embeds/finders/oembed.py +6 -10
  973. wagtail/embeds/locale/ar/LC_MESSAGES/django.po +1 -1
  974. wagtail/embeds/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  975. wagtail/embeds/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  976. wagtail/embeds/locale/be/LC_MESSAGES/django.po +1 -1
  977. wagtail/embeds/locale/bg/LC_MESSAGES/django.po +1 -1
  978. wagtail/embeds/locale/bn/LC_MESSAGES/django.mo +0 -0
  979. wagtail/embeds/locale/bn/LC_MESSAGES/django.po +1 -1
  980. wagtail/embeds/locale/ca/LC_MESSAGES/django.po +1 -1
  981. wagtail/embeds/locale/cs/LC_MESSAGES/django.po +1 -1
  982. wagtail/embeds/locale/cy/LC_MESSAGES/django.po +1 -1
  983. wagtail/embeds/locale/da/LC_MESSAGES/django.mo +0 -0
  984. wagtail/embeds/locale/da/LC_MESSAGES/django.po +1 -1
  985. wagtail/embeds/locale/de/LC_MESSAGES/django.po +1 -1
  986. wagtail/embeds/locale/dv/LC_MESSAGES/django.mo +0 -0
  987. wagtail/embeds/locale/dv/LC_MESSAGES/django.po +1 -1
  988. wagtail/embeds/locale/el/LC_MESSAGES/django.po +2 -1
  989. wagtail/embeds/locale/en/LC_MESSAGES/django.po +2 -2
  990. wagtail/embeds/locale/es/LC_MESSAGES/django.po +1 -1
  991. wagtail/embeds/locale/es_419/LC_MESSAGES/django.mo +0 -0
  992. wagtail/embeds/locale/es_419/LC_MESSAGES/django.po +1 -1
  993. wagtail/embeds/locale/et/LC_MESSAGES/django.po +1 -1
  994. wagtail/embeds/locale/fa/LC_MESSAGES/django.po +1 -1
  995. wagtail/embeds/locale/fi/LC_MESSAGES/django.po +1 -1
  996. wagtail/embeds/locale/fr/LC_MESSAGES/django.po +2 -1
  997. wagtail/embeds/locale/gl/LC_MESSAGES/django.po +1 -1
  998. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.po +1 -1
  999. wagtail/embeds/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1000. wagtail/embeds/locale/ht/LC_MESSAGES/django.po +1 -1
  1001. wagtail/embeds/locale/hu/LC_MESSAGES/django.po +1 -1
  1002. wagtail/embeds/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1003. wagtail/embeds/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1004. wagtail/embeds/locale/it/LC_MESSAGES/django.po +1 -1
  1005. wagtail/embeds/locale/ja/LC_MESSAGES/django.po +1 -1
  1006. wagtail/embeds/locale/ko/LC_MESSAGES/django.po +1 -1
  1007. wagtail/embeds/locale/lt/LC_MESSAGES/django.po +1 -1
  1008. wagtail/embeds/locale/lv/LC_MESSAGES/django.po +1 -1
  1009. wagtail/embeds/locale/mi/LC_MESSAGES/django.po +1 -1
  1010. wagtail/embeds/locale/mn/LC_MESSAGES/django.mo +0 -0
  1011. wagtail/embeds/locale/mn/LC_MESSAGES/django.po +3 -2
  1012. wagtail/embeds/locale/my/LC_MESSAGES/django.mo +0 -0
  1013. wagtail/embeds/locale/my/LC_MESSAGES/django.po +1 -1
  1014. wagtail/embeds/locale/nb/LC_MESSAGES/django.po +1 -1
  1015. wagtail/embeds/locale/nl/LC_MESSAGES/django.mo +0 -0
  1016. wagtail/embeds/locale/nl/LC_MESSAGES/django.po +2 -2
  1017. wagtail/embeds/locale/pl/LC_MESSAGES/django.po +1 -1
  1018. wagtail/embeds/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1019. wagtail/embeds/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1020. wagtail/embeds/locale/ro/LC_MESSAGES/django.po +1 -1
  1021. wagtail/embeds/locale/ru/LC_MESSAGES/django.po +2 -1
  1022. wagtail/embeds/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1023. wagtail/embeds/locale/sl/LC_MESSAGES/django.po +1 -1
  1024. wagtail/embeds/locale/sv/LC_MESSAGES/django.po +1 -1
  1025. wagtail/embeds/locale/tet/LC_MESSAGES/django.po +1 -1
  1026. wagtail/embeds/locale/th/LC_MESSAGES/django.po +1 -1
  1027. wagtail/embeds/locale/tr/LC_MESSAGES/django.po +1 -1
  1028. wagtail/embeds/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1029. wagtail/embeds/locale/ug/LC_MESSAGES/django.po +1 -1
  1030. wagtail/embeds/locale/uk/LC_MESSAGES/django.po +1 -1
  1031. wagtail/embeds/locale/vi/LC_MESSAGES/django.po +1 -1
  1032. wagtail/embeds/locale/zh/LC_MESSAGES/django.po +1 -1
  1033. wagtail/embeds/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1034. wagtail/embeds/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1035. wagtail/embeds/oembed_providers.py +10 -1
  1036. wagtail/embeds/tests/test_embeds.py +220 -165
  1037. wagtail/fields.py +30 -1
  1038. wagtail/images/blocks.py +1 -1
  1039. wagtail/images/fields.py +4 -11
  1040. wagtail/images/locale/ar/LC_MESSAGES/django.mo +0 -0
  1041. wagtail/images/locale/ar/LC_MESSAGES/django.po +398 -88
  1042. wagtail/images/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  1043. wagtail/images/locale/be/LC_MESSAGES/django.mo +0 -0
  1044. wagtail/images/locale/be/LC_MESSAGES/django.po +15 -9
  1045. wagtail/images/locale/bg/LC_MESSAGES/django.mo +0 -0
  1046. wagtail/images/locale/bg/LC_MESSAGES/django.po +4 -1
  1047. wagtail/images/locale/bn/LC_MESSAGES/django.po +1 -1
  1048. wagtail/images/locale/ca/LC_MESSAGES/django.mo +0 -0
  1049. wagtail/images/locale/ca/LC_MESSAGES/django.po +30 -13
  1050. wagtail/images/locale/cs/LC_MESSAGES/django.mo +0 -0
  1051. wagtail/images/locale/cs/LC_MESSAGES/django.po +15 -9
  1052. wagtail/images/locale/cy/LC_MESSAGES/django.mo +0 -0
  1053. wagtail/images/locale/cy/LC_MESSAGES/django.po +12 -16
  1054. wagtail/images/locale/da/LC_MESSAGES/django.mo +0 -0
  1055. wagtail/images/locale/da/LC_MESSAGES/django.po +4 -1
  1056. wagtail/images/locale/de/LC_MESSAGES/django.mo +0 -0
  1057. wagtail/images/locale/de/LC_MESSAGES/django.po +13 -14
  1058. wagtail/images/locale/dv/LC_MESSAGES/django.mo +0 -0
  1059. wagtail/images/locale/dv/LC_MESSAGES/django.po +13 -12
  1060. wagtail/images/locale/el/LC_MESSAGES/django.mo +0 -0
  1061. wagtail/images/locale/el/LC_MESSAGES/django.po +13 -7
  1062. wagtail/images/locale/en/LC_MESSAGES/django.po +105 -85
  1063. wagtail/images/locale/es/LC_MESSAGES/django.mo +0 -0
  1064. wagtail/images/locale/es/LC_MESSAGES/django.po +14 -15
  1065. wagtail/images/locale/es_419/LC_MESSAGES/django.mo +0 -0
  1066. wagtail/images/locale/es_419/LC_MESSAGES/django.po +4 -1
  1067. wagtail/images/locale/et/LC_MESSAGES/django.mo +0 -0
  1068. wagtail/images/locale/et/LC_MESSAGES/django.po +13 -7
  1069. wagtail/images/locale/eu/LC_MESSAGES/django.mo +0 -0
  1070. wagtail/images/locale/eu/LC_MESSAGES/django.po +4 -1
  1071. wagtail/images/locale/fa/LC_MESSAGES/django.mo +0 -0
  1072. wagtail/images/locale/fa/LC_MESSAGES/django.po +10 -14
  1073. wagtail/images/locale/fi/LC_MESSAGES/django.mo +0 -0
  1074. wagtail/images/locale/fi/LC_MESSAGES/django.po +13 -14
  1075. wagtail/images/locale/fr/LC_MESSAGES/django.mo +0 -0
  1076. wagtail/images/locale/fr/LC_MESSAGES/django.po +31 -14
  1077. wagtail/images/locale/gl/LC_MESSAGES/django.mo +0 -0
  1078. wagtail/images/locale/gl/LC_MESSAGES/django.po +30 -13
  1079. wagtail/images/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  1080. wagtail/images/locale/he_IL/LC_MESSAGES/django.po +4 -1
  1081. wagtail/images/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  1082. wagtail/images/locale/hr_HR/LC_MESSAGES/django.po +14 -15
  1083. wagtail/images/locale/ht/LC_MESSAGES/django.po +1 -1
  1084. wagtail/images/locale/hu/LC_MESSAGES/django.mo +0 -0
  1085. wagtail/images/locale/hu/LC_MESSAGES/django.po +29 -12
  1086. wagtail/images/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  1087. wagtail/images/locale/id_ID/LC_MESSAGES/django.po +9 -6
  1088. wagtail/images/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1089. wagtail/images/locale/is_IS/LC_MESSAGES/django.po +13 -14
  1090. wagtail/images/locale/it/LC_MESSAGES/django.mo +0 -0
  1091. wagtail/images/locale/it/LC_MESSAGES/django.po +14 -15
  1092. wagtail/images/locale/ja/LC_MESSAGES/django.mo +0 -0
  1093. wagtail/images/locale/ja/LC_MESSAGES/django.po +12 -6
  1094. wagtail/images/locale/ka/LC_MESSAGES/django.mo +0 -0
  1095. wagtail/images/locale/ka/LC_MESSAGES/django.po +4 -1
  1096. wagtail/images/locale/ko/LC_MESSAGES/django.mo +0 -0
  1097. wagtail/images/locale/ko/LC_MESSAGES/django.po +12 -13
  1098. wagtail/images/locale/lt/LC_MESSAGES/django.mo +0 -0
  1099. wagtail/images/locale/lt/LC_MESSAGES/django.po +15 -9
  1100. wagtail/images/locale/lv/LC_MESSAGES/django.mo +0 -0
  1101. wagtail/images/locale/lv/LC_MESSAGES/django.po +4 -1
  1102. wagtail/images/locale/mi/LC_MESSAGES/django.mo +0 -0
  1103. wagtail/images/locale/mi/LC_MESSAGES/django.po +13 -7
  1104. wagtail/images/locale/mn/LC_MESSAGES/django.mo +0 -0
  1105. wagtail/images/locale/mn/LC_MESSAGES/django.po +10 -7
  1106. wagtail/images/locale/my/LC_MESSAGES/django.mo +0 -0
  1107. wagtail/images/locale/my/LC_MESSAGES/django.po +4 -1
  1108. wagtail/images/locale/nb/LC_MESSAGES/django.mo +0 -0
  1109. wagtail/images/locale/nb/LC_MESSAGES/django.po +13 -14
  1110. wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
  1111. wagtail/images/locale/nl/LC_MESSAGES/django.po +17 -17
  1112. wagtail/images/locale/pl/LC_MESSAGES/django.mo +0 -0
  1113. wagtail/images/locale/pl/LC_MESSAGES/django.po +15 -16
  1114. wagtail/images/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1115. wagtail/images/locale/pt_BR/LC_MESSAGES/django.po +14 -15
  1116. wagtail/images/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  1117. wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +14 -8
  1118. wagtail/images/locale/ro/LC_MESSAGES/django.mo +0 -0
  1119. wagtail/images/locale/ro/LC_MESSAGES/django.po +14 -15
  1120. wagtail/images/locale/ru/LC_MESSAGES/django.mo +0 -0
  1121. wagtail/images/locale/ru/LC_MESSAGES/django.po +15 -16
  1122. wagtail/images/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  1123. wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +4 -1
  1124. wagtail/images/locale/sl/LC_MESSAGES/django.mo +0 -0
  1125. wagtail/images/locale/sl/LC_MESSAGES/django.po +15 -16
  1126. wagtail/images/locale/sv/LC_MESSAGES/django.mo +0 -0
  1127. wagtail/images/locale/sv/LC_MESSAGES/django.po +13 -14
  1128. wagtail/images/locale/tet/LC_MESSAGES/django.mo +0 -0
  1129. wagtail/images/locale/tet/LC_MESSAGES/django.po +9 -6
  1130. wagtail/images/locale/th/LC_MESSAGES/django.mo +0 -0
  1131. wagtail/images/locale/th/LC_MESSAGES/django.po +9 -6
  1132. wagtail/images/locale/tr/LC_MESSAGES/django.mo +0 -0
  1133. wagtail/images/locale/tr/LC_MESSAGES/django.po +10 -7
  1134. wagtail/images/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  1135. wagtail/images/locale/tr_TR/LC_MESSAGES/django.po +10 -7
  1136. wagtail/images/locale/ug/LC_MESSAGES/django.mo +0 -0
  1137. wagtail/images/locale/ug/LC_MESSAGES/django.po +13 -14
  1138. wagtail/images/locale/uk/LC_MESSAGES/django.mo +0 -0
  1139. wagtail/images/locale/uk/LC_MESSAGES/django.po +15 -16
  1140. wagtail/images/locale/vi/LC_MESSAGES/django.mo +0 -0
  1141. wagtail/images/locale/vi/LC_MESSAGES/django.po +9 -6
  1142. wagtail/images/locale/zh/LC_MESSAGES/django.mo +0 -0
  1143. wagtail/images/locale/zh/LC_MESSAGES/django.po +4 -1
  1144. wagtail/images/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  1145. wagtail/images/locale/zh_Hans/LC_MESSAGES/django.po +12 -13
  1146. wagtail/images/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  1147. wagtail/images/locale/zh_Hant/LC_MESSAGES/django.po +12 -6
  1148. wagtail/images/models.py +93 -5
  1149. wagtail/images/static/wagtailimages/js/focal-point-chooser.js +1 -1
  1150. wagtail/images/static/wagtailimages/js/image-block.js +1 -1
  1151. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_delete.html +12 -9
  1152. wagtail/images/templates/wagtailimages/chooser/results.html +1 -1
  1153. wagtail/images/templates/wagtailimages/images/edit.html +2 -1
  1154. wagtail/images/templates/wagtailimages/images/image_preview_column_cell.html +10 -0
  1155. wagtail/images/templates/wagtailimages/images/index.html +3 -0
  1156. wagtail/images/templates/wagtailimages/images/index_results.html +29 -18
  1157. wagtail/images/templates/wagtailimages/images/layout_toggle_button.html +10 -0
  1158. wagtail/images/templates/wagtailimages/images/title_column_cell.html +11 -0
  1159. wagtail/images/templates/wagtailimages/images/url_generator.html +1 -8
  1160. wagtail/images/templates/wagtailimages/multiple/add.html +3 -2
  1161. wagtail/images/templatetags/wagtailimages_tags.py +5 -16
  1162. wagtail/images/tests/test_admin_views.py +335 -5
  1163. wagtail/images/tests/test_blocks.py +1 -1
  1164. wagtail/images/tests/test_bulk_actions/test_bulk_add_to_collection.py +84 -1
  1165. wagtail/images/tests/test_bulk_actions/test_bulk_delete.py +65 -18
  1166. wagtail/images/tests/test_image_operations.py +2 -3
  1167. wagtail/images/tests/test_jinja2_svg.py +240 -0
  1168. wagtail/images/tests/test_models.py +114 -0
  1169. wagtail/images/tests/test_templatetags.py +58 -4
  1170. wagtail/images/utils.py +27 -0
  1171. wagtail/images/views/bulk_actions/delete.py +5 -1
  1172. wagtail/images/views/bulk_actions/image_bulk_action.py +3 -1
  1173. wagtail/images/views/images.py +79 -2
  1174. wagtail/images/views/multiple.py +6 -2
  1175. wagtail/images/widgets.py +1 -1
  1176. wagtail/locale/af/LC_MESSAGES/django.po +1 -1
  1177. wagtail/locale/ar/LC_MESSAGES/django.mo +0 -0
  1178. wagtail/locale/ar/LC_MESSAGES/django.po +789 -86
  1179. wagtail/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  1180. wagtail/locale/be/LC_MESSAGES/django.po +1 -1
  1181. wagtail/locale/bg/LC_MESSAGES/django.po +1 -1
  1182. wagtail/locale/bn/LC_MESSAGES/django.po +1 -1
  1183. wagtail/locale/ca/LC_MESSAGES/django.mo +0 -0
  1184. wagtail/locale/ca/LC_MESSAGES/django.po +12 -3
  1185. wagtail/locale/cs/LC_MESSAGES/django.po +1 -1
  1186. wagtail/locale/cy/LC_MESSAGES/django.po +1 -1
  1187. wagtail/locale/da/LC_MESSAGES/django.po +1 -1
  1188. wagtail/locale/de/LC_MESSAGES/django.po +1 -1
  1189. wagtail/locale/dv/LC_MESSAGES/django.po +1 -1
  1190. wagtail/locale/el/LC_MESSAGES/django.po +1 -1
  1191. wagtail/locale/en/LC_MESSAGES/django.po +99 -87
  1192. wagtail/locale/es/LC_MESSAGES/django.po +1 -1
  1193. wagtail/locale/es_419/LC_MESSAGES/django.po +1 -1
  1194. wagtail/locale/et/LC_MESSAGES/django.po +1 -1
  1195. wagtail/locale/eu/LC_MESSAGES/django.po +1 -1
  1196. wagtail/locale/fa/LC_MESSAGES/django.po +1 -1
  1197. wagtail/locale/fi/LC_MESSAGES/django.po +1 -1
  1198. wagtail/locale/fr/LC_MESSAGES/django.mo +0 -0
  1199. wagtail/locale/fr/LC_MESSAGES/django.po +12 -3
  1200. wagtail/locale/gl/LC_MESSAGES/django.mo +0 -0
  1201. wagtail/locale/gl/LC_MESSAGES/django.po +12 -3
  1202. wagtail/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1203. wagtail/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1204. wagtail/locale/hu/LC_MESSAGES/django.mo +0 -0
  1205. wagtail/locale/hu/LC_MESSAGES/django.po +11 -2
  1206. wagtail/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1207. wagtail/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1208. wagtail/locale/it/LC_MESSAGES/django.po +1 -1
  1209. wagtail/locale/ja/LC_MESSAGES/django.po +1 -1
  1210. wagtail/locale/ka/LC_MESSAGES/django.po +1 -1
  1211. wagtail/locale/ko/LC_MESSAGES/django.po +1 -1
  1212. wagtail/locale/lt/LC_MESSAGES/django.po +1 -1
  1213. wagtail/locale/lv/LC_MESSAGES/django.po +1 -1
  1214. wagtail/locale/mi/LC_MESSAGES/django.po +1 -1
  1215. wagtail/locale/mn/LC_MESSAGES/django.po +1 -1
  1216. wagtail/locale/my/LC_MESSAGES/django.po +1 -1
  1217. wagtail/locale/nb/LC_MESSAGES/django.po +1 -1
  1218. wagtail/locale/nl/LC_MESSAGES/django.po +1 -1
  1219. wagtail/locale/pl/LC_MESSAGES/django.po +1 -1
  1220. wagtail/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1221. wagtail/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1222. wagtail/locale/ro/LC_MESSAGES/django.po +1 -1
  1223. wagtail/locale/ru/LC_MESSAGES/django.po +1 -1
  1224. wagtail/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1225. wagtail/locale/sl/LC_MESSAGES/django.po +1 -1
  1226. wagtail/locale/sv/LC_MESSAGES/django.po +1 -1
  1227. wagtail/locale/tet/LC_MESSAGES/django.po +1 -1
  1228. wagtail/locale/th/LC_MESSAGES/django.po +1 -1
  1229. wagtail/locale/tr/LC_MESSAGES/django.po +1 -1
  1230. wagtail/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1231. wagtail/locale/ug/LC_MESSAGES/django.po +1 -1
  1232. wagtail/locale/uk/LC_MESSAGES/django.po +1 -1
  1233. wagtail/locale/vi/LC_MESSAGES/django.po +1 -1
  1234. wagtail/locale/zh/LC_MESSAGES/django.po +1 -1
  1235. wagtail/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1236. wagtail/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1237. wagtail/locales/locale/ar/LC_MESSAGES/django.mo +0 -0
  1238. wagtail/locales/locale/ar/LC_MESSAGES/django.po +78 -6
  1239. wagtail/locales/locale/be/LC_MESSAGES/django.po +1 -1
  1240. wagtail/locales/locale/bg/LC_MESSAGES/django.mo +0 -0
  1241. wagtail/locales/locale/bg/LC_MESSAGES/django.po +1 -1
  1242. wagtail/locales/locale/ca/LC_MESSAGES/django.po +1 -1
  1243. wagtail/locales/locale/cs/LC_MESSAGES/django.po +1 -1
  1244. wagtail/locales/locale/cy/LC_MESSAGES/django.po +1 -1
  1245. wagtail/locales/locale/da/LC_MESSAGES/django.mo +0 -0
  1246. wagtail/locales/locale/da/LC_MESSAGES/django.po +1 -1
  1247. wagtail/locales/locale/de/LC_MESSAGES/django.po +1 -1
  1248. wagtail/locales/locale/dv/LC_MESSAGES/django.po +1 -1
  1249. wagtail/locales/locale/el/LC_MESSAGES/django.po +1 -1
  1250. wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
  1251. wagtail/locales/locale/es/LC_MESSAGES/django.po +1 -1
  1252. wagtail/locales/locale/et/LC_MESSAGES/django.po +1 -1
  1253. wagtail/locales/locale/fa/LC_MESSAGES/django.mo +0 -0
  1254. wagtail/locales/locale/fa/LC_MESSAGES/django.po +1 -1
  1255. wagtail/locales/locale/fi/LC_MESSAGES/django.po +1 -1
  1256. wagtail/locales/locale/fr/LC_MESSAGES/django.mo +0 -0
  1257. wagtail/locales/locale/fr/LC_MESSAGES/django.po +4 -3
  1258. wagtail/locales/locale/gl/LC_MESSAGES/django.po +1 -1
  1259. wagtail/locales/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  1260. wagtail/locales/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1261. wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1262. wagtail/locales/locale/hu/LC_MESSAGES/django.mo +0 -0
  1263. wagtail/locales/locale/hu/LC_MESSAGES/django.po +13 -3
  1264. wagtail/locales/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1265. wagtail/locales/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1266. wagtail/locales/locale/is_IS/LC_MESSAGES/django.po +13 -3
  1267. wagtail/locales/locale/it/LC_MESSAGES/django.po +1 -1
  1268. wagtail/locales/locale/ja/LC_MESSAGES/django.po +1 -1
  1269. wagtail/locales/locale/ko/LC_MESSAGES/django.po +1 -1
  1270. wagtail/locales/locale/lt/LC_MESSAGES/django.po +1 -1
  1271. wagtail/locales/locale/lv/LC_MESSAGES/django.mo +0 -0
  1272. wagtail/locales/locale/lv/LC_MESSAGES/django.po +1 -1
  1273. wagtail/locales/locale/mi/LC_MESSAGES/django.po +1 -1
  1274. wagtail/locales/locale/mn/LC_MESSAGES/django.po +1 -1
  1275. wagtail/locales/locale/my/LC_MESSAGES/django.mo +0 -0
  1276. wagtail/locales/locale/my/LC_MESSAGES/django.po +1 -1
  1277. wagtail/locales/locale/nb/LC_MESSAGES/django.po +1 -1
  1278. wagtail/locales/locale/nl/LC_MESSAGES/django.po +1 -1
  1279. wagtail/locales/locale/pl/LC_MESSAGES/django.po +1 -1
  1280. wagtail/locales/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1281. wagtail/locales/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1282. wagtail/locales/locale/ro/LC_MESSAGES/django.po +1 -1
  1283. wagtail/locales/locale/ru/LC_MESSAGES/django.po +1 -1
  1284. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  1285. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1286. wagtail/locales/locale/sl/LC_MESSAGES/django.po +1 -1
  1287. wagtail/locales/locale/sv/LC_MESSAGES/django.po +1 -1
  1288. wagtail/locales/locale/tet/LC_MESSAGES/django.po +1 -1
  1289. wagtail/locales/locale/th/LC_MESSAGES/django.po +1 -1
  1290. wagtail/locales/locale/tr/LC_MESSAGES/django.po +1 -1
  1291. wagtail/locales/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1292. wagtail/locales/locale/ug/LC_MESSAGES/django.po +1 -1
  1293. wagtail/locales/locale/uk/LC_MESSAGES/django.po +1 -1
  1294. wagtail/locales/locale/vi/LC_MESSAGES/django.mo +0 -0
  1295. wagtail/locales/locale/vi/LC_MESSAGES/django.po +1 -1
  1296. wagtail/locales/locale/zh/LC_MESSAGES/django.mo +0 -0
  1297. wagtail/locales/locale/zh/LC_MESSAGES/django.po +1 -1
  1298. wagtail/locales/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1299. wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1300. wagtail/migrations/0095_groupsitepermission.py +60 -0
  1301. wagtail/models/__init__.py +1 -1
  1302. wagtail/models/pages.py +13 -3
  1303. wagtail/models/preview.py +9 -1
  1304. wagtail/models/reference_index.py +125 -5
  1305. wagtail/models/revisions.py +31 -13
  1306. wagtail/models/sites.py +48 -0
  1307. wagtail/models/workflows.py +35 -11
  1308. wagtail/permission_policies/base.py +9 -7
  1309. wagtail/permission_policies/collections.py +7 -7
  1310. wagtail/permission_policies/sites.py +195 -0
  1311. wagtail/project_template/home/migrations/0002_create_homepage.py +8 -3
  1312. wagtail/project_template/home/tests.py +43 -0
  1313. wagtail/project_template/project_name/settings/base.py +3 -7
  1314. wagtail/project_template/project_name/settings/production.py +6 -0
  1315. wagtail/project_template/requirements.txt +1 -1
  1316. wagtail/rich_text/__init__.py +11 -1
  1317. wagtail/search/backends/base.py +13 -0
  1318. wagtail/search/backends/database/fallback.py +1 -0
  1319. wagtail/search/backends/database/mysql/mysql.py +1 -0
  1320. wagtail/search/backends/database/postgres/postgres.py +1 -0
  1321. wagtail/search/backends/database/sqlite/sqlite.py +1 -0
  1322. wagtail/search/locale/ar/LC_MESSAGES/django.mo +0 -0
  1323. wagtail/search/locale/ar/LC_MESSAGES/django.po +8 -2
  1324. wagtail/search/locale/be/LC_MESSAGES/django.mo +0 -0
  1325. wagtail/search/locale/be/LC_MESSAGES/django.po +3 -2
  1326. wagtail/search/locale/ca/LC_MESSAGES/django.po +1 -1
  1327. wagtail/search/locale/cs/LC_MESSAGES/django.mo +0 -0
  1328. wagtail/search/locale/cs/LC_MESSAGES/django.po +1 -1
  1329. wagtail/search/locale/cy/LC_MESSAGES/django.po +1 -1
  1330. wagtail/search/locale/de/LC_MESSAGES/django.po +1 -1
  1331. wagtail/search/locale/dv/LC_MESSAGES/django.po +2 -1
  1332. wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
  1333. wagtail/search/locale/es/LC_MESSAGES/django.po +1 -1
  1334. wagtail/search/locale/et/LC_MESSAGES/django.mo +0 -0
  1335. wagtail/search/locale/et/LC_MESSAGES/django.po +1 -1
  1336. wagtail/search/locale/fa/LC_MESSAGES/django.mo +0 -0
  1337. wagtail/search/locale/fa/LC_MESSAGES/django.po +3 -2
  1338. wagtail/search/locale/fi/LC_MESSAGES/django.po +1 -1
  1339. wagtail/search/locale/fr/LC_MESSAGES/django.po +1 -1
  1340. wagtail/search/locale/gl/LC_MESSAGES/django.po +1 -1
  1341. wagtail/search/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1342. wagtail/search/locale/ht/LC_MESSAGES/django.mo +0 -0
  1343. wagtail/search/locale/ht/LC_MESSAGES/django.po +1 -1
  1344. wagtail/search/locale/hu/LC_MESSAGES/django.po +1 -1
  1345. wagtail/search/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  1346. wagtail/search/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1347. wagtail/search/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1348. wagtail/search/locale/it/LC_MESSAGES/django.po +1 -1
  1349. wagtail/search/locale/ja/LC_MESSAGES/django.mo +0 -0
  1350. wagtail/search/locale/ja/LC_MESSAGES/django.po +1 -1
  1351. wagtail/search/locale/ko/LC_MESSAGES/django.po +1 -1
  1352. wagtail/search/locale/lt/LC_MESSAGES/django.mo +0 -0
  1353. wagtail/search/locale/lt/LC_MESSAGES/django.po +1 -1
  1354. wagtail/search/locale/mi/LC_MESSAGES/django.mo +0 -0
  1355. wagtail/search/locale/mi/LC_MESSAGES/django.po +1 -1
  1356. wagtail/search/locale/mn/LC_MESSAGES/django.mo +0 -0
  1357. wagtail/search/locale/mn/LC_MESSAGES/django.po +1 -1
  1358. wagtail/search/locale/my/LC_MESSAGES/django.mo +0 -0
  1359. wagtail/search/locale/my/LC_MESSAGES/django.po +1 -1
  1360. wagtail/search/locale/nb/LC_MESSAGES/django.mo +0 -0
  1361. wagtail/search/locale/nb/LC_MESSAGES/django.po +3 -2
  1362. wagtail/search/locale/nl/LC_MESSAGES/django.po +1 -1
  1363. wagtail/search/locale/pl/LC_MESSAGES/django.mo +0 -0
  1364. wagtail/search/locale/pl/LC_MESSAGES/django.po +3 -3
  1365. wagtail/search/locale/pt_BR/LC_MESSAGES/django.po +2 -1
  1366. wagtail/search/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1367. wagtail/search/locale/ro/LC_MESSAGES/django.po +1 -1
  1368. wagtail/search/locale/ru/LC_MESSAGES/django.po +2 -1
  1369. wagtail/search/locale/sl/LC_MESSAGES/django.po +1 -1
  1370. wagtail/search/locale/sv/LC_MESSAGES/django.po +1 -1
  1371. wagtail/search/locale/tet/LC_MESSAGES/django.mo +0 -0
  1372. wagtail/search/locale/tet/LC_MESSAGES/django.po +1 -1
  1373. wagtail/search/locale/th/LC_MESSAGES/django.mo +0 -0
  1374. wagtail/search/locale/th/LC_MESSAGES/django.po +1 -1
  1375. wagtail/search/locale/tr/LC_MESSAGES/django.mo +0 -0
  1376. wagtail/search/locale/tr/LC_MESSAGES/django.po +1 -1
  1377. wagtail/search/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  1378. wagtail/search/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1379. wagtail/search/locale/ug/LC_MESSAGES/django.po +1 -1
  1380. wagtail/search/locale/uk/LC_MESSAGES/django.po +1 -1
  1381. wagtail/search/locale/vi/LC_MESSAGES/django.mo +0 -0
  1382. wagtail/search/locale/vi/LC_MESSAGES/django.po +1 -1
  1383. wagtail/search/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1384. wagtail/search/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  1385. wagtail/search/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1386. wagtail/search/migrations/0009_remove_ngram_autocomplete.py +45 -0
  1387. wagtail/search/tests/test_page_search.py +20 -1
  1388. wagtail/signals.py +4 -0
  1389. wagtail/sites/locale/ar/LC_MESSAGES/django.po +1 -1
  1390. wagtail/sites/locale/be/LC_MESSAGES/django.po +1 -1
  1391. wagtail/sites/locale/bn/LC_MESSAGES/django.mo +0 -0
  1392. wagtail/sites/locale/bn/LC_MESSAGES/django.po +1 -1
  1393. wagtail/sites/locale/ca/LC_MESSAGES/django.po +1 -1
  1394. wagtail/sites/locale/cs/LC_MESSAGES/django.po +1 -1
  1395. wagtail/sites/locale/cy/LC_MESSAGES/django.po +1 -1
  1396. wagtail/sites/locale/da/LC_MESSAGES/django.mo +0 -0
  1397. wagtail/sites/locale/da/LC_MESSAGES/django.po +1 -1
  1398. wagtail/sites/locale/de/LC_MESSAGES/django.po +1 -1
  1399. wagtail/sites/locale/dv/LC_MESSAGES/django.po +2 -1
  1400. wagtail/sites/locale/el/LC_MESSAGES/django.po +2 -1
  1401. wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
  1402. wagtail/sites/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  1403. wagtail/sites/locale/en_IN/LC_MESSAGES/django.po +1 -1
  1404. wagtail/sites/locale/es/LC_MESSAGES/django.po +1 -1
  1405. wagtail/sites/locale/es_419/LC_MESSAGES/django.mo +0 -0
  1406. wagtail/sites/locale/es_419/LC_MESSAGES/django.po +1 -1
  1407. wagtail/sites/locale/es_VE/LC_MESSAGES/django.mo +0 -0
  1408. wagtail/sites/locale/es_VE/LC_MESSAGES/django.po +1 -1
  1409. wagtail/sites/locale/et/LC_MESSAGES/django.po +1 -1
  1410. wagtail/sites/locale/fa/LC_MESSAGES/django.po +1 -1
  1411. wagtail/sites/locale/fi/LC_MESSAGES/django.po +1 -1
  1412. wagtail/sites/locale/fr/LC_MESSAGES/django.po +1 -1
  1413. wagtail/sites/locale/gl/LC_MESSAGES/django.po +1 -1
  1414. wagtail/sites/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1415. wagtail/sites/locale/hi/LC_MESSAGES/django.mo +0 -0
  1416. wagtail/sites/locale/hi/LC_MESSAGES/django.po +1 -1
  1417. wagtail/sites/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1418. wagtail/sites/locale/ht/LC_MESSAGES/django.po +1 -1
  1419. wagtail/sites/locale/hu/LC_MESSAGES/django.po +1 -1
  1420. wagtail/sites/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1421. wagtail/sites/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1422. wagtail/sites/locale/it/LC_MESSAGES/django.po +1 -1
  1423. wagtail/sites/locale/ja/LC_MESSAGES/django.po +1 -1
  1424. wagtail/sites/locale/ka/LC_MESSAGES/django.po +1 -1
  1425. wagtail/sites/locale/ko/LC_MESSAGES/django.po +1 -1
  1426. wagtail/sites/locale/lt/LC_MESSAGES/django.po +1 -1
  1427. wagtail/sites/locale/lv/LC_MESSAGES/django.po +1 -1
  1428. wagtail/sites/locale/mi/LC_MESSAGES/django.po +1 -1
  1429. wagtail/sites/locale/mn/LC_MESSAGES/django.po +1 -1
  1430. wagtail/sites/locale/my/LC_MESSAGES/django.po +1 -1
  1431. wagtail/sites/locale/nb/LC_MESSAGES/django.po +1 -1
  1432. wagtail/sites/locale/nl/LC_MESSAGES/django.po +1 -1
  1433. wagtail/sites/locale/pl/LC_MESSAGES/django.po +1 -1
  1434. wagtail/sites/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1435. wagtail/sites/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1436. wagtail/sites/locale/ro/LC_MESSAGES/django.po +2 -1
  1437. wagtail/sites/locale/ru/LC_MESSAGES/django.po +1 -1
  1438. wagtail/sites/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1439. wagtail/sites/locale/sl/LC_MESSAGES/django.po +1 -1
  1440. wagtail/sites/locale/sr/LC_MESSAGES/django.mo +0 -0
  1441. wagtail/sites/locale/sr/LC_MESSAGES/django.po +1 -1
  1442. wagtail/sites/locale/sv/LC_MESSAGES/django.po +1 -1
  1443. wagtail/sites/locale/ta/LC_MESSAGES/django.mo +0 -0
  1444. wagtail/sites/locale/ta/LC_MESSAGES/django.po +1 -1
  1445. wagtail/sites/locale/tet/LC_MESSAGES/django.po +1 -1
  1446. wagtail/sites/locale/th/LC_MESSAGES/django.po +1 -1
  1447. wagtail/sites/locale/tr/LC_MESSAGES/django.po +1 -1
  1448. wagtail/sites/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1449. wagtail/sites/locale/ug/LC_MESSAGES/django.po +1 -1
  1450. wagtail/sites/locale/uk/LC_MESSAGES/django.po +1 -1
  1451. wagtail/sites/locale/vi/LC_MESSAGES/django.po +1 -1
  1452. wagtail/sites/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1453. wagtail/sites/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1454. wagtail/snippets/blocks.py +11 -4
  1455. wagtail/snippets/bulk_actions/delete.py +9 -19
  1456. wagtail/snippets/bulk_actions/snippet_bulk_action.py +0 -1
  1457. wagtail/snippets/locale/af/LC_MESSAGES/django.po +1 -1
  1458. wagtail/snippets/locale/ar/LC_MESSAGES/django.mo +0 -0
  1459. wagtail/snippets/locale/ar/LC_MESSAGES/django.po +85 -37
  1460. wagtail/snippets/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  1461. wagtail/snippets/locale/be/LC_MESSAGES/django.mo +0 -0
  1462. wagtail/snippets/locale/be/LC_MESSAGES/django.po +1 -9
  1463. wagtail/snippets/locale/bg/LC_MESSAGES/django.po +1 -1
  1464. wagtail/snippets/locale/bn/LC_MESSAGES/django.po +1 -1
  1465. wagtail/snippets/locale/ca/LC_MESSAGES/django.mo +0 -0
  1466. wagtail/snippets/locale/ca/LC_MESSAGES/django.po +1 -7
  1467. wagtail/snippets/locale/cs/LC_MESSAGES/django.mo +0 -0
  1468. wagtail/snippets/locale/cs/LC_MESSAGES/django.po +1 -9
  1469. wagtail/snippets/locale/cy/LC_MESSAGES/django.mo +0 -0
  1470. wagtail/snippets/locale/cy/LC_MESSAGES/django.po +1 -9
  1471. wagtail/snippets/locale/da/LC_MESSAGES/django.po +1 -1
  1472. wagtail/snippets/locale/de/LC_MESSAGES/django.mo +0 -0
  1473. wagtail/snippets/locale/de/LC_MESSAGES/django.po +1 -7
  1474. wagtail/snippets/locale/dv/LC_MESSAGES/django.mo +0 -0
  1475. wagtail/snippets/locale/dv/LC_MESSAGES/django.po +1 -7
  1476. wagtail/snippets/locale/el/LC_MESSAGES/django.mo +0 -0
  1477. wagtail/snippets/locale/el/LC_MESSAGES/django.po +1 -7
  1478. wagtail/snippets/locale/en/LC_MESSAGES/django.po +16 -23
  1479. wagtail/snippets/locale/en_IN/LC_MESSAGES/django.po +1 -1
  1480. wagtail/snippets/locale/es/LC_MESSAGES/django.mo +0 -0
  1481. wagtail/snippets/locale/es/LC_MESSAGES/django.po +1 -8
  1482. wagtail/snippets/locale/es_419/LC_MESSAGES/django.po +1 -1
  1483. wagtail/snippets/locale/es_VE/LC_MESSAGES/django.po +1 -1
  1484. wagtail/snippets/locale/et/LC_MESSAGES/django.mo +0 -0
  1485. wagtail/snippets/locale/et/LC_MESSAGES/django.po +1 -7
  1486. wagtail/snippets/locale/eu/LC_MESSAGES/django.po +1 -1
  1487. wagtail/snippets/locale/fa/LC_MESSAGES/django.mo +0 -0
  1488. wagtail/snippets/locale/fa/LC_MESSAGES/django.po +1 -7
  1489. wagtail/snippets/locale/fi/LC_MESSAGES/django.mo +0 -0
  1490. wagtail/snippets/locale/fi/LC_MESSAGES/django.po +1 -7
  1491. wagtail/snippets/locale/fr/LC_MESSAGES/django.mo +0 -0
  1492. wagtail/snippets/locale/fr/LC_MESSAGES/django.po +1 -8
  1493. wagtail/snippets/locale/gl/LC_MESSAGES/django.mo +0 -0
  1494. wagtail/snippets/locale/gl/LC_MESSAGES/django.po +1 -7
  1495. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1496. wagtail/snippets/locale/hi/LC_MESSAGES/django.po +1 -1
  1497. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  1498. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +1 -8
  1499. wagtail/snippets/locale/ht/LC_MESSAGES/django.po +1 -1
  1500. wagtail/snippets/locale/hu/LC_MESSAGES/django.mo +0 -0
  1501. wagtail/snippets/locale/hu/LC_MESSAGES/django.po +9 -9
  1502. wagtail/snippets/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  1503. wagtail/snippets/locale/id_ID/LC_MESSAGES/django.po +1 -6
  1504. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1505. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.po +7 -7
  1506. wagtail/snippets/locale/it/LC_MESSAGES/django.mo +0 -0
  1507. wagtail/snippets/locale/it/LC_MESSAGES/django.po +7 -8
  1508. wagtail/snippets/locale/ja/LC_MESSAGES/django.mo +0 -0
  1509. wagtail/snippets/locale/ja/LC_MESSAGES/django.po +1 -6
  1510. wagtail/snippets/locale/ka/LC_MESSAGES/django.po +1 -1
  1511. wagtail/snippets/locale/ko/LC_MESSAGES/django.mo +0 -0
  1512. wagtail/snippets/locale/ko/LC_MESSAGES/django.po +1 -6
  1513. wagtail/snippets/locale/lt/LC_MESSAGES/django.mo +0 -0
  1514. wagtail/snippets/locale/lt/LC_MESSAGES/django.po +1 -9
  1515. wagtail/snippets/locale/lv/LC_MESSAGES/django.po +1 -1
  1516. wagtail/snippets/locale/mi/LC_MESSAGES/django.mo +0 -0
  1517. wagtail/snippets/locale/mi/LC_MESSAGES/django.po +1 -7
  1518. wagtail/snippets/locale/mn/LC_MESSAGES/django.mo +0 -0
  1519. wagtail/snippets/locale/mn/LC_MESSAGES/django.po +1 -7
  1520. wagtail/snippets/locale/my/LC_MESSAGES/django.po +1 -1
  1521. wagtail/snippets/locale/nb/LC_MESSAGES/django.mo +0 -0
  1522. wagtail/snippets/locale/nb/LC_MESSAGES/django.po +1 -7
  1523. wagtail/snippets/locale/nl/LC_MESSAGES/django.mo +0 -0
  1524. wagtail/snippets/locale/nl/LC_MESSAGES/django.po +1 -7
  1525. wagtail/snippets/locale/pl/LC_MESSAGES/django.mo +0 -0
  1526. wagtail/snippets/locale/pl/LC_MESSAGES/django.po +1 -9
  1527. wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1528. wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +1 -8
  1529. wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  1530. wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.po +1 -8
  1531. wagtail/snippets/locale/ro/LC_MESSAGES/django.mo +0 -0
  1532. wagtail/snippets/locale/ro/LC_MESSAGES/django.po +1 -8
  1533. wagtail/snippets/locale/ru/LC_MESSAGES/django.mo +0 -0
  1534. wagtail/snippets/locale/ru/LC_MESSAGES/django.po +1 -9
  1535. wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1536. wagtail/snippets/locale/sl/LC_MESSAGES/django.mo +0 -0
  1537. wagtail/snippets/locale/sl/LC_MESSAGES/django.po +1 -9
  1538. wagtail/snippets/locale/sr/LC_MESSAGES/django.mo +0 -0
  1539. wagtail/snippets/locale/sr/LC_MESSAGES/django.po +1 -1
  1540. wagtail/snippets/locale/sv/LC_MESSAGES/django.mo +0 -0
  1541. wagtail/snippets/locale/sv/LC_MESSAGES/django.po +1 -7
  1542. wagtail/snippets/locale/ta/LC_MESSAGES/django.po +1 -1
  1543. wagtail/snippets/locale/tet/LC_MESSAGES/django.mo +0 -0
  1544. wagtail/snippets/locale/tet/LC_MESSAGES/django.po +1 -6
  1545. wagtail/snippets/locale/th/LC_MESSAGES/django.mo +0 -0
  1546. wagtail/snippets/locale/th/LC_MESSAGES/django.po +1 -6
  1547. wagtail/snippets/locale/tr/LC_MESSAGES/django.mo +0 -0
  1548. wagtail/snippets/locale/tr/LC_MESSAGES/django.po +1 -7
  1549. wagtail/snippets/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  1550. wagtail/snippets/locale/tr_TR/LC_MESSAGES/django.po +1 -7
  1551. wagtail/snippets/locale/ug/LC_MESSAGES/django.mo +0 -0
  1552. wagtail/snippets/locale/ug/LC_MESSAGES/django.po +1 -7
  1553. wagtail/snippets/locale/uk/LC_MESSAGES/django.mo +0 -0
  1554. wagtail/snippets/locale/uk/LC_MESSAGES/django.po +1 -9
  1555. wagtail/snippets/locale/vi/LC_MESSAGES/django.mo +0 -0
  1556. wagtail/snippets/locale/vi/LC_MESSAGES/django.po +1 -6
  1557. wagtail/snippets/locale/zh/LC_MESSAGES/django.po +1 -1
  1558. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  1559. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +1 -6
  1560. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  1561. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +1 -6
  1562. wagtail/snippets/templates/wagtailsnippets/bulk_actions/confirm_bulk_delete.html +11 -8
  1563. wagtail/snippets/tests/test_bulk_actions/test_bulk_delete.py +86 -2
  1564. wagtail/snippets/tests/test_preview.py +34 -0
  1565. wagtail/snippets/tests/test_snippets.py +66 -8
  1566. wagtail/snippets/tests/test_viewset.py +28 -4
  1567. wagtail/snippets/tests/test_workflows.py +8 -6
  1568. wagtail/snippets/views/snippets.py +21 -13
  1569. wagtail/snippets/widgets.py +14 -4
  1570. wagtail/telepath.py +18 -74
  1571. wagtail/test/customuser/models.py +14 -1
  1572. wagtail/test/demosite/models.py +14 -14
  1573. wagtail/test/settings.py +1 -0
  1574. wagtail/test/testapp/migrations/0001_squashed_0073_revisablechildmodel_secret_text.py +7 -7
  1575. wagtail/test/testapp/migrations/0025_alter_importantpagesgenericsetting_options.py +2 -2
  1576. wagtail/test/testapp/migrations/0038_sociallink.py +2 -2
  1577. wagtail/test/testapp/migrations/0052_variousondeletemodel_protected_page_and_user.py +39 -0
  1578. wagtail/test/testapp/migrations/0053_pagewithexcludedcopyfield_special_stream_and_more.py +57 -0
  1579. wagtail/test/testapp/migrations/0054_delete_notyetregisteredgenericsetting_and_more.py +19 -0
  1580. wagtail/test/testapp/migrations/0055_previewable_settings.py +62 -0
  1581. wagtail/test/testapp/models.py +72 -34
  1582. wagtail/test/testapp/templates/tests/custom_button.html +9 -0
  1583. wagtail/test/testapp/templates/tests/previewable_model.html +2 -0
  1584. wagtail/test/testapp/templates/tests/previewable_setting.html +17 -0
  1585. wagtail/test/testapp/views.py +37 -0
  1586. wagtail/test/testapp/wagtail_hooks.py +6 -0
  1587. wagtail/test/urls.py +1 -1
  1588. wagtail/test/utils/wagtail_tests.py +3 -1
  1589. wagtail/tests/permission_policies/__init__.py +0 -0
  1590. wagtail/tests/{test_collection_permission_policies.py → permission_policies/test_collection_permission_policies.py} +3 -1
  1591. wagtail/tests/{test_page_permission_policies.py → permission_policies/test_page_permission_policies.py} +3 -1
  1592. wagtail/tests/permission_policies/test_site_permission_policies.py +284 -0
  1593. wagtail/tests/test_blocks.py +286 -0
  1594. wagtail/tests/test_date_validators.py +68 -0
  1595. wagtail/tests/test_page_model.py +56 -13
  1596. wagtail/tests/test_reference_index.py +352 -0
  1597. wagtail/tests/test_revision_model.py +30 -11
  1598. wagtail/tests/test_rich_text.py +35 -21
  1599. wagtail/tests/test_streamfield.py +14 -0
  1600. wagtail/tests/test_workflow.py +5 -8
  1601. wagtail/tests/tests.py +92 -0
  1602. wagtail/users/locale/ar/LC_MESSAGES/django.mo +0 -0
  1603. wagtail/users/locale/ar/LC_MESSAGES/django.po +310 -60
  1604. wagtail/users/locale/be/LC_MESSAGES/django.mo +0 -0
  1605. wagtail/users/locale/be/LC_MESSAGES/django.po +1 -7
  1606. wagtail/users/locale/bg/LC_MESSAGES/django.mo +0 -0
  1607. wagtail/users/locale/bg/LC_MESSAGES/django.po +1 -4
  1608. wagtail/users/locale/bn/LC_MESSAGES/django.po +1 -1
  1609. wagtail/users/locale/ca/LC_MESSAGES/django.mo +0 -0
  1610. wagtail/users/locale/ca/LC_MESSAGES/django.po +9 -9
  1611. wagtail/users/locale/cs/LC_MESSAGES/django.mo +0 -0
  1612. wagtail/users/locale/cs/LC_MESSAGES/django.po +1 -7
  1613. wagtail/users/locale/cy/LC_MESSAGES/django.mo +0 -0
  1614. wagtail/users/locale/cy/LC_MESSAGES/django.po +1 -7
  1615. wagtail/users/locale/da/LC_MESSAGES/django.mo +0 -0
  1616. wagtail/users/locale/da/LC_MESSAGES/django.po +1 -4
  1617. wagtail/users/locale/de/LC_MESSAGES/django.mo +0 -0
  1618. wagtail/users/locale/de/LC_MESSAGES/django.po +4 -7
  1619. wagtail/users/locale/dv/LC_MESSAGES/django.mo +0 -0
  1620. wagtail/users/locale/dv/LC_MESSAGES/django.po +1 -4
  1621. wagtail/users/locale/el/LC_MESSAGES/django.mo +0 -0
  1622. wagtail/users/locale/el/LC_MESSAGES/django.po +1 -7
  1623. wagtail/users/locale/en/LC_MESSAGES/django.po +38 -39
  1624. wagtail/users/locale/es/LC_MESSAGES/django.mo +0 -0
  1625. wagtail/users/locale/es/LC_MESSAGES/django.po +1 -7
  1626. wagtail/users/locale/es_419/LC_MESSAGES/django.po +1 -1
  1627. wagtail/users/locale/et/LC_MESSAGES/django.mo +0 -0
  1628. wagtail/users/locale/et/LC_MESSAGES/django.po +1 -7
  1629. wagtail/users/locale/eu/LC_MESSAGES/django.mo +0 -0
  1630. wagtail/users/locale/eu/LC_MESSAGES/django.po +1 -4
  1631. wagtail/users/locale/fa/LC_MESSAGES/django.mo +0 -0
  1632. wagtail/users/locale/fa/LC_MESSAGES/django.po +1 -7
  1633. wagtail/users/locale/fi/LC_MESSAGES/django.mo +0 -0
  1634. wagtail/users/locale/fi/LC_MESSAGES/django.po +4 -7
  1635. wagtail/users/locale/fr/LC_MESSAGES/django.mo +0 -0
  1636. wagtail/users/locale/fr/LC_MESSAGES/django.po +9 -9
  1637. wagtail/users/locale/gl/LC_MESSAGES/django.mo +0 -0
  1638. wagtail/users/locale/gl/LC_MESSAGES/django.po +9 -9
  1639. wagtail/users/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  1640. wagtail/users/locale/he_IL/LC_MESSAGES/django.po +1 -7
  1641. wagtail/users/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  1642. wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +1 -7
  1643. wagtail/users/locale/hu/LC_MESSAGES/django.mo +0 -0
  1644. wagtail/users/locale/hu/LC_MESSAGES/django.po +8 -8
  1645. wagtail/users/locale/hy/LC_MESSAGES/django.po +1 -1
  1646. wagtail/users/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  1647. wagtail/users/locale/id_ID/LC_MESSAGES/django.po +1 -7
  1648. wagtail/users/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1649. wagtail/users/locale/is_IS/LC_MESSAGES/django.po +4 -7
  1650. wagtail/users/locale/it/LC_MESSAGES/django.mo +0 -0
  1651. wagtail/users/locale/it/LC_MESSAGES/django.po +4 -7
  1652. wagtail/users/locale/ja/LC_MESSAGES/django.mo +0 -0
  1653. wagtail/users/locale/ja/LC_MESSAGES/django.po +1 -7
  1654. wagtail/users/locale/ka/LC_MESSAGES/django.mo +0 -0
  1655. wagtail/users/locale/ka/LC_MESSAGES/django.po +1 -4
  1656. wagtail/users/locale/ko/LC_MESSAGES/django.mo +0 -0
  1657. wagtail/users/locale/ko/LC_MESSAGES/django.po +1 -7
  1658. wagtail/users/locale/lt/LC_MESSAGES/django.mo +0 -0
  1659. wagtail/users/locale/lt/LC_MESSAGES/django.po +1 -7
  1660. wagtail/users/locale/lv/LC_MESSAGES/django.mo +0 -0
  1661. wagtail/users/locale/lv/LC_MESSAGES/django.po +1 -4
  1662. wagtail/users/locale/mi/LC_MESSAGES/django.mo +0 -0
  1663. wagtail/users/locale/mi/LC_MESSAGES/django.po +1 -4
  1664. wagtail/users/locale/mn/LC_MESSAGES/django.mo +0 -0
  1665. wagtail/users/locale/mn/LC_MESSAGES/django.po +1 -7
  1666. wagtail/users/locale/my/LC_MESSAGES/django.mo +0 -0
  1667. wagtail/users/locale/my/LC_MESSAGES/django.po +1 -7
  1668. wagtail/users/locale/nb/LC_MESSAGES/django.mo +0 -0
  1669. wagtail/users/locale/nb/LC_MESSAGES/django.po +1 -7
  1670. wagtail/users/locale/nl/LC_MESSAGES/django.mo +0 -0
  1671. wagtail/users/locale/nl/LC_MESSAGES/django.po +4 -7
  1672. wagtail/users/locale/pl/LC_MESSAGES/django.mo +0 -0
  1673. wagtail/users/locale/pl/LC_MESSAGES/django.po +4 -7
  1674. wagtail/users/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  1675. wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +4 -7
  1676. wagtail/users/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  1677. wagtail/users/locale/pt_PT/LC_MESSAGES/django.po +1 -7
  1678. wagtail/users/locale/ro/LC_MESSAGES/django.mo +0 -0
  1679. wagtail/users/locale/ro/LC_MESSAGES/django.po +4 -7
  1680. wagtail/users/locale/ru/LC_MESSAGES/django.mo +0 -0
  1681. wagtail/users/locale/ru/LC_MESSAGES/django.po +4 -7
  1682. wagtail/users/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  1683. wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +1 -7
  1684. wagtail/users/locale/sl/LC_MESSAGES/django.mo +0 -0
  1685. wagtail/users/locale/sl/LC_MESSAGES/django.po +4 -7
  1686. wagtail/users/locale/sv/LC_MESSAGES/django.mo +0 -0
  1687. wagtail/users/locale/sv/LC_MESSAGES/django.po +4 -7
  1688. wagtail/users/locale/tet/LC_MESSAGES/django.mo +0 -0
  1689. wagtail/users/locale/tet/LC_MESSAGES/django.po +1 -7
  1690. wagtail/users/locale/th/LC_MESSAGES/django.mo +0 -0
  1691. wagtail/users/locale/th/LC_MESSAGES/django.po +1 -7
  1692. wagtail/users/locale/tr/LC_MESSAGES/django.mo +0 -0
  1693. wagtail/users/locale/tr/LC_MESSAGES/django.po +1 -7
  1694. wagtail/users/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  1695. wagtail/users/locale/tr_TR/LC_MESSAGES/django.po +1 -7
  1696. wagtail/users/locale/ug/LC_MESSAGES/django.mo +0 -0
  1697. wagtail/users/locale/ug/LC_MESSAGES/django.po +4 -7
  1698. wagtail/users/locale/uk/LC_MESSAGES/django.mo +0 -0
  1699. wagtail/users/locale/uk/LC_MESSAGES/django.po +4 -7
  1700. wagtail/users/locale/vi/LC_MESSAGES/django.mo +0 -0
  1701. wagtail/users/locale/vi/LC_MESSAGES/django.po +1 -4
  1702. wagtail/users/locale/zh/LC_MESSAGES/django.mo +0 -0
  1703. wagtail/users/locale/zh/LC_MESSAGES/django.po +1 -4
  1704. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  1705. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +4 -7
  1706. wagtail/users/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  1707. wagtail/users/locale/zh_Hant/LC_MESSAGES/django.po +1 -7
  1708. wagtail/users/migrations/0015_userprofile_keyboard_shortcuts.py +22 -0
  1709. wagtail/users/models.py +6 -0
  1710. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_delete.html +6 -2
  1711. wagtail/users/templates/wagtailusers/users/confirm_delete.html +0 -9
  1712. wagtail/users/templates/wagtailusers/users/create.html +5 -3
  1713. wagtail/users/templates/wagtailusers/users/edit.html +4 -2
  1714. wagtail/users/tests/test_admin_views.py +268 -15
  1715. wagtail/users/tests/test_bulk_actions/test_bulk_delete.py +117 -10
  1716. wagtail/users/views/bulk_actions/delete.py +9 -1
  1717. wagtail/users/views/bulk_actions/user_bulk_action.py +15 -6
  1718. wagtail/users/views/users.py +57 -66
  1719. wagtail/users/widgets.py +13 -3
  1720. wagtail/widget_adapters.py +16 -80
  1721. {wagtail-7.0.1.dist-info → wagtail-7.1.dist-info}/METADATA +4 -6
  1722. {wagtail-7.0.1.dist-info → wagtail-7.1.dist-info}/RECORD +1727 -1700
  1723. wagtail/admin/templates/wagtailadmin/pages/listing/_dropdown_items.html +0 -10
  1724. wagtail/contrib/settings/permissions.py +0 -3
  1725. wagtail/contrib/settings/tests/generic/test_register.py +0 -24
  1726. wagtail/contrib/settings/tests/site_specific/test_register.py +0 -24
  1727. /wagtail/tests/{test_permission_policies.py → permission_policies/test_permission_policies.py} +0 -0
  1728. {wagtail-7.0.1.dist-info → wagtail-7.1.dist-info}/WHEEL +0 -0
  1729. {wagtail-7.0.1.dist-info → wagtail-7.1.dist-info}/entry_points.txt +0 -0
  1730. {wagtail-7.0.1.dist-info → wagtail-7.1.dist-info}/licenses/LICENSE +0 -0
  1731. {wagtail-7.0.1.dist-info → wagtail-7.1.dist-info}/top_level.txt +0 -0
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # Translators:
6
6
  # abdulaziz alfuhigi <abajall@gmail.com>, 2018
7
+ # Abdullah Bamuhrez <bamuhrez@gmail.com>, 2025
7
8
  # Ahmad Kiswani <kiswani.ahmad@gmail.com>, 2016
8
9
  # ROGER MICHAEL ASHLEY ALLEN <rogermaallen@gmail.com>, 2015
9
10
  # ultraify media <ultraify@gmail.com>, 2018
@@ -11,9 +12,9 @@ msgid ""
11
12
  msgstr ""
12
13
  "Project-Id-Version: Wagtail\n"
13
14
  "Report-Msgid-Bugs-To: \n"
14
- "POT-Creation-Date: 2025-04-25 23:05+0100\n"
15
+ "POT-Creation-Date: 2025-07-24 16:20+0200\n"
15
16
  "PO-Revision-Date: 2014-02-21 15:51+0000\n"
16
- "Last-Translator: ultraify media <ultraify@gmail.com>, 2018\n"
17
+ "Last-Translator: Abdullah Bamuhrez <bamuhrez@gmail.com>, 2025\n"
17
18
  "Language-Team: Arabic (http://app.transifex.com/torchbox/wagtail/language/"
18
19
  "ar/)\n"
19
20
  "MIME-Version: 1.0\n"
@@ -23,8 +24,14 @@ msgstr ""
23
24
  "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
24
25
  "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
25
26
 
27
+ msgid "Wagtail API v2"
28
+ msgstr "واجهة برمجة تطبيقات Wagtail الإصدار الثاني"
29
+
26
30
  msgid "Wagtail core"
27
- msgstr "Wagtail core"
31
+ msgstr "النواة الأساسية لـ Wagtail"
32
+
33
+ msgid "Add Comment"
34
+ msgstr "إضافة تعليق"
28
35
 
29
36
  #, python-format
30
37
  msgid "The minimum number of items is %(min_num)d"
@@ -35,173 +42,343 @@ msgid "The maximum number of items is %(max_num)d"
35
42
  msgstr "الحد الأقصى لعدد العناصر هو %(max_num)d"
36
43
 
37
44
  msgid "Move up"
38
- msgstr "تقدم إلى فوق "
45
+ msgstr "نقل للأعلى"
39
46
 
40
47
  msgid "Move down"
41
- msgstr "تقدم إلى تحت"
48
+ msgstr "نقل للأسفل"
42
49
 
43
50
  msgid "Drag"
44
- msgstr "اسحب"
51
+ msgstr "سحب"
52
+
53
+ msgid "Duplicate"
54
+ msgstr "تكرار"
45
55
 
46
56
  msgid "Delete"
47
57
  msgstr "حذف"
48
58
 
49
59
  msgid "Add"
50
- msgstr "أضف"
60
+ msgstr "إضافة"
61
+
62
+ #, python-format
63
+ msgid "%(label)s: this block has no options."
64
+ msgstr "%(label)s: هذه الكتلة لا تحتوي على خيارات."
51
65
 
52
66
  msgid "This block has no options."
53
- msgstr "هذه الكتلة لا يوجد لديه خيارات."
67
+ msgstr "هذه الكتلة لا تحتوي على خيارات."
54
68
 
55
69
  msgid "This field is required."
56
- msgstr "هذه الخانة مطلوبه."
70
+ msgstr "هذا الحقل مطلوب."
71
+
72
+ msgid "Wagtail frontend cache"
73
+ msgstr "ذاكرة التخزين المؤقت لواجهة Wagtail"
74
+
75
+ msgid "Wagtail routablepage"
76
+ msgstr "صفحات Wagtail القابلة للتوجيه"
77
+
78
+ msgid "Wagtail sitemaps"
79
+ msgstr "خرائط موقع Wagtail"
80
+
81
+ msgid "Unknown content type"
82
+ msgstr "نوع محتوى غير معروف"
83
+
84
+ msgid "Date cannot be in the future."
85
+ msgstr "لا يمكن أن يكون التاريخ في المستقبل."
57
86
 
58
87
  msgid "Password"
59
- msgstr "كلمة سر"
88
+ msgstr "كلمة المرور"
60
89
 
61
90
  msgid "The password you have entered is not correct. Please try again."
62
- msgstr "كلمة المرور غير صحيحة, الرجاء المحاولة مرة أخرى."
91
+ msgstr "كلمة المرور التي أدخلتها غير صحيحة. يرجى المحاولة مرة أخرى."
63
92
 
64
93
  msgid "Comment"
65
94
  msgstr "تعليق"
66
95
 
67
96
  msgid "Locked"
68
- msgstr "مغلق"
97
+ msgstr "مقفل"
98
+
99
+ #, python-format
100
+ msgid "No one can make changes while the %(model_name)s is locked"
101
+ msgstr "لا يمكن لأحد إجراء تغييرات أثناء قفل %(model_name)s"
102
+
103
+ #, python-brace-format
104
+ msgid "<b>'{title}' was locked</b> by <b>you</b> on <b>{datetime}</b>."
105
+ msgstr "<b>تم قفل '{title}'</b> بواسطة <b>أنت</b> في <b>{datetime}</b>."
106
+
107
+ #, python-brace-format
108
+ msgid "<b>'{title}' is locked</b> by <b>you</b>."
109
+ msgstr "<b>'{title}' مقفل</b> بواسطة <b>أنت</b>."
110
+
111
+ #, python-brace-format
112
+ msgid "<b>'{title}' was locked</b> by <b>{user}</b> on <b>{datetime}</b>."
113
+ msgstr "<b>تم قفل '{title}'</b> بواسطة <b>{user}</b> في <b>{datetime}</b>."
114
+
115
+ #, python-brace-format
116
+ msgid "<b>'{title}' is locked</b>."
117
+ msgstr "<b>'{title}' مقفل</b>."
118
+
119
+ msgid "Locked by you"
120
+ msgstr "مقفل بواسطتك"
121
+
122
+ msgid "Locked by another user"
123
+ msgstr "مقفل بواسطة مستخدم آخر"
124
+
125
+ #, python-format
126
+ msgid "Only you can make changes while the %(model_name)s is locked"
127
+ msgstr "يمكنك فقط إجراء تغييرات أثناء قفل %(model_name)s"
128
+
129
+ #, python-format
130
+ msgid "Only %(user)s can make changes while the %(model_name)s is locked"
131
+ msgstr "يمكن فقط لـ %(user)s إجراء تغييرات أثناء قفل %(model_name)s"
132
+
133
+ #, python-format
134
+ msgid "This %(model_name)s is currently awaiting moderation."
135
+ msgstr "هذا %(model_name)s في انتظار المراجعة حالياً."
136
+
137
+ #, python-brace-format
138
+ msgid ""
139
+ "This {model_name} is awaiting <b>'{task_name}'</b> in the "
140
+ "<b>'{workflow_name}'</b> workflow."
141
+ msgstr ""
142
+ "هذا {model_name} في انتظار <b>'{task_name}'</b> في سير العمل "
143
+ "<b>'{workflow_name}'</b>."
144
+
145
+ #, python-format
146
+ msgid "Only reviewers for this task can edit the %(model_name)s."
147
+ msgstr "يمكن فقط للمراجعين لهذه المهمة تعديل %(model_name)s."
69
148
 
70
149
  msgid "Unlocked"
71
- msgstr "غير مغلق"
150
+ msgstr "غير مقفل"
151
+
152
+ msgid "Locked by workflow"
153
+ msgstr "مقفل بواسطة سير العمل"
154
+
155
+ #, python-format
156
+ msgid ""
157
+ "Reviewers can edit this %(model_name)s – lock it to prevent other reviewers "
158
+ "from editing"
159
+ msgstr ""
160
+ "يمكن للمراجعين تعديل هذا %(model_name)s - اقفله لمنع المراجعين الآخرين من "
161
+ "التعديل"
162
+
163
+ #, python-format
164
+ msgid "Only reviewers can edit and approve the %(model_name)s"
165
+ msgstr "يمكن فقط للمراجعين تعديل والموافقة على %(model_name)s"
166
+
167
+ #, python-brace-format
168
+ msgid ""
169
+ "{model_name} '{title}' is locked and has been scheduled to go live at "
170
+ "{datetime}"
171
+ msgstr "{model_name} '{title}' مقفل ومجدول للنشر في {datetime}"
172
+
173
+ msgid "Locked by schedule"
174
+ msgstr "مقفل حسب الجدول"
175
+
176
+ msgid "Currently locked and will go live on the scheduled date"
177
+ msgstr "مقفل حالياً وسينشر في التاريخ المجدول"
72
178
 
73
179
  msgid "content type"
74
180
  msgstr "نوع المحتوى"
75
181
 
182
+ msgid "timestamp (UTC)"
183
+ msgstr "الطابع الزمني (UTC)"
184
+
185
+ msgid "log entry"
186
+ msgstr "إدخال السجل"
187
+
188
+ msgid "log entries"
189
+ msgstr "إدخالات السجل"
190
+
191
+ #, python-format
192
+ msgid "The log action '%(action_name)s' has not been registered."
193
+ msgstr "إجراء السجل '%(action_name)s' غير مسجل."
194
+
195
+ msgid "system"
196
+ msgstr "النظام"
197
+
198
+ #, python-format
199
+ msgid "Unknown %(action)s"
200
+ msgstr "غير معروف %(action)s"
201
+
202
+ msgid "model log entry"
203
+ msgstr "إدخال سجل النموذج"
204
+
205
+ msgid "model log entries"
206
+ msgstr "إدخالات سجل النموذج"
207
+
76
208
  msgid "live"
77
- msgstr "حي"
209
+ msgstr "نشط"
78
210
 
79
211
  msgid "has unpublished changes"
80
212
  msgstr "يحتوي على تغييرات غير منشورة"
81
213
 
82
214
  msgid "first published at"
83
- msgstr "نشر للمرة الأولى في"
215
+ msgstr "تاريخ النشر الأول"
84
216
 
85
217
  msgid "last published at"
86
- msgstr "نشرت في"
218
+ msgstr "تاريخ النشر الأخير"
219
+
220
+ msgid "live revision"
221
+ msgstr "مراجعة نشطة"
87
222
 
88
223
  msgid "go live date/time"
89
- msgstr "تاريخ النشر / الوقت"
224
+ msgstr "تاريخ/وقت النشر"
90
225
 
91
226
  msgid "expiry date/time"
92
- msgstr "تاريخ انتهاء الصلاحية / الوقت"
227
+ msgstr "تاريخ/وقت الانتهاء"
93
228
 
94
229
  msgid "expired"
95
- msgstr "منقضٍ"
230
+ msgstr "منتهي الصلاحية"
96
231
 
97
232
  msgid "scheduled"
98
- msgstr "موقت"
233
+ msgstr "مجدول"
99
234
 
100
235
  msgid "draft"
101
- msgstr "مسود"
236
+ msgstr "مسودة"
102
237
 
103
238
  msgid "live + scheduled"
104
- msgstr "حي + مجدول"
239
+ msgstr "نشط + مجدول"
105
240
 
106
241
  msgid "live + draft"
107
- msgstr "حي + مسودة"
242
+ msgstr "نشط + مسودة"
243
+
244
+ msgid "locale"
245
+ msgstr "اللغة المحلية"
108
246
 
109
247
  msgid "locked"
110
- msgstr "مغلق"
248
+ msgstr "مقفل"
249
+
250
+ msgid "locked at"
251
+ msgstr "مقفل في"
252
+
253
+ msgid "locked by"
254
+ msgstr "مقفل بواسطة"
111
255
 
112
256
  msgid "collection"
113
- msgstr "مجموعة"
257
+ msgstr "رزمة"
114
258
 
115
259
  msgid "collection view restriction"
116
- msgstr "تقييد عرض المجموعة"
260
+ msgstr "تقييد عرض الرزمة"
117
261
 
118
262
  msgid "collection view restrictions"
119
- msgstr "قيود عرض المجموعة"
263
+ msgstr "قيود عرض الرزمة"
120
264
 
121
265
  msgid "name"
122
- msgstr "اسم"
266
+ msgstr "الاسم"
123
267
 
124
268
  msgid "collections"
125
- msgstr "مجموعات"
269
+ msgstr "الرزم"
126
270
 
127
271
  msgid "group"
128
272
  msgstr "مجموعة"
129
273
 
130
274
  msgid "permission"
131
- msgstr "تصريح"
275
+ msgstr "إذن"
132
276
 
133
277
  msgid "group collection permission"
134
- msgstr "إذن مجموعة المجموعة"
278
+ msgstr "أذن مجموعة ل رزمة"
135
279
 
136
280
  msgid "group collection permissions"
137
- msgstr "مجموعة أذونات المجموعة"
281
+ msgstr "أذونات مجموعة ل رزمة"
282
+
283
+ msgid "for content type"
284
+ msgstr "لنوع المحتوى"
138
285
 
139
286
  msgid "uploaded by user"
140
- msgstr "رفع عن طريق المستخدم"
287
+ msgstr "تم الرفع بواسطة المستخدم"
141
288
 
142
289
  msgid "Add/edit pages you own"
143
- msgstr "أضف أو نقح سفحات أنت الصاحب لها "
290
+ msgstr "إضافة/تعديل الصفحات التي تملكها"
144
291
 
145
292
  msgid "Bulk delete"
146
- msgstr "حذف بالجملة"
293
+ msgstr "حذف جماعي"
147
294
 
148
295
  msgid "Delete pages with children"
149
- msgstr "حذف الصفحات مع التفرعات"
296
+ msgstr "حذف الصفحات مع الصفحات الفرعية"
150
297
 
151
298
  msgid "Edit"
152
299
  msgstr "تعديل"
153
300
 
154
301
  msgid "Edit any page"
155
- msgstr "تحرير أي صفحة"
302
+ msgstr "تعديل أي صفحة"
156
303
 
157
304
  msgid "Lock"
158
- msgstr "أقفل"
305
+ msgstr "قفل"
306
+
307
+ msgid "Lock/unlock pages you've locked"
308
+ msgstr "قفل/فتح الصفحات التي قفلتها"
159
309
 
160
310
  msgid "Publish"
161
- msgstr "انشر"
311
+ msgstr "نشر"
162
312
 
163
313
  msgid "Publish any page"
164
- msgstr "انشر أي صفحة"
314
+ msgstr "نشر أي صفحة"
165
315
 
166
316
  msgid "Unlock"
167
- msgstr "إزالة القفل"
317
+ msgstr "فتح"
318
+
319
+ msgid "Unlock any page"
320
+ msgstr "فتح أي صفحة"
168
321
 
169
322
  msgid "title"
170
- msgstr "عنوان"
323
+ msgstr "العنوان"
171
324
 
172
325
  msgid "The page title as you'd like it to be seen by the public"
173
326
  msgstr "عنوان الصفحة كما تريد أن يراه الجمهور"
174
327
 
175
328
  msgid "slug"
176
- msgstr "slug"
329
+ msgstr "رابط مختصر"
177
330
 
178
331
  msgid ""
179
332
  "The name of the page as it will appear in URLs e.g http://domain.com/blog/"
180
333
  "[my-slug]/"
181
- msgstr "اسم الصفحة كما ستظهر في URLs e.g http://domain.com/blog/[my-slug]/"
334
+ msgstr ""
335
+ "اسم الصفحة كما سيظهر في الروابط، مثال: http://domain.com/blog/[my-slug]/"
182
336
 
183
337
  msgid "URL path"
184
- msgstr "مسار عنوان URL"
338
+ msgstr "مسار URL"
185
339
 
186
340
  msgid "owner"
187
- msgstr "صاحب"
341
+ msgstr "المالك"
342
+
343
+ msgid "title tag"
344
+ msgstr "وسم العنوان"
345
+
346
+ msgid ""
347
+ "The name of the page displayed on search engine results as the clickable "
348
+ "headline."
349
+ msgstr "اسم الصفحة المعروض في نتائج محركات البحث كعنوان قابل للنقر."
188
350
 
189
351
  msgid "show in menus"
190
- msgstr "تظهر في القوائم"
352
+ msgstr "إظهار في القوائم"
191
353
 
192
354
  msgid ""
193
355
  "Whether a link to this page will appear in automatically generated menus"
194
- msgstr ""
195
- "ما إذا كان رابط إلى هذه الصفحة سيظهر في القوائم التي يتم إنشاؤها تلقائيًا"
356
+ msgstr "ما إذا كان رابط لهذه الصفحة سيظهر في القوائم المولدة تلقائياً"
357
+
358
+ msgid "meta description"
359
+ msgstr "وصف التعريف"
360
+
361
+ msgid ""
362
+ "The descriptive text displayed underneath a headline in search engine "
363
+ "results."
364
+ msgstr "النص الوصفي المعروض تحت العنوان في نتائج محركات البحث."
196
365
 
197
366
  msgid "latest revision created at"
198
- msgstr "أحدث نسخة تم إنشاؤها في"
367
+ msgstr "أحدث مراجعة تم إنشاؤها في"
199
368
 
200
369
  msgid "For search engines"
201
- msgstr "خاص بمحركات البحث"
370
+ msgstr "لمحركات البحث"
202
371
 
203
372
  msgid "For site menus"
204
- msgstr "خاص بقوائم الموقع"
373
+ msgstr "لقوائم الموقع"
374
+
375
+ #, python-format
376
+ msgid ""
377
+ "The slug '%(page_slug)s' is already in use within the parent page at "
378
+ "'%(parent_url_path)s'"
379
+ msgstr ""
380
+ "الرابط المختصر '%(page_slug)s' مستخدم بالفعل في الصفحة الأصلية في "
381
+ "'%(parent_url_path)s'"
205
382
 
206
383
  msgid "page"
207
384
  msgstr "صفحة"
@@ -210,10 +387,10 @@ msgid "pages"
210
387
  msgstr "صفحات"
211
388
 
212
389
  msgid "group page permission"
213
- msgstr "إذن صفحة المجموعة"
390
+ msgstr "أذن صفحة ل مجموعة"
214
391
 
215
392
  msgid "group page permissions"
216
- msgstr "أذونات صفحة المجموعة"
393
+ msgstr "أذونات صفحة ل مجموعة"
217
394
 
218
395
  msgid "page view restriction"
219
396
  msgstr "تقييد عرض الصفحة"
@@ -221,11 +398,77 @@ msgstr "تقييد عرض الصفحة"
221
398
  msgid "page view restrictions"
222
399
  msgstr "قيود عرض الصفحة"
223
400
 
401
+ msgid "workflow"
402
+ msgstr "سير العمل"
403
+
404
+ msgid "workflow page"
405
+ msgstr "صفحة سير العمل"
406
+
407
+ msgid "workflow pages"
408
+ msgstr "صفحات سير العمل"
409
+
410
+ msgid "page log entry"
411
+ msgstr "إدخال سجل الصفحة"
412
+
413
+ msgid "page log entries"
414
+ msgstr "إدخالات سجل الصفحة"
415
+
416
+ msgid "Draft saved"
417
+ msgstr "تم حفظ المسودة"
418
+
419
+ msgid "comment"
420
+ msgstr "تعليق"
421
+
422
+ msgid "comments"
423
+ msgstr "تعليقات"
424
+
425
+ msgid "comment reply"
426
+ msgstr "رد على التعليق"
427
+
428
+ msgid "comment replies"
429
+ msgstr "ردود على التعليقات"
430
+
224
431
  msgid "Default"
225
- msgstr "عادي"
432
+ msgstr "افتراضي"
433
+
434
+ msgid "Preview in mobile size"
435
+ msgstr "معاينة بحجم الجوال"
436
+
437
+ msgid "Preview in tablet size"
438
+ msgstr "معاينة بحجم الجهاز اللوحي"
439
+
440
+ msgid "Preview in desktop size"
441
+ msgstr "معاينة بحجم سطح المكتب"
442
+
443
+ msgid "object id"
444
+ msgstr "معرف الكائن"
445
+
446
+ #, python-format
447
+ msgid "the %(model_name)s will also be deleted"
448
+ msgstr "سيتم أيضاً حذف %(model_name)s"
449
+
450
+ msgid "prevents deletion"
451
+ msgstr "يمنع الحذف"
452
+
453
+ #, python-format
454
+ msgid "will be set to the default %(model_name)s"
455
+ msgstr "سيتم تعيينه إلى %(model_name)s الافتراضي"
456
+
457
+ msgid "will do nothing"
458
+ msgstr "لن يفعل شيئاً"
459
+
460
+ msgid "may prevent deletion"
461
+ msgstr "قد يمنع الحذف"
462
+
463
+ #, python-format
464
+ msgid "will be set to a %(model_name)s specified by the system"
465
+ msgstr "سيتم تعيينه إلى %(model_name)s محدد من النظام"
466
+
467
+ msgid "will unset the reference"
468
+ msgstr "سيقوم بإلغاء تعيين المرجع"
226
469
 
227
470
  msgid "created at"
228
- msgstr "أنشئت في"
471
+ msgstr "تم الإنشاء في"
229
472
 
230
473
  msgid "user"
231
474
  msgstr "مستخدم"
@@ -234,41 +477,50 @@ msgid "content JSON"
234
477
  msgstr "محتوى JSON"
235
478
 
236
479
  msgid "approved go live at"
237
- msgstr "وافق على النشر في"
480
+ msgstr "تمت الموافقة للنشر في"
481
+
482
+ msgid "revision"
483
+ msgstr "مراجعة"
484
+
485
+ msgid "revisions"
486
+ msgstr "مراجعات"
487
+
488
+ msgid "latest revision"
489
+ msgstr "أحدث مراجعة"
238
490
 
239
491
  msgid "hostname"
240
492
  msgstr "اسم المضيف"
241
493
 
242
494
  msgid "port"
243
- msgstr "منفذ"
495
+ msgstr "المنفذ"
244
496
 
245
497
  msgid ""
246
498
  "Set this to something other than 80 if you need a specific port number to "
247
499
  "appear in URLs (e.g. development on port 8000). Does not affect request "
248
500
  "handling (so port forwarding still works)."
249
501
  msgstr ""
250
- "عيّن هذا إلى شيء آخر غير 80 إذا كنت تريد رقم منفذ محددًا ليظهر في عناوين URL "
251
- "(على سبيل المثال ، التطوير على المنفذ 8000). لا يؤثر على معالجة الطلب (لذلك "
252
- "لا يزال يعمل إعادة توجيه المنفذ)."
502
+ "اضبط هذا على قيمة غير 80 إذا كنت بحاجة إلى رقم منفذ معين يظهر في عناوين URL "
503
+ "(مثل التطوير على المنفذ 8000). لا يؤثر على معالجة الطلبات (لذلك لا يزال "
504
+ "إعادة توجيه المنفذ يعمل)."
253
505
 
254
506
  msgid "site name"
255
- msgstr "إسم الموقع"
507
+ msgstr "اسم الموقع"
256
508
 
257
509
  msgid "Human-readable name for the site."
258
- msgstr "اسم قابل للقراءة من قبل الإنسان للموقع."
510
+ msgstr "اسم قابل للقراءة للموقع."
259
511
 
260
512
  msgid "root page"
261
- msgstr "الصفحة الرئيسية"
513
+ msgstr "الصفحة الجذرية"
262
514
 
263
515
  msgid "is default site"
264
- msgstr "أهذا هو الموقع الافتراضي"
516
+ msgstr "هو الموقع الافتراضي"
265
517
 
266
518
  msgid ""
267
519
  "If true, this site will handle requests for all other hostnames that do not "
268
520
  "have a site entry of their own"
269
521
  msgstr ""
270
- "إذا كان هذا صحيحًا ، فسيتعامل هذا الموقع مع طلبات جميع أسماء المضيف الأخرى "
271
- "التي لا تحتوي على إدخال موقع خاص بها"
522
+ "إذا كان صحيحاً، سيتعامل هذا الموقع مع طلبات جميع أسماء المضيف الأخرى التي ليس "
523
+ "لها إدخال موقع خاص بها"
272
524
 
273
525
  msgid "site"
274
526
  msgstr "موقع"
@@ -277,73 +529,524 @@ msgid "sites"
277
529
  msgstr "مواقع"
278
530
 
279
531
  msgid "default"
280
- msgstr "الإفتراضي"
532
+ msgstr "افتراضي"
281
533
 
282
534
  #, python-format
283
535
  msgid ""
284
536
  "%(hostname)s is already configured as the default site. You must unset that "
285
537
  "before you can save this site as default."
286
538
  msgstr ""
287
- "%(hostname)s تم تكوينه بالفعل كموقع افتراضي. يجب عليك تعطيل هذا قبل أن تتمكن "
288
- "من حفظ هذا الموقع كإعداد افتراضي. "
539
+ "%(hostname)s مضبوط بالفعل كموقع افتراضي. يجب عليك إلغاء ذلك قبل أن تتمكن من "
540
+ "حفظ هذا الموقع كافتراضي."
541
+
542
+ msgid "group site permission"
543
+ msgstr "أذن مجموعة في موقع"
544
+
545
+ msgid "group site permissions"
546
+ msgstr "أذونات مجموعة في موقع"
289
547
 
290
548
  msgid "Public"
291
549
  msgstr "عام"
292
550
 
551
+ msgid "Private, accessible with a shared password"
552
+ msgstr "خاص، يمكن الوصول إليه بكلمة مرور مشتركة"
553
+
554
+ msgid "Private, accessible to any logged-in users"
555
+ msgstr "خاص، يمكن الوصول إليه من قبل أي مستخدمين مسجلين"
556
+
293
557
  msgid "Private, accessible to users in specific groups"
294
- msgstr "خاص ، يمكن للمستخدمين الوصول إليه في مجموعات محددة"
558
+ msgstr "خاص، يمكن الوصول إليه من قبل مستخدمين في مجموعات محددة"
559
+
560
+ msgid "shared password"
561
+ msgstr "كلمة مرور مشتركة"
562
+
563
+ msgid ""
564
+ "Shared passwords should not be used to protect sensitive content. Anyone who "
565
+ "has this password will be able to view the content."
566
+ msgstr ""
567
+ "يجب عدم استخدام كلمات المرور المشتركة لحماية المحتوى الحساس. أي شخص لديه هذه "
568
+ "كلمة المرور سيكون قادراً على عرض المحتوى."
295
569
 
296
570
  msgid "groups"
297
571
  msgstr "مجموعات"
298
572
 
299
573
  msgid "view restriction"
300
- msgstr "عرض تقييد"
574
+ msgstr "تقييد العرض"
301
575
 
302
576
  msgid "view restrictions"
303
577
  msgstr "قيود العرض"
304
578
 
579
+ msgid "In progress"
580
+ msgstr "قيد التنفيذ"
581
+
582
+ msgid "Approved"
583
+ msgstr "تمت الموافقة"
584
+
585
+ msgid "Needs changes"
586
+ msgstr "يحتاج إلى تغييرات"
587
+
588
+ msgid "Cancelled"
589
+ msgstr "تم الإلغاء"
590
+
591
+ msgid "status"
592
+ msgstr "الحالة"
593
+
594
+ msgid "requested by"
595
+ msgstr "مطلوب بواسطة"
596
+
597
+ msgid "current task state"
598
+ msgstr "حالة المهمة الحالية"
599
+
600
+ msgid ""
601
+ "There may only be one in progress or needs changes workflow state per page/"
602
+ "snippet."
603
+ msgstr ""
604
+ "يمكن أن يكون هناك حالة سير عمل واحدة قيد التنفيذ أو تحتاج إلى تغييرات لكل "
605
+ "صفحة/مقتطف."
606
+
607
+ #, python-format
608
+ msgid "Workflow '%(workflow_name)s' on %(model_name)s '%(title)s': %(status)s"
609
+ msgstr ""
610
+ "سير العمل '%(workflow_name)s' على %(model_name)s '%(title)s': %(status)s"
611
+
612
+ msgid "Not started"
613
+ msgstr "لم يبدأ بعد"
614
+
615
+ msgid "Workflow state"
616
+ msgstr "حالة سير العمل"
617
+
618
+ msgid "Workflow states"
619
+ msgstr "حالات سير العمل"
620
+
621
+ msgid "active"
622
+ msgstr "نشط"
623
+
624
+ msgid ""
625
+ "Active workflows can be added to pages/snippets. Deactivating a workflow "
626
+ "does not remove it from existing pages/snippets."
627
+ msgstr ""
628
+ "يمكن إضافة سير العمل النشط إلى الصفحات/المقتطفات. تعطيل سير العمل لا يزيله "
629
+ "من الصفحات/الأجزاء الموجودة."
630
+
631
+ msgid "workflows"
632
+ msgstr "سير العمل"
633
+
634
+ msgid "workflow_tasks"
635
+ msgstr "مهام سير العمل"
636
+
637
+ msgid "task"
638
+ msgstr "مهمة"
639
+
640
+ msgid "workflow task order"
641
+ msgstr "ترتيب مهمة سير العمل"
642
+
643
+ msgid "workflow task orders"
644
+ msgstr "ترتيبات مهام سير العمل"
645
+
646
+ msgid ""
647
+ "Active tasks can be added to workflows. Deactivating a task does not remove "
648
+ "it from existing workflows."
649
+ msgstr ""
650
+ "يمكن إضافة المهام النشطة إلى سير العمل. تعطيل مهمة لا يزيلها من سير العمل "
651
+ "الموجود."
652
+
653
+ msgid "tasks"
654
+ msgstr "مهام"
655
+
656
+ msgid ""
657
+ "Pages/snippets at this step in a workflow will be moderated or approved by "
658
+ "these groups of users"
659
+ msgstr ""
660
+ "سيتم مراجعة أو الموافقة على الصفحات/المقتطفات في هذه الخطوة من سير العمل "
661
+ "بواسطة هذه المجموعات من المستخدمين"
662
+
663
+ msgid "Request changes"
664
+ msgstr "طلب تغييرات"
665
+
305
666
  msgid "Approve"
306
- msgstr "موافق"
667
+ msgstr "موافقة"
668
+
669
+ msgid "Approve with comment"
670
+ msgstr "الموافقة مع تعليق"
671
+
672
+ msgid "Members of the chosen Wagtail Groups can approve this task"
673
+ msgstr "يمكن لأعضاء مجموعات Wagtail المختارة الموافقة على هذه المهمة"
674
+
675
+ msgid "Group approval task"
676
+ msgstr "مهمة موافقة المجموعة"
677
+
678
+ msgid "Group approval tasks"
679
+ msgstr "مهام موافقة المجموعة"
680
+
681
+ msgid "Rejected"
682
+ msgstr "مرفوض"
683
+
684
+ msgid "Skipped"
685
+ msgstr "تم تخطيه"
686
+
687
+ msgid "workflow state"
688
+ msgstr "حالة سير العمل"
689
+
690
+ msgid "started at"
691
+ msgstr "بدأ في"
692
+
693
+ msgid "finished at"
694
+ msgstr "انتهى في"
695
+
696
+ msgid "finished by"
697
+ msgstr "انتهى بواسطة"
698
+
699
+ #, python-format
700
+ msgid "Task '%(task_name)s' on Revision '%(revision_info)s': %(status)s"
701
+ msgstr "المهمة '%(task_name)s' على المراجعة '%(revision_info)s': %(status)s"
702
+
703
+ msgid "Task state"
704
+ msgstr "حالة المهمة"
705
+
706
+ msgid "Task states"
707
+ msgstr "حالات المهام"
708
+
709
+ msgid "in moderation"
710
+ msgstr "قيد المراجعة"
711
+
712
+ msgid "live + in moderation"
713
+ msgstr "نشط + قيد المراجعة"
307
714
 
308
715
  msgid "Log in"
309
716
  msgstr "تسجيل الدخول"
310
717
 
311
718
  msgid "Your username and password didn't match. Please try again."
312
- msgstr "اسم المستخدم وكلمة المرور غير متطابقين. حاول مرة اخرى."
719
+ msgstr "اسم المستخدم وكلمة المرور غير متطابقين. يرجى المحاولة مرة أخرى."
313
720
 
314
721
  msgid ""
315
722
  "Your account doesn't have access to this page. To proceed, please log in "
316
723
  "with an account that has access."
317
724
  msgstr ""
318
- "حسابك ليس لديه حق الوصول إلى هذه الصفحة. للمتابعة ، يرجى تسجيل الدخول "
319
- "باستخدام حساب لديه حق الوصول."
725
+ "حسابك لا يملك صلاحية الوصول إلى هذه الصفحة. للمتابعة، يرجى تسجيل الدخول "
726
+ "بحساب لديه صلاحية الوصول."
320
727
 
321
728
  msgid "Password required"
322
- msgstr "كلمة السر مطلوبة"
729
+ msgstr "كلمة المرور مطلوبة"
323
730
 
324
731
  msgid "You need a password to access this page."
325
- msgstr "هذه الصفحة تتطلب كلمة مرور."
732
+ msgstr "تحتاج إلى كلمة مرور للوصول إلى هذه الصفحة."
326
733
 
327
734
  msgid "Continue"
328
- msgstr "أكمل"
735
+ msgstr "متابعة"
736
+
737
+ #, python-format
738
+ msgid "%(count)s descendant collection"
739
+ msgid_plural "%(count)s descendant collections"
740
+ msgstr[0] "%(count)s مجموعة فرعية"
741
+ msgstr[1] "%(count)s مجموعتين فرعيتين"
742
+ msgstr[2] "%(count)s مجموعات فرعية"
743
+ msgstr[3] "%(count)s مجموعة فرعية"
744
+ msgstr[4] "%(count)s مجموعة فرعية"
745
+ msgstr[5] "%(count)s رزمة فرعية"
746
+
747
+ msgid "Create"
748
+ msgstr "إنشاء"
329
749
 
330
750
  msgid "Created"
331
- msgstr "تم إنشاؤه"
751
+ msgstr "تم الإنشاء"
332
752
 
333
753
  msgid "Edited"
334
- msgstr "محررة"
754
+ msgstr "تم التعديل"
755
+
756
+ msgid "Deleted"
757
+ msgstr "تم الحذف"
335
758
 
336
759
  msgid "Published"
337
- msgstr "تم نشره"
760
+ msgstr "تم النشر"
761
+
762
+ msgid "Publish scheduled draft"
763
+ msgstr "نشر مسودة مجدولة"
764
+
765
+ msgid "Published scheduled draft"
766
+ msgstr "تم نشر المسودة المجدولة"
338
767
 
339
768
  msgid "Unpublish"
340
- msgstr "غير منشور"
769
+ msgstr "إلغاء النشر"
770
+
771
+ msgid "Unpublished"
772
+ msgstr "تم إلغاء النشر"
773
+
774
+ msgid "Unpublish scheduled draft"
775
+ msgstr "إلغاء نشر مسودة مجدولة"
776
+
777
+ msgid "Unpublished scheduled draft"
778
+ msgstr "تم إلغاء نشر المسودة المجدولة"
341
779
 
342
780
  msgid "Reject"
343
- msgstr "مرفوض"
781
+ msgstr "رفض"
782
+
783
+ msgid "Rename"
784
+ msgstr "إعادة تسمية"
785
+
786
+ #, python-format
787
+ msgid "Renamed from '%(old)s' to '%(new)s'"
788
+ msgstr "تمت إعادة التسمية من '%(old)s' إلى '%(new)s'"
789
+
790
+ msgid "Renamed"
791
+ msgstr "تمت إعادة التسمية"
792
+
793
+ msgid "Revert"
794
+ msgstr "تراجع"
795
+
796
+ #, python-format
797
+ msgid ""
798
+ "Reverted to previous revision with id %(revision_id)s from %(created_at)s"
799
+ msgstr ""
800
+ "تم الرجوع إلى المراجعة السابقة بالمعرف %(revision_id)s من %(created_at)s"
801
+
802
+ msgid "Reverted to previous revision"
803
+ msgstr "تم الرجوع إلى المراجعة السابقة"
344
804
 
345
805
  msgid "Copy"
346
- msgstr "انسخ"
806
+ msgstr "نسخ"
807
+
808
+ #, python-format
809
+ msgid "Copied from %(title)s"
810
+ msgstr "تم النسخ من %(title)s"
811
+
812
+ msgid "Copied"
813
+ msgstr "تم النسخ"
814
+
815
+ msgid "Copy for translation"
816
+ msgstr "نسخ للترجمة"
817
+
818
+ #, python-format
819
+ msgid "Copied for translation from %(title)s (%(locale)s)"
820
+ msgstr "تم النسخ للترجمة من %(title)s (%(locale)s)"
821
+
822
+ msgid "Copied for translation"
823
+ msgstr "تم النسخ للترجمة"
824
+
825
+ msgid "Create alias"
826
+ msgstr "إنشاء اسم مستعار"
827
+
828
+ #, python-format
829
+ msgid "Created an alias of %(title)s"
830
+ msgstr "تم إنشاء اسم مستعار لـ %(title)s"
831
+
832
+ msgid "Created an alias"
833
+ msgstr "تم إنشاء اسم مستعار"
834
+
835
+ msgid "Convert alias into ordinary page"
836
+ msgstr "تحويل الاسم المستعار إلى صفحة عادية"
837
+
838
+ #, python-format
839
+ msgid "Converted the alias '%(title)s' into an ordinary page"
840
+ msgstr "تم تحويل الاسم المستعار '%(title)s' إلى صفحة عادية"
841
+
842
+ msgid "Converted an alias into an ordinary page"
843
+ msgstr "تم تحويل اسم مستعار إلى صفحة عادية"
347
844
 
348
845
  msgid "Move"
349
- msgstr "انقل"
846
+ msgstr "نقل"
847
+
848
+ #, python-format
849
+ msgid "Moved from '%(old_parent)s' to '%(new_parent)s'"
850
+ msgstr "تم النقل من '%(old_parent)s' إلى '%(new_parent)s'"
851
+
852
+ msgid "Moved"
853
+ msgstr "تم النقل"
854
+
855
+ msgid "Reorder"
856
+ msgstr "إعادة ترتيب"
857
+
858
+ #, python-format
859
+ msgid "Reordered under '%(parent)s'"
860
+ msgstr "تم إعادة الترتيب تحت '%(parent)s'"
861
+
862
+ msgid "Reordered"
863
+ msgstr "تم إعادة الترتيب"
864
+
865
+ msgid "Schedule publication"
866
+ msgstr "جدولة النشر"
867
+
868
+ #, python-format
869
+ msgid ""
870
+ "Revision %(revision_id)s from %(created_at)s scheduled for publishing at "
871
+ "%(go_live_at)s."
872
+ msgstr ""
873
+ "تم جدولة المراجعة %(revision_id)s من %(created_at)s للنشر في %(go_live_at)s."
874
+
875
+ #, python-format
876
+ msgid "Page scheduled for publishing at %(go_live_at)s"
877
+ msgstr "تم جدولة الصفحة للنشر في %(go_live_at)s"
878
+
879
+ msgid "Page scheduled for publishing"
880
+ msgstr "تم جدولة الصفحة للنشر"
881
+
882
+ msgid "Unschedule publication"
883
+ msgstr "إلغاء جدولة النشر"
884
+
885
+ #, python-format
886
+ msgid ""
887
+ "Revision %(revision_id)s from %(created_at)s unscheduled from publishing at "
888
+ "%(go_live_at)s."
889
+ msgstr ""
890
+ "تم إلغاء جدولة المراجعة %(revision_id)s من %(created_at)s للنشر في "
891
+ "%(go_live_at)s."
892
+
893
+ #, python-format
894
+ msgid "Page unscheduled for publishing at %(go_live_at)s"
895
+ msgstr "تم إلغاء جدولة الصفحة للنشر في %(go_live_at)s"
896
+
897
+ msgid "Page unscheduled from publishing"
898
+ msgstr "تم إلغاء جدولة الصفحة من النشر"
899
+
900
+ msgid "Add view restrictions"
901
+ msgstr "إضافة قيود عرض"
902
+
903
+ #, python-format
904
+ msgid "Added the '%(restriction)s' view restriction"
905
+ msgstr "تمت إضافة قيد العرض '%(restriction)s'"
906
+
907
+ msgid "Added view restriction"
908
+ msgstr "تمت إضافة قيد عرض"
909
+
910
+ msgid "Update view restrictions"
911
+ msgstr "تحديث قيود العرض"
912
+
913
+ #, python-format
914
+ msgid "Updated the view restriction to '%(restriction)s'"
915
+ msgstr "تم تحديث قيد العرض إلى '%(restriction)s'"
916
+
917
+ msgid "Updated view restriction"
918
+ msgstr "تم تحديث قيد العرض"
919
+
920
+ msgid "Remove view restrictions"
921
+ msgstr "إزالة قيود العرض"
922
+
923
+ #, python-format
924
+ msgid "Removed the '%(restriction)s' view restriction. The page is public."
925
+ msgstr "تمت إزالة قيد العرض '%(restriction)s'. الصفحة عامة الآن."
926
+
927
+ msgid "Removed view restriction"
928
+ msgstr "تمت إزالة قيد العرض"
929
+
930
+ msgid "Add comment"
931
+ msgstr "إضافة تعليق"
932
+
933
+ #, python-format
934
+ msgid "Added a comment on field %(field)s: \"%(text)s\""
935
+ msgstr "تمت إضافة تعليق على الحقل %(field)s: \"%(text)s\""
936
+
937
+ msgid "Added a comment"
938
+ msgstr "تمت إضافة تعليق"
939
+
940
+ msgid "Edit comment"
941
+ msgstr "تحرير تعليق"
942
+
943
+ #, python-format
944
+ msgid "Edited a comment on field %(field)s: \"%(text)s\""
945
+ msgstr "تم تحرير تعليق على الحقل %(field)s: \"%(text)s\""
946
+
947
+ msgid "Edited a comment"
948
+ msgstr "تم تحرير تعليق"
949
+
950
+ msgid "Delete comment"
951
+ msgstr "حذف تعليق"
952
+
953
+ #, python-format
954
+ msgid "Deleted a comment on field %(field)s: \"%(text)s\""
955
+ msgstr "تم حذف تعليق على الحقل %(field)s: \"%(text)s\""
956
+
957
+ msgid "Deleted a comment"
958
+ msgstr "تم حذف تعليق"
959
+
960
+ msgid "Resolve comment"
961
+ msgstr "حل التعليق"
962
+
963
+ #, python-format
964
+ msgid "Resolved a comment on field %(field)s: \"%(text)s\""
965
+ msgstr "تم حل تعليق على الحقل %(field)s: \"%(text)s\""
966
+
967
+ msgid "Resolved a comment"
968
+ msgstr "تم حل تعليق"
969
+
970
+ msgid "Reply to comment"
971
+ msgstr "الرد على التعليق"
972
+
973
+ #, python-format
974
+ msgid "Replied to comment on field %(field)s: \"%(text)s\""
975
+ msgstr "تم الرد على تعليق على الحقل %(field)s: \"%(text)s\""
976
+
977
+ msgid "Replied to a comment"
978
+ msgstr "تم الرد على تعليق"
979
+
980
+ msgid "Edit reply to comment"
981
+ msgstr "تحرير الرد على التعليق"
982
+
983
+ #, python-format
984
+ msgid "Edited a reply to a comment on field %(field)s: \"%(text)s\""
985
+ msgstr "تم تحرير رد على تعليق على الحقل %(field)s: \"%(text)s\""
986
+
987
+ msgid "Edited a reply"
988
+ msgstr "تم تحرير رد"
989
+
990
+ msgid "Delete reply to comment"
991
+ msgstr "حذف الرد على التعليق"
992
+
993
+ #, python-format
994
+ msgid "Deleted a reply to a comment on field %(field)s: \"%(text)s\""
995
+ msgstr "تم حذف رد على تعليق على الحقل %(field)s: \"%(text)s\""
996
+
997
+ msgid "Deleted a reply"
998
+ msgstr "تم حذف رد"
999
+
1000
+ msgid "Workflow: start"
1001
+ msgstr "سير العمل: بدء"
1002
+
1003
+ #, python-format
1004
+ msgid "'%(workflow)s' started. Next step '%(task)s'"
1005
+ msgstr "تم بدء '%(workflow)s'. الخطوة التالية '%(task)s'"
1006
+
1007
+ msgid "Workflow started"
1008
+ msgstr "تم بدء سير العمل"
1009
+
1010
+ msgid "Workflow: approve task"
1011
+ msgstr "سير العمل: الموافقة على المهمة"
1012
+
1013
+ #, python-format
1014
+ msgid "Approved at '%(task)s'. Next step '%(next_task)s'"
1015
+ msgstr "تمت الموافقة في '%(task)s'. الخطوة التالية '%(next_task)s'"
1016
+
1017
+ #, python-format
1018
+ msgid "Approved at '%(task)s'. '%(workflow)s' complete"
1019
+ msgstr "تمت الموافقة في '%(task)s'. اكتمل '%(workflow)s'"
1020
+
1021
+ msgid "Workflow task approved"
1022
+ msgstr "تمت الموافقة على مهمة سير العمل"
1023
+
1024
+ msgid "Workflow: reject task"
1025
+ msgstr "سير العمل: رفض المهمة"
1026
+
1027
+ #, python-format
1028
+ msgid "Rejected at '%(task)s'. Changes requested"
1029
+ msgstr "تم الرفض في '%(task)s'. طلب تغييرات"
1030
+
1031
+ msgid "Workflow task rejected. Workflow complete"
1032
+ msgstr "تم رفض مهمة سير العمل. اكتمل سير العمل"
1033
+
1034
+ msgid "Workflow: resume task"
1035
+ msgstr "سير العمل: استئناف المهمة"
1036
+
1037
+ #, python-format
1038
+ msgid "Resubmitted '%(task)s'. Workflow resumed"
1039
+ msgstr "تم إعادة إرسال '%(task)s'. تم استئناف سير العمل"
1040
+
1041
+ msgid "Workflow task resubmitted. Workflow resumed"
1042
+ msgstr "تم إعادة إرسال مهمة سير العمل. تم استئناف سير العمل"
1043
+
1044
+ msgid "Workflow: cancel"
1045
+ msgstr "سير العمل: إلغاء"
1046
+
1047
+ #, python-format
1048
+ msgid "Cancelled '%(workflow)s' at '%(task)s'"
1049
+ msgstr "تم إلغاء '%(workflow)s' في '%(task)s'"
1050
+
1051
+ msgid "Workflow cancelled"
1052
+ msgstr "تم إلغاء سير العمل"