wagtail 7.0.2__py3-none-any.whl → 7.1rc1__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 (1292) hide show
  1. wagtail/__init__.py +1 -1
  2. wagtail/actions/copy_page.py +8 -7
  3. wagtail/admin/apps.py +2 -0
  4. wagtail/admin/checks.py +2 -1
  5. wagtail/admin/filters.py +11 -6
  6. wagtail/admin/forms/account.py +4 -1
  7. wagtail/admin/forms/pages.py +1 -1
  8. wagtail/admin/forms/workflows.py +1 -1
  9. wagtail/admin/locale/af/LC_MESSAGES/djangojs.mo +0 -0
  10. wagtail/admin/locale/ar/LC_MESSAGES/django.mo +0 -0
  11. wagtail/admin/locale/ar/LC_MESSAGES/django.po +2917 -340
  12. wagtail/admin/locale/ar/LC_MESSAGES/djangojs.mo +0 -0
  13. wagtail/admin/locale/ar/LC_MESSAGES/djangojs.po +152 -22
  14. wagtail/admin/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  15. wagtail/admin/locale/be/LC_MESSAGES/django.po +1 -1
  16. wagtail/admin/locale/bg/LC_MESSAGES/django.po +1 -1
  17. wagtail/admin/locale/bn/LC_MESSAGES/django.po +1 -1
  18. wagtail/admin/locale/ca/LC_MESSAGES/django.po +1 -1
  19. wagtail/admin/locale/cs/LC_MESSAGES/django.po +1 -1
  20. wagtail/admin/locale/cy/LC_MESSAGES/django.po +1 -1
  21. wagtail/admin/locale/da/LC_MESSAGES/django.po +1 -1
  22. wagtail/admin/locale/de/LC_MESSAGES/django.po +1 -1
  23. wagtail/admin/locale/dv/LC_MESSAGES/django.po +1 -1
  24. wagtail/admin/locale/el/LC_MESSAGES/django.po +1 -1
  25. wagtail/admin/locale/en/LC_MESSAGES/django.po +232 -279
  26. wagtail/admin/locale/en/LC_MESSAGES/djangojs.po +41 -24
  27. wagtail/admin/locale/en_IN/LC_MESSAGES/djangojs.mo +0 -0
  28. wagtail/admin/locale/es/LC_MESSAGES/django.po +1 -1
  29. wagtail/admin/locale/es_419/LC_MESSAGES/django.po +1 -1
  30. wagtail/admin/locale/es_VE/LC_MESSAGES/django.po +1 -1
  31. wagtail/admin/locale/es_VE/LC_MESSAGES/djangojs.mo +0 -0
  32. wagtail/admin/locale/et/LC_MESSAGES/django.po +1 -1
  33. wagtail/admin/locale/eu/LC_MESSAGES/django.po +1 -1
  34. wagtail/admin/locale/fa/LC_MESSAGES/django.po +1 -1
  35. wagtail/admin/locale/fi/LC_MESSAGES/django.po +1 -1
  36. wagtail/admin/locale/fr/LC_MESSAGES/django.po +1 -1
  37. wagtail/admin/locale/gl/LC_MESSAGES/django.po +1 -1
  38. wagtail/admin/locale/he_IL/LC_MESSAGES/django.po +1 -1
  39. wagtail/admin/locale/hi/LC_MESSAGES/djangojs.mo +0 -0
  40. wagtail/admin/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  41. wagtail/admin/locale/ht/LC_MESSAGES/django.po +1 -1
  42. wagtail/admin/locale/hu/LC_MESSAGES/django.po +1 -1
  43. wagtail/admin/locale/id_ID/LC_MESSAGES/django.po +1 -1
  44. wagtail/admin/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  45. wagtail/admin/locale/is_IS/LC_MESSAGES/django.po +117 -3
  46. wagtail/admin/locale/it/LC_MESSAGES/django.mo +0 -0
  47. wagtail/admin/locale/it/LC_MESSAGES/django.po +84 -3
  48. wagtail/admin/locale/ja/LC_MESSAGES/django.po +1 -1
  49. wagtail/admin/locale/ka/LC_MESSAGES/django.po +1 -1
  50. wagtail/admin/locale/ko/LC_MESSAGES/django.po +1 -1
  51. wagtail/admin/locale/lt/LC_MESSAGES/django.po +1 -1
  52. wagtail/admin/locale/lv/LC_MESSAGES/django.po +1 -1
  53. wagtail/admin/locale/mi/LC_MESSAGES/django.po +1 -1
  54. wagtail/admin/locale/mn/LC_MESSAGES/django.po +1 -1
  55. wagtail/admin/locale/my/LC_MESSAGES/django.po +1 -1
  56. wagtail/admin/locale/nb/LC_MESSAGES/django.po +1 -1
  57. wagtail/admin/locale/nl/LC_MESSAGES/django.po +1 -1
  58. wagtail/admin/locale/pl/LC_MESSAGES/django.po +1 -1
  59. wagtail/admin/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  60. wagtail/admin/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  61. wagtail/admin/locale/ro/LC_MESSAGES/django.po +1 -1
  62. wagtail/admin/locale/ru/LC_MESSAGES/django.po +1 -1
  63. wagtail/admin/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  64. wagtail/admin/locale/sl/LC_MESSAGES/django.po +1 -1
  65. wagtail/admin/locale/sv/LC_MESSAGES/django.po +1 -1
  66. wagtail/admin/locale/ta/LC_MESSAGES/djangojs.mo +0 -0
  67. wagtail/admin/locale/tet/LC_MESSAGES/django.po +1 -1
  68. wagtail/admin/locale/th/LC_MESSAGES/django.po +1 -1
  69. wagtail/admin/locale/tr/LC_MESSAGES/django.po +1 -1
  70. wagtail/admin/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  71. wagtail/admin/locale/ug/LC_MESSAGES/django.po +1 -1
  72. wagtail/admin/locale/uk/LC_MESSAGES/django.po +1 -1
  73. wagtail/admin/locale/vi/LC_MESSAGES/django.po +1 -1
  74. wagtail/admin/locale/zh/LC_MESSAGES/django.po +1 -1
  75. wagtail/admin/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  76. wagtail/admin/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  77. wagtail/admin/panels/base.py +13 -0
  78. wagtail/admin/panels/field_panel.py +16 -0
  79. wagtail/admin/panels/group.py +16 -0
  80. wagtail/admin/panels/inline_panel.py +30 -3
  81. wagtail/admin/panels/multiple_chooser_panel.py +10 -2
  82. wagtail/admin/rich_text/editors/draftail/__init__.py +2 -2
  83. wagtail/admin/signals.py +9 -3
  84. wagtail/admin/static/wagtailadmin/css/core.css +1 -1
  85. wagtail/admin/static/wagtailadmin/css/panels/streamfield.css +1 -1
  86. wagtail/admin/static/wagtailadmin/js/comments.js +1 -1
  87. wagtail/admin/static/wagtailadmin/js/core.js +1 -1
  88. wagtail/admin/static/wagtailadmin/js/date-time-chooser.js +1 -1
  89. wagtail/admin/static/wagtailadmin/js/draftail.js +1 -1
  90. wagtail/admin/static/wagtailadmin/js/sidebar.js +1 -1
  91. wagtail/admin/static/wagtailadmin/js/task-chooser-modal.js +1 -1
  92. wagtail/admin/static/wagtailadmin/js/telepath/blocks.js +1 -1
  93. wagtail/admin/static/wagtailadmin/js/telepath/telepath.js +1 -1
  94. wagtail/admin/static/wagtailadmin/js/telepath/widgets.js +1 -1
  95. wagtail/admin/static/wagtailadmin/js/userbar.js +1 -1
  96. wagtail/admin/static/wagtailadmin/js/vendor.js +1 -1
  97. wagtail/admin/static/wagtailadmin/js/vendor.js.LICENSE.txt +0 -20
  98. wagtail/admin/static/wagtailadmin/js/wagtailadmin.js +1 -1
  99. wagtail/admin/telepath/__init__.py +70 -0
  100. wagtail/admin/telepath/widgets.py +78 -0
  101. wagtail/admin/templates/wagtailadmin/account/account.html +4 -2
  102. wagtail/admin/templates/wagtailadmin/admin_base.html +0 -1
  103. wagtail/admin/templates/wagtailadmin/base.html +1 -1
  104. wagtail/admin/templates/wagtailadmin/bulk_actions/confirmation/form.html +1 -1
  105. wagtail/admin/templates/wagtailadmin/generic/chooser/chooser.html +4 -4
  106. wagtail/admin/templates/wagtailadmin/generic/chooser/creation_form.html +1 -0
  107. wagtail/admin/templates/wagtailadmin/generic/form.html +1 -0
  108. wagtail/admin/templates/wagtailadmin/icons/grid.svg +1 -0
  109. wagtail/admin/templates/wagtailadmin/notifications/base.html +1 -1
  110. wagtail/admin/templates/wagtailadmin/pages/add_subpage.html +1 -1
  111. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_bulk_delete.html +7 -3
  112. wagtail/admin/templates/wagtailadmin/pages/bulk_actions/confirm_delete_form.html +6 -0
  113. wagtail/admin/templates/wagtailadmin/pages/confirm_delete.html +3 -14
  114. wagtail/admin/templates/wagtailadmin/pages/edit_alias.html +1 -1
  115. wagtail/admin/templates/wagtailadmin/pages/listing/_button_with_dropdown.html +1 -4
  116. wagtail/admin/templates/wagtailadmin/pages/listing/_page_header_buttons.html +3 -1
  117. wagtail/admin/templates/wagtailadmin/panels/inline_panel.html +2 -7
  118. wagtail/admin/templates/wagtailadmin/panels/inline_panel_child.html +1 -1
  119. wagtail/admin/templates/wagtailadmin/panels/multiple_chooser_panel.html +1 -7
  120. wagtail/admin/templates/wagtailadmin/panels/tabbed_interface.html +3 -2
  121. wagtail/admin/templates/wagtailadmin/shared/breadcrumbs.html +1 -0
  122. wagtail/admin/templates/wagtailadmin/shared/button_with_dropdown.html +8 -0
  123. wagtail/admin/templates/wagtailadmin/shared/dialog/confirm_site_name.html +18 -0
  124. wagtail/admin/templates/wagtailadmin/shared/formatted_field.html +1 -1
  125. wagtail/admin/templates/wagtailadmin/shared/headers/_filters.html +1 -1
  126. wagtail/admin/templates/wagtailadmin/shared/icons.html +1 -1
  127. wagtail/admin/templates/wagtailadmin/shared/keyboard_shortcuts_dialog.html +6 -4
  128. wagtail/admin/templates/wagtailadmin/shared/panel.html +2 -0
  129. wagtail/admin/templates/wagtailadmin/shared/side_panels/checks.html +53 -37
  130. wagtail/admin/templates/wagtailadmin/shared/side_panels/comments.html +18 -11
  131. wagtail/admin/templates/wagtailadmin/shared/tabs/tab_nav_link.html +1 -1
  132. wagtail/admin/templates/wagtailadmin/shared/workflow_history/detail.html +4 -4
  133. wagtail/admin/templates/wagtailadmin/tables/boolean_cell.html +2 -2
  134. wagtail/admin/templates/wagtailadmin/tables/download_cell.html +1 -1
  135. wagtail/admin/templates/wagtailadmin/tables/usage_count_column_cell.html +11 -0
  136. wagtail/admin/templates/wagtailadmin/userbar/base.html +15 -8
  137. wagtail/admin/templates/wagtailadmin/userbar/item_accessibility.html +18 -18
  138. wagtail/admin/templates/wagtailadmin/userbar/item_admin.html +2 -1
  139. wagtail/admin/templates/wagtailadmin/userbar/item_page_add.html +2 -1
  140. wagtail/admin/templates/wagtailadmin/userbar/item_page_edit.html +2 -1
  141. wagtail/admin/templates/wagtailadmin/userbar/item_page_explore.html +2 -1
  142. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/chooser.html +4 -2
  143. wagtail/admin/templates/wagtailadmin/workflows/task_chooser/includes/results.html +1 -1
  144. wagtail/admin/templatetags/wagtailadmin_tags.py +53 -25
  145. wagtail/admin/templatetags/wagtailuserbar.py +4 -72
  146. wagtail/admin/tests/pages/test_bulk_actions/test_bulk_delete.py +253 -16
  147. wagtail/admin/tests/pages/test_copy_page.py +121 -0
  148. wagtail/admin/tests/pages/test_create_page.py +112 -66
  149. wagtail/admin/tests/pages/test_delete_page.py +33 -3
  150. wagtail/admin/tests/pages/test_edit_page.py +10 -6
  151. wagtail/admin/tests/pages/test_workflow_history.py +8 -6
  152. wagtail/admin/tests/test_account_management.py +37 -0
  153. wagtail/admin/tests/test_audit_log.py +3 -3
  154. wagtail/admin/tests/test_block_preview.py +31 -7
  155. wagtail/admin/tests/test_buttons_hooks.py +65 -3
  156. wagtail/admin/tests/test_edit_handlers.py +64 -55
  157. wagtail/admin/tests/test_reports_views.py +2 -2
  158. wagtail/{tests → admin/tests}/test_telepath.py +1 -1
  159. wagtail/admin/tests/test_templatetags.py +20 -18
  160. wagtail/admin/tests/test_userbar.py +249 -14
  161. wagtail/admin/tests/test_widgets.py +210 -5
  162. wagtail/admin/tests/test_workflows.py +1 -1
  163. wagtail/admin/tests/ui/test_sidebar.py +1 -1
  164. wagtail/admin/tests/viewsets/test_base_viewset.py +5 -0
  165. wagtail/admin/tests/viewsets/test_model_viewset.py +10 -17
  166. wagtail/admin/ui/menus/__init__.py +25 -0
  167. wagtail/admin/ui/menus/pages.py +43 -0
  168. wagtail/admin/ui/side_panels.py +1 -1
  169. wagtail/admin/ui/sidebar.py +1 -1
  170. wagtail/admin/ui/tables/__init__.py +15 -1
  171. wagtail/admin/userbar.py +85 -27
  172. wagtail/admin/views/account.py +3 -1
  173. wagtail/admin/views/bulk_action/base_bulk_action.py +6 -1
  174. wagtail/admin/views/bulk_action/mixins.py +38 -0
  175. wagtail/admin/views/generic/mixins.py +7 -0
  176. wagtail/admin/views/generic/models.py +17 -19
  177. wagtail/admin/views/generic/preview.py +7 -4
  178. wagtail/admin/views/pages/bulk_actions/delete.py +36 -2
  179. wagtail/admin/views/pages/copy.py +7 -0
  180. wagtail/admin/views/pages/create.py +11 -5
  181. wagtail/admin/views/pages/delete.py +8 -11
  182. wagtail/admin/views/pages/edit.py +8 -1
  183. wagtail/admin/views/pages/utils.py +19 -0
  184. wagtail/admin/viewsets/base.py +8 -4
  185. wagtail/admin/viewsets/chooser.py +1 -1
  186. wagtail/admin/viewsets/model.py +1 -1
  187. wagtail/admin/wagtail_hooks.py +51 -77
  188. wagtail/admin/widgets/button.py +84 -61
  189. wagtail/admin/widgets/chooser.py +2 -2
  190. wagtail/admin/widgets/datetime.py +2 -2
  191. wagtail/admin/widgets/slug.py +55 -5
  192. wagtail/api/v2/filters.py +28 -41
  193. wagtail/api/v2/tests/test_documents.py +1 -1
  194. wagtail/api/v2/tests/test_images.py +1 -1
  195. wagtail/api/v2/tests/test_pages.py +18 -19
  196. wagtail/api/v2/views.py +12 -1
  197. wagtail/apps.py +0 -2
  198. wagtail/blocks/base.py +21 -10
  199. wagtail/blocks/field_block.py +12 -3
  200. wagtail/blocks/list_block.py +2 -1
  201. wagtail/blocks/static_block.py +2 -1
  202. wagtail/blocks/stream_block.py +2 -1
  203. wagtail/blocks/struct_block.py +7 -4
  204. wagtail/contrib/forms/forms.py +13 -22
  205. wagtail/contrib/forms/locale/af/LC_MESSAGES/django.mo +0 -0
  206. wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.mo +0 -0
  207. wagtail/contrib/forms/locale/ar/LC_MESSAGES/django.po +89 -26
  208. wagtail/contrib/forms/locale/de/LC_MESSAGES/django.mo +0 -0
  209. wagtail/contrib/forms/locale/de/LC_MESSAGES/django.po +19 -2
  210. wagtail/contrib/forms/locale/en/LC_MESSAGES/django.po +13 -13
  211. wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.mo +0 -0
  212. wagtail/contrib/forms/locale/fr/LC_MESSAGES/django.po +8 -0
  213. wagtail/contrib/forms/locale/hy/LC_MESSAGES/django.mo +0 -0
  214. wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  215. wagtail/contrib/forms/locale/is_IS/LC_MESSAGES/django.po +19 -2
  216. wagtail/contrib/forms/tests/test_forms.py +51 -80
  217. wagtail/contrib/forms/tests/test_views.py +6 -0
  218. wagtail/contrib/forms/views.py +4 -0
  219. wagtail/contrib/frontend_cache/backends/cloudfront.py +6 -1
  220. wagtail/contrib/frontend_cache/tests.py +72 -0
  221. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.mo +0 -0
  222. wagtail/contrib/redirects/locale/ar/LC_MESSAGES/django.po +112 -26
  223. wagtail/contrib/redirects/locale/be/LC_MESSAGES/django.po +1 -1
  224. wagtail/contrib/redirects/locale/bg/LC_MESSAGES/django.po +1 -1
  225. wagtail/contrib/redirects/locale/bn/LC_MESSAGES/django.po +1 -1
  226. wagtail/contrib/redirects/locale/ca/LC_MESSAGES/django.po +1 -1
  227. wagtail/contrib/redirects/locale/cs/LC_MESSAGES/django.po +1 -1
  228. wagtail/contrib/redirects/locale/cy/LC_MESSAGES/django.po +1 -1
  229. wagtail/contrib/redirects/locale/da/LC_MESSAGES/django.po +1 -1
  230. wagtail/contrib/redirects/locale/de/LC_MESSAGES/django.po +1 -1
  231. wagtail/contrib/redirects/locale/dv/LC_MESSAGES/django.po +1 -1
  232. wagtail/contrib/redirects/locale/el/LC_MESSAGES/django.po +1 -1
  233. wagtail/contrib/redirects/locale/en/LC_MESSAGES/django.po +1 -1
  234. wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  235. wagtail/contrib/redirects/locale/en_IN/LC_MESSAGES/django.po +1 -1
  236. wagtail/contrib/redirects/locale/es/LC_MESSAGES/django.po +1 -1
  237. wagtail/contrib/redirects/locale/es_419/LC_MESSAGES/django.po +1 -1
  238. wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo +0 -0
  239. wagtail/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po +1 -1
  240. wagtail/contrib/redirects/locale/et/LC_MESSAGES/django.po +1 -1
  241. wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.mo +0 -0
  242. wagtail/contrib/redirects/locale/eu/LC_MESSAGES/django.po +1 -1
  243. wagtail/contrib/redirects/locale/fa/LC_MESSAGES/django.po +1 -1
  244. wagtail/contrib/redirects/locale/fi/LC_MESSAGES/django.po +1 -1
  245. wagtail/contrib/redirects/locale/fr/LC_MESSAGES/django.po +1 -1
  246. wagtail/contrib/redirects/locale/gl/LC_MESSAGES/django.po +1 -1
  247. wagtail/contrib/redirects/locale/he_IL/LC_MESSAGES/django.po +1 -1
  248. wagtail/contrib/redirects/locale/hi/LC_MESSAGES/django.mo +0 -0
  249. wagtail/contrib/redirects/locale/hi/LC_MESSAGES/django.po +1 -1
  250. wagtail/contrib/redirects/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  251. wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.mo +0 -0
  252. wagtail/contrib/redirects/locale/ht/LC_MESSAGES/django.po +1 -1
  253. wagtail/contrib/redirects/locale/hu/LC_MESSAGES/django.po +1 -1
  254. wagtail/contrib/redirects/locale/hy/LC_MESSAGES/django.mo +0 -0
  255. wagtail/contrib/redirects/locale/hy/LC_MESSAGES/django.po +1 -1
  256. wagtail/contrib/redirects/locale/id_ID/LC_MESSAGES/django.po +1 -1
  257. wagtail/contrib/redirects/locale/is_IS/LC_MESSAGES/django.po +1 -1
  258. wagtail/contrib/redirects/locale/it/LC_MESSAGES/django.po +1 -1
  259. wagtail/contrib/redirects/locale/ja/LC_MESSAGES/django.po +1 -1
  260. wagtail/contrib/redirects/locale/ka/LC_MESSAGES/django.po +1 -1
  261. wagtail/contrib/redirects/locale/ko/LC_MESSAGES/django.po +1 -1
  262. wagtail/contrib/redirects/locale/lt/LC_MESSAGES/django.po +1 -1
  263. wagtail/contrib/redirects/locale/lv/LC_MESSAGES/django.po +1 -1
  264. wagtail/contrib/redirects/locale/mi/LC_MESSAGES/django.po +1 -1
  265. wagtail/contrib/redirects/locale/mn/LC_MESSAGES/django.po +1 -1
  266. wagtail/contrib/redirects/locale/my/LC_MESSAGES/django.po +1 -1
  267. wagtail/contrib/redirects/locale/nb/LC_MESSAGES/django.po +1 -1
  268. wagtail/contrib/redirects/locale/nl/LC_MESSAGES/django.po +1 -1
  269. wagtail/contrib/redirects/locale/pl/LC_MESSAGES/django.po +1 -1
  270. wagtail/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  271. wagtail/contrib/redirects/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  272. wagtail/contrib/redirects/locale/ro/LC_MESSAGES/django.po +1 -1
  273. wagtail/contrib/redirects/locale/ru/LC_MESSAGES/django.po +1 -1
  274. wagtail/contrib/redirects/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  275. wagtail/contrib/redirects/locale/sl/LC_MESSAGES/django.po +1 -1
  276. wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.mo +0 -0
  277. wagtail/contrib/redirects/locale/sr/LC_MESSAGES/django.po +1 -1
  278. wagtail/contrib/redirects/locale/sv/LC_MESSAGES/django.po +1 -1
  279. wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.mo +0 -0
  280. wagtail/contrib/redirects/locale/ta/LC_MESSAGES/django.po +1 -1
  281. wagtail/contrib/redirects/locale/tet/LC_MESSAGES/django.po +1 -1
  282. wagtail/contrib/redirects/locale/th/LC_MESSAGES/django.po +1 -1
  283. wagtail/contrib/redirects/locale/tr/LC_MESSAGES/django.po +1 -1
  284. wagtail/contrib/redirects/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  285. wagtail/contrib/redirects/locale/ug/LC_MESSAGES/django.po +1 -1
  286. wagtail/contrib/redirects/locale/uk/LC_MESSAGES/django.po +1 -1
  287. wagtail/contrib/redirects/locale/vi/LC_MESSAGES/django.po +1 -1
  288. wagtail/contrib/redirects/locale/zh/LC_MESSAGES/django.po +1 -1
  289. wagtail/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  290. wagtail/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  291. wagtail/contrib/redirects/management/commands/import_redirects.py +2 -2
  292. wagtail/contrib/redirects/tests/test_import_command.py +49 -31
  293. wagtail/contrib/search_promotions/locale/af/LC_MESSAGES/django.po +1 -1
  294. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.mo +0 -0
  295. wagtail/contrib/search_promotions/locale/ar/LC_MESSAGES/django.po +91 -30
  296. wagtail/contrib/search_promotions/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  297. wagtail/contrib/search_promotions/locale/be/LC_MESSAGES/django.po +1 -1
  298. wagtail/contrib/search_promotions/locale/bg/LC_MESSAGES/django.po +1 -1
  299. wagtail/contrib/search_promotions/locale/bn/LC_MESSAGES/django.po +1 -1
  300. wagtail/contrib/search_promotions/locale/ca/LC_MESSAGES/django.po +1 -1
  301. wagtail/contrib/search_promotions/locale/cs/LC_MESSAGES/django.po +1 -1
  302. wagtail/contrib/search_promotions/locale/cy/LC_MESSAGES/django.po +1 -1
  303. wagtail/contrib/search_promotions/locale/da/LC_MESSAGES/django.po +1 -1
  304. wagtail/contrib/search_promotions/locale/de/LC_MESSAGES/django.po +1 -1
  305. wagtail/contrib/search_promotions/locale/dv/LC_MESSAGES/django.po +1 -1
  306. wagtail/contrib/search_promotions/locale/el/LC_MESSAGES/django.po +1 -1
  307. wagtail/contrib/search_promotions/locale/en/LC_MESSAGES/django.po +12 -12
  308. wagtail/contrib/search_promotions/locale/es/LC_MESSAGES/django.po +1 -1
  309. wagtail/contrib/search_promotions/locale/es_419/LC_MESSAGES/django.po +1 -1
  310. wagtail/contrib/search_promotions/locale/et/LC_MESSAGES/django.po +1 -1
  311. wagtail/contrib/search_promotions/locale/eu/LC_MESSAGES/django.po +1 -1
  312. wagtail/contrib/search_promotions/locale/fa/LC_MESSAGES/django.po +1 -1
  313. wagtail/contrib/search_promotions/locale/fi/LC_MESSAGES/django.po +1 -1
  314. wagtail/contrib/search_promotions/locale/fr/LC_MESSAGES/django.po +1 -1
  315. wagtail/contrib/search_promotions/locale/gl/LC_MESSAGES/django.po +1 -1
  316. wagtail/contrib/search_promotions/locale/he_IL/LC_MESSAGES/django.po +1 -1
  317. wagtail/contrib/search_promotions/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  318. wagtail/contrib/search_promotions/locale/ht/LC_MESSAGES/django.po +1 -1
  319. wagtail/contrib/search_promotions/locale/hu/LC_MESSAGES/django.po +1 -1
  320. wagtail/contrib/search_promotions/locale/id_ID/LC_MESSAGES/django.po +1 -1
  321. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  322. wagtail/contrib/search_promotions/locale/is_IS/LC_MESSAGES/django.po +9 -4
  323. wagtail/contrib/search_promotions/locale/it/LC_MESSAGES/django.po +1 -1
  324. wagtail/contrib/search_promotions/locale/ja/LC_MESSAGES/django.po +1 -1
  325. wagtail/contrib/search_promotions/locale/ka/LC_MESSAGES/django.po +1 -1
  326. wagtail/contrib/search_promotions/locale/ko/LC_MESSAGES/django.po +1 -1
  327. wagtail/contrib/search_promotions/locale/lt/LC_MESSAGES/django.po +1 -1
  328. wagtail/contrib/search_promotions/locale/lv/LC_MESSAGES/django.po +1 -1
  329. wagtail/contrib/search_promotions/locale/mi/LC_MESSAGES/django.po +1 -1
  330. wagtail/contrib/search_promotions/locale/mn/LC_MESSAGES/django.po +1 -1
  331. wagtail/contrib/search_promotions/locale/my/LC_MESSAGES/django.po +1 -1
  332. wagtail/contrib/search_promotions/locale/nb/LC_MESSAGES/django.po +1 -1
  333. wagtail/contrib/search_promotions/locale/nl/LC_MESSAGES/django.po +1 -1
  334. wagtail/contrib/search_promotions/locale/pl/LC_MESSAGES/django.po +1 -1
  335. wagtail/contrib/search_promotions/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  336. wagtail/contrib/search_promotions/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  337. wagtail/contrib/search_promotions/locale/ro/LC_MESSAGES/django.po +1 -1
  338. wagtail/contrib/search_promotions/locale/ru/LC_MESSAGES/django.po +1 -1
  339. wagtail/contrib/search_promotions/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  340. wagtail/contrib/search_promotions/locale/sl/LC_MESSAGES/django.po +1 -1
  341. wagtail/contrib/search_promotions/locale/sv/LC_MESSAGES/django.po +1 -1
  342. wagtail/contrib/search_promotions/locale/tet/LC_MESSAGES/django.po +1 -1
  343. wagtail/contrib/search_promotions/locale/th/LC_MESSAGES/django.po +1 -1
  344. wagtail/contrib/search_promotions/locale/tr/LC_MESSAGES/django.po +1 -1
  345. wagtail/contrib/search_promotions/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  346. wagtail/contrib/search_promotions/locale/ug/LC_MESSAGES/django.po +1 -1
  347. wagtail/contrib/search_promotions/locale/uk/LC_MESSAGES/django.po +1 -1
  348. wagtail/contrib/search_promotions/locale/vi/LC_MESSAGES/django.po +1 -1
  349. wagtail/contrib/search_promotions/locale/zh/LC_MESSAGES/django.po +1 -1
  350. wagtail/contrib/search_promotions/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  351. wagtail/contrib/search_promotions/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  352. wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/includes/searchpromotion_form.html +1 -1
  353. wagtail/contrib/search_promotions/tests.py +39 -25
  354. wagtail/contrib/search_promotions/views/reports.py +2 -2
  355. wagtail/contrib/search_promotions/views/settings.py +6 -2
  356. wagtail/contrib/settings/forms.py +93 -3
  357. wagtail/contrib/settings/locale/ar/LC_MESSAGES/django.mo +0 -0
  358. wagtail/contrib/settings/locale/ar/LC_MESSAGES/django.po +3 -2
  359. wagtail/contrib/settings/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  360. wagtail/contrib/settings/locale/be/LC_MESSAGES/django.mo +0 -0
  361. wagtail/contrib/settings/locale/be/LC_MESSAGES/django.po +3 -2
  362. wagtail/contrib/settings/locale/bn/LC_MESSAGES/django.po +1 -1
  363. wagtail/contrib/settings/locale/ca/LC_MESSAGES/django.mo +0 -0
  364. wagtail/contrib/settings/locale/ca/LC_MESSAGES/django.po +2 -2
  365. wagtail/contrib/settings/locale/cs/LC_MESSAGES/django.po +1 -1
  366. wagtail/contrib/settings/locale/cy/LC_MESSAGES/django.po +2 -1
  367. wagtail/contrib/settings/locale/da/LC_MESSAGES/django.po +1 -1
  368. wagtail/contrib/settings/locale/de/LC_MESSAGES/django.po +3 -1
  369. wagtail/contrib/settings/locale/dv/LC_MESSAGES/django.po +2 -1
  370. wagtail/contrib/settings/locale/el/LC_MESSAGES/django.po +2 -1
  371. wagtail/contrib/settings/locale/en/LC_MESSAGES/django.po +16 -7
  372. wagtail/contrib/settings/locale/en_IN/LC_MESSAGES/django.po +2 -1
  373. wagtail/contrib/settings/locale/es/LC_MESSAGES/django.po +1 -1
  374. wagtail/contrib/settings/locale/es_419/LC_MESSAGES/django.po +2 -1
  375. wagtail/contrib/settings/locale/es_VE/LC_MESSAGES/django.po +2 -1
  376. wagtail/contrib/settings/locale/et/LC_MESSAGES/django.po +1 -1
  377. wagtail/contrib/settings/locale/fa/LC_MESSAGES/django.po +3 -1
  378. wagtail/contrib/settings/locale/fi/LC_MESSAGES/django.po +1 -1
  379. wagtail/contrib/settings/locale/fr/LC_MESSAGES/django.po +1 -1
  380. wagtail/contrib/settings/locale/gl/LC_MESSAGES/django.po +1 -1
  381. wagtail/contrib/settings/locale/he_IL/LC_MESSAGES/django.po +1 -1
  382. wagtail/contrib/settings/locale/hi/LC_MESSAGES/django.po +4 -1
  383. wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.mo +0 -0
  384. wagtail/contrib/settings/locale/hr_HR/LC_MESSAGES/django.po +2 -2
  385. wagtail/contrib/settings/locale/ht/LC_MESSAGES/django.po +1 -1
  386. wagtail/contrib/settings/locale/hu/LC_MESSAGES/django.po +1 -1
  387. wagtail/contrib/settings/locale/id_ID/LC_MESSAGES/django.po +1 -1
  388. wagtail/contrib/settings/locale/is_IS/LC_MESSAGES/django.po +1 -1
  389. wagtail/contrib/settings/locale/it/LC_MESSAGES/django.mo +0 -0
  390. wagtail/contrib/settings/locale/it/LC_MESSAGES/django.po +2 -2
  391. wagtail/contrib/settings/locale/ja/LC_MESSAGES/django.po +1 -1
  392. wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.mo +0 -0
  393. wagtail/contrib/settings/locale/ka/LC_MESSAGES/django.po +1 -1
  394. wagtail/contrib/settings/locale/ko/LC_MESSAGES/django.po +1 -1
  395. wagtail/contrib/settings/locale/lt/LC_MESSAGES/django.po +1 -1
  396. wagtail/contrib/settings/locale/lv/LC_MESSAGES/django.po +1 -1
  397. wagtail/contrib/settings/locale/mi/LC_MESSAGES/django.po +1 -1
  398. wagtail/contrib/settings/locale/mn/LC_MESSAGES/django.mo +0 -0
  399. wagtail/contrib/settings/locale/mn/LC_MESSAGES/django.po +3 -2
  400. wagtail/contrib/settings/locale/my/LC_MESSAGES/django.po +1 -1
  401. wagtail/contrib/settings/locale/nb/LC_MESSAGES/django.po +2 -1
  402. wagtail/contrib/settings/locale/nl/LC_MESSAGES/django.po +1 -1
  403. wagtail/contrib/settings/locale/pl/LC_MESSAGES/django.po +1 -1
  404. wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  405. wagtail/contrib/settings/locale/pt_BR/LC_MESSAGES/django.po +4 -2
  406. wagtail/contrib/settings/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  407. wagtail/contrib/settings/locale/ro/LC_MESSAGES/django.mo +0 -0
  408. wagtail/contrib/settings/locale/ro/LC_MESSAGES/django.po +2 -2
  409. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.mo +0 -0
  410. wagtail/contrib/settings/locale/ru/LC_MESSAGES/django.po +3 -2
  411. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  412. wagtail/contrib/settings/locale/sk_SK/LC_MESSAGES/django.po +2 -2
  413. wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.mo +0 -0
  414. wagtail/contrib/settings/locale/sl/LC_MESSAGES/django.po +2 -2
  415. wagtail/contrib/settings/locale/sr/LC_MESSAGES/django.po +1 -1
  416. wagtail/contrib/settings/locale/sv/LC_MESSAGES/django.po +1 -1
  417. wagtail/contrib/settings/locale/ta/LC_MESSAGES/django.po +1 -1
  418. wagtail/contrib/settings/locale/tet/LC_MESSAGES/django.po +1 -1
  419. wagtail/contrib/settings/locale/th/LC_MESSAGES/django.mo +0 -0
  420. wagtail/contrib/settings/locale/th/LC_MESSAGES/django.po +3 -2
  421. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.mo +0 -0
  422. wagtail/contrib/settings/locale/tr/LC_MESSAGES/django.po +2 -2
  423. wagtail/contrib/settings/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  424. wagtail/contrib/settings/locale/tr_TR/LC_MESSAGES/django.po +2 -2
  425. wagtail/contrib/settings/locale/ug/LC_MESSAGES/django.mo +0 -0
  426. wagtail/contrib/settings/locale/ug/LC_MESSAGES/django.po +3 -2
  427. wagtail/contrib/settings/locale/uk/LC_MESSAGES/django.mo +0 -0
  428. wagtail/contrib/settings/locale/uk/LC_MESSAGES/django.po +2 -2
  429. wagtail/contrib/settings/locale/vi/LC_MESSAGES/django.po +1 -1
  430. wagtail/contrib/settings/locale/zh/LC_MESSAGES/django.po +1 -1
  431. wagtail/contrib/settings/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  432. wagtail/contrib/settings/locale/zh_Hans/LC_MESSAGES/django.po +3 -2
  433. wagtail/contrib/settings/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  434. wagtail/contrib/settings/models.py +10 -0
  435. wagtail/contrib/settings/registry.py +14 -4
  436. wagtail/contrib/settings/templates/wagtailsettings/edit.html +6 -0
  437. wagtail/contrib/settings/templates/wagtailsettings/permissions/includes/site_permission_form.html +11 -0
  438. wagtail/contrib/settings/tests/generic/test_admin.py +15 -1
  439. wagtail/contrib/settings/tests/generic/test_model.py +1 -1
  440. wagtail/contrib/settings/tests/shared/__init__.py +0 -0
  441. wagtail/contrib/settings/tests/shared/test_preview.py +193 -0
  442. wagtail/contrib/settings/tests/site_specific/test_admin.py +320 -10
  443. wagtail/contrib/settings/tests/site_specific/test_forms.py +1 -1
  444. wagtail/contrib/settings/urls.py +5 -0
  445. wagtail/contrib/settings/views.py +89 -13
  446. wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.mo +0 -0
  447. wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.po +77 -2
  448. wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.po +1 -1
  449. wagtail/contrib/simple_translation/locale/ca/LC_MESSAGES/django.po +1 -1
  450. wagtail/contrib/simple_translation/locale/cs/LC_MESSAGES/django.po +1 -1
  451. wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.po +1 -1
  452. wagtail/contrib/simple_translation/locale/de/LC_MESSAGES/django.po +1 -1
  453. wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.po +1 -1
  454. wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.mo +0 -0
  455. wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.po +1 -1
  456. wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po +2 -7
  457. wagtail/contrib/simple_translation/locale/es/LC_MESSAGES/django.po +1 -1
  458. wagtail/contrib/simple_translation/locale/es_419/LC_MESSAGES/django.mo +0 -0
  459. wagtail/contrib/simple_translation/locale/es_419/LC_MESSAGES/django.po +1 -1
  460. wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.mo +0 -0
  461. wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.po +1 -1
  462. wagtail/contrib/simple_translation/locale/fi/LC_MESSAGES/django.po +1 -1
  463. wagtail/contrib/simple_translation/locale/fr/LC_MESSAGES/django.po +1 -1
  464. wagtail/contrib/simple_translation/locale/gl/LC_MESSAGES/django.po +1 -1
  465. wagtail/contrib/simple_translation/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  466. wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.po +1 -1
  467. wagtail/contrib/simple_translation/locale/is_IS/LC_MESSAGES/django.po +1 -1
  468. wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.po +1 -1
  469. wagtail/contrib/simple_translation/locale/ko/LC_MESSAGES/django.po +1 -1
  470. wagtail/contrib/simple_translation/locale/lt/LC_MESSAGES/django.po +1 -1
  471. wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.mo +0 -0
  472. wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.po +1 -1
  473. wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.mo +0 -0
  474. wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.po +1 -1
  475. wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.mo +0 -0
  476. wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.po +1 -1
  477. wagtail/contrib/simple_translation/locale/nl/LC_MESSAGES/django.po +1 -1
  478. wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.po +1 -1
  479. wagtail/contrib/simple_translation/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  480. wagtail/contrib/simple_translation/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  481. wagtail/contrib/simple_translation/locale/ro/LC_MESSAGES/django.po +1 -1
  482. wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.po +1 -1
  483. wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.po +1 -1
  484. wagtail/contrib/simple_translation/locale/sv/LC_MESSAGES/django.po +1 -1
  485. wagtail/contrib/simple_translation/locale/ug/LC_MESSAGES/django.po +1 -1
  486. wagtail/contrib/simple_translation/locale/uk/LC_MESSAGES/django.po +1 -1
  487. wagtail/contrib/simple_translation/locale/vi/LC_MESSAGES/django.po +1 -1
  488. wagtail/contrib/simple_translation/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  489. wagtail/contrib/simple_translation/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  490. wagtail/contrib/simple_translation/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  491. wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py +34 -0
  492. wagtail/contrib/simple_translation/wagtail_hooks.py +2 -9
  493. wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.mo +0 -0
  494. wagtail/contrib/styleguide/locale/af/LC_MESSAGES/django.po +1 -1
  495. wagtail/contrib/styleguide/locale/ar/LC_MESSAGES/django.mo +0 -0
  496. wagtail/contrib/styleguide/locale/ar/LC_MESSAGES/django.po +4 -1
  497. wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  498. wagtail/contrib/styleguide/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  499. wagtail/contrib/styleguide/locale/be/LC_MESSAGES/django.po +1 -1
  500. wagtail/contrib/styleguide/locale/bg/LC_MESSAGES/django.po +1 -1
  501. wagtail/contrib/styleguide/locale/bn/LC_MESSAGES/django.po +1 -1
  502. wagtail/contrib/styleguide/locale/ca/LC_MESSAGES/django.po +1 -1
  503. wagtail/contrib/styleguide/locale/cs/LC_MESSAGES/django.po +1 -1
  504. wagtail/contrib/styleguide/locale/cy/LC_MESSAGES/django.po +1 -1
  505. wagtail/contrib/styleguide/locale/da/LC_MESSAGES/django.po +1 -1
  506. wagtail/contrib/styleguide/locale/de/LC_MESSAGES/django.po +1 -1
  507. wagtail/contrib/styleguide/locale/dv/LC_MESSAGES/django.po +1 -1
  508. wagtail/contrib/styleguide/locale/el/LC_MESSAGES/django.po +1 -1
  509. wagtail/contrib/styleguide/locale/en/LC_MESSAGES/django.po +1 -1
  510. wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  511. wagtail/contrib/styleguide/locale/en_IN/LC_MESSAGES/django.po +1 -1
  512. wagtail/contrib/styleguide/locale/es/LC_MESSAGES/django.po +1 -1
  513. wagtail/contrib/styleguide/locale/es_419/LC_MESSAGES/django.po +1 -1
  514. wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.mo +0 -0
  515. wagtail/contrib/styleguide/locale/es_VE/LC_MESSAGES/django.po +1 -1
  516. wagtail/contrib/styleguide/locale/et/LC_MESSAGES/django.po +1 -1
  517. wagtail/contrib/styleguide/locale/fa/LC_MESSAGES/django.po +1 -1
  518. wagtail/contrib/styleguide/locale/fi/LC_MESSAGES/django.po +1 -1
  519. wagtail/contrib/styleguide/locale/fr/LC_MESSAGES/django.po +1 -1
  520. wagtail/contrib/styleguide/locale/gl/LC_MESSAGES/django.po +1 -1
  521. wagtail/contrib/styleguide/locale/he_IL/LC_MESSAGES/django.po +1 -1
  522. wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.mo +0 -0
  523. wagtail/contrib/styleguide/locale/hi/LC_MESSAGES/django.po +1 -1
  524. wagtail/contrib/styleguide/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  525. wagtail/contrib/styleguide/locale/ht/LC_MESSAGES/django.po +1 -1
  526. wagtail/contrib/styleguide/locale/hu/LC_MESSAGES/django.po +1 -1
  527. wagtail/contrib/styleguide/locale/id_ID/LC_MESSAGES/django.po +1 -1
  528. wagtail/contrib/styleguide/locale/is_IS/LC_MESSAGES/django.po +1 -1
  529. wagtail/contrib/styleguide/locale/it/LC_MESSAGES/django.po +1 -1
  530. wagtail/contrib/styleguide/locale/ja/LC_MESSAGES/django.po +1 -1
  531. wagtail/contrib/styleguide/locale/ka/LC_MESSAGES/django.po +1 -1
  532. wagtail/contrib/styleguide/locale/ko/LC_MESSAGES/django.po +1 -1
  533. wagtail/contrib/styleguide/locale/lt/LC_MESSAGES/django.po +1 -1
  534. wagtail/contrib/styleguide/locale/lv/LC_MESSAGES/django.po +1 -1
  535. wagtail/contrib/styleguide/locale/mi/LC_MESSAGES/django.po +1 -1
  536. wagtail/contrib/styleguide/locale/mn/LC_MESSAGES/django.po +1 -1
  537. wagtail/contrib/styleguide/locale/my/LC_MESSAGES/django.po +1 -1
  538. wagtail/contrib/styleguide/locale/nb/LC_MESSAGES/django.po +1 -1
  539. wagtail/contrib/styleguide/locale/nl/LC_MESSAGES/django.po +1 -1
  540. wagtail/contrib/styleguide/locale/pl/LC_MESSAGES/django.po +1 -1
  541. wagtail/contrib/styleguide/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  542. wagtail/contrib/styleguide/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  543. wagtail/contrib/styleguide/locale/ro/LC_MESSAGES/django.po +1 -1
  544. wagtail/contrib/styleguide/locale/ru/LC_MESSAGES/django.po +1 -1
  545. wagtail/contrib/styleguide/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  546. wagtail/contrib/styleguide/locale/sl/LC_MESSAGES/django.po +1 -1
  547. wagtail/contrib/styleguide/locale/sv/LC_MESSAGES/django.po +1 -1
  548. wagtail/contrib/styleguide/locale/ta/LC_MESSAGES/django.mo +0 -0
  549. wagtail/contrib/styleguide/locale/ta/LC_MESSAGES/django.po +1 -1
  550. wagtail/contrib/styleguide/locale/tet/LC_MESSAGES/django.po +1 -1
  551. wagtail/contrib/styleguide/locale/th/LC_MESSAGES/django.po +1 -1
  552. wagtail/contrib/styleguide/locale/tr/LC_MESSAGES/django.po +1 -1
  553. wagtail/contrib/styleguide/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  554. wagtail/contrib/styleguide/locale/ug/LC_MESSAGES/django.po +1 -1
  555. wagtail/contrib/styleguide/locale/uk/LC_MESSAGES/django.po +1 -1
  556. wagtail/contrib/styleguide/locale/vi/LC_MESSAGES/django.po +1 -1
  557. wagtail/contrib/styleguide/locale/zh/LC_MESSAGES/django.po +1 -1
  558. wagtail/contrib/styleguide/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  559. wagtail/contrib/styleguide/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  560. wagtail/contrib/styleguide/templates/wagtailstyleguide/base.html +49 -16
  561. wagtail/contrib/table_block/blocks.py +2 -2
  562. wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.mo +0 -0
  563. wagtail/contrib/table_block/locale/ar/LC_MESSAGES/django.po +28 -2
  564. wagtail/contrib/table_block/locale/be/LC_MESSAGES/django.mo +0 -0
  565. wagtail/contrib/table_block/locale/be/LC_MESSAGES/django.po +3 -2
  566. wagtail/contrib/table_block/locale/ca/LC_MESSAGES/django.po +1 -1
  567. wagtail/contrib/table_block/locale/cs/LC_MESSAGES/django.po +1 -1
  568. wagtail/contrib/table_block/locale/cy/LC_MESSAGES/django.po +2 -1
  569. wagtail/contrib/table_block/locale/de/LC_MESSAGES/django.po +1 -1
  570. wagtail/contrib/table_block/locale/dv/LC_MESSAGES/django.po +2 -1
  571. wagtail/contrib/table_block/locale/el/LC_MESSAGES/django.po +2 -1
  572. wagtail/contrib/table_block/locale/en/LC_MESSAGES/django.po +1 -1
  573. wagtail/contrib/table_block/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  574. wagtail/contrib/table_block/locale/en_IN/LC_MESSAGES/django.po +2 -1
  575. wagtail/contrib/table_block/locale/es/LC_MESSAGES/django.po +1 -1
  576. wagtail/contrib/table_block/locale/et/LC_MESSAGES/django.po +1 -1
  577. wagtail/contrib/table_block/locale/fa/LC_MESSAGES/django.po +1 -1
  578. wagtail/contrib/table_block/locale/fi/LC_MESSAGES/django.mo +0 -0
  579. wagtail/contrib/table_block/locale/fi/LC_MESSAGES/django.po +2 -2
  580. wagtail/contrib/table_block/locale/fr/LC_MESSAGES/django.po +1 -1
  581. wagtail/contrib/table_block/locale/gl/LC_MESSAGES/django.po +1 -1
  582. wagtail/contrib/table_block/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  583. wagtail/contrib/table_block/locale/ht/LC_MESSAGES/django.po +1 -1
  584. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.mo +0 -0
  585. wagtail/contrib/table_block/locale/hu/LC_MESSAGES/django.po +2 -2
  586. wagtail/contrib/table_block/locale/id_ID/LC_MESSAGES/django.po +1 -1
  587. wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  588. wagtail/contrib/table_block/locale/is_IS/LC_MESSAGES/django.po +2 -3
  589. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.mo +0 -0
  590. wagtail/contrib/table_block/locale/it/LC_MESSAGES/django.po +2 -2
  591. wagtail/contrib/table_block/locale/ja/LC_MESSAGES/django.po +1 -1
  592. wagtail/contrib/table_block/locale/ko/LC_MESSAGES/django.po +1 -1
  593. wagtail/contrib/table_block/locale/lt/LC_MESSAGES/django.po +1 -1
  594. wagtail/contrib/table_block/locale/lv/LC_MESSAGES/django.mo +0 -0
  595. wagtail/contrib/table_block/locale/lv/LC_MESSAGES/django.po +1 -1
  596. wagtail/contrib/table_block/locale/mi/LC_MESSAGES/django.po +1 -1
  597. wagtail/contrib/table_block/locale/mn/LC_MESSAGES/django.po +1 -1
  598. wagtail/contrib/table_block/locale/my/LC_MESSAGES/django.po +1 -1
  599. wagtail/contrib/table_block/locale/nb/LC_MESSAGES/django.po +1 -1
  600. wagtail/contrib/table_block/locale/nl/LC_MESSAGES/django.mo +0 -0
  601. wagtail/contrib/table_block/locale/nl/LC_MESSAGES/django.po +2 -2
  602. wagtail/contrib/table_block/locale/pl/LC_MESSAGES/django.mo +0 -0
  603. wagtail/contrib/table_block/locale/pl/LC_MESSAGES/django.po +2 -2
  604. wagtail/contrib/table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  605. wagtail/contrib/table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  606. wagtail/contrib/table_block/locale/ro/LC_MESSAGES/django.po +1 -1
  607. wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.mo +0 -0
  608. wagtail/contrib/table_block/locale/ru/LC_MESSAGES/django.po +4 -2
  609. wagtail/contrib/table_block/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  610. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.mo +0 -0
  611. wagtail/contrib/table_block/locale/sl/LC_MESSAGES/django.po +3 -3
  612. wagtail/contrib/table_block/locale/sv/LC_MESSAGES/django.po +1 -1
  613. wagtail/contrib/table_block/locale/tet/LC_MESSAGES/django.po +1 -1
  614. wagtail/contrib/table_block/locale/th/LC_MESSAGES/django.mo +0 -0
  615. wagtail/contrib/table_block/locale/th/LC_MESSAGES/django.po +3 -2
  616. wagtail/contrib/table_block/locale/tr/LC_MESSAGES/django.po +1 -1
  617. wagtail/contrib/table_block/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  618. wagtail/contrib/table_block/locale/ug/LC_MESSAGES/django.po +1 -1
  619. wagtail/contrib/table_block/locale/uk/LC_MESSAGES/django.po +1 -1
  620. wagtail/contrib/table_block/locale/vi/LC_MESSAGES/django.po +1 -1
  621. wagtail/contrib/table_block/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  622. wagtail/contrib/table_block/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  623. wagtail/contrib/table_block/tests.py +1 -0
  624. wagtail/contrib/typed_table_block/blocks.py +101 -98
  625. wagtail/contrib/typed_table_block/locale/ar/LC_MESSAGES/django.mo +0 -0
  626. wagtail/contrib/typed_table_block/locale/ar/LC_MESSAGES/django.po +15 -6
  627. wagtail/contrib/typed_table_block/locale/be/LC_MESSAGES/django.po +1 -1
  628. wagtail/contrib/typed_table_block/locale/ca/LC_MESSAGES/django.po +1 -1
  629. wagtail/contrib/typed_table_block/locale/cy/LC_MESSAGES/django.po +1 -1
  630. wagtail/contrib/typed_table_block/locale/de/LC_MESSAGES/django.po +1 -1
  631. wagtail/contrib/typed_table_block/locale/dv/LC_MESSAGES/django.mo +0 -0
  632. wagtail/contrib/typed_table_block/locale/dv/LC_MESSAGES/django.po +1 -1
  633. wagtail/contrib/typed_table_block/locale/el/LC_MESSAGES/django.po +1 -1
  634. wagtail/contrib/typed_table_block/locale/en/LC_MESSAGES/django.po +10 -10
  635. wagtail/contrib/typed_table_block/locale/es/LC_MESSAGES/django.po +1 -1
  636. wagtail/contrib/typed_table_block/locale/fa/LC_MESSAGES/django.po +1 -1
  637. wagtail/contrib/typed_table_block/locale/fi/LC_MESSAGES/django.po +1 -1
  638. wagtail/contrib/typed_table_block/locale/fr/LC_MESSAGES/django.po +1 -1
  639. wagtail/contrib/typed_table_block/locale/gl/LC_MESSAGES/django.po +1 -1
  640. wagtail/contrib/typed_table_block/locale/hu/LC_MESSAGES/django.po +1 -1
  641. wagtail/contrib/typed_table_block/locale/is_IS/LC_MESSAGES/django.po +1 -1
  642. wagtail/contrib/typed_table_block/locale/it/LC_MESSAGES/django.po +1 -1
  643. wagtail/contrib/typed_table_block/locale/ko/LC_MESSAGES/django.po +1 -1
  644. wagtail/contrib/typed_table_block/locale/lt/LC_MESSAGES/django.po +1 -1
  645. wagtail/contrib/typed_table_block/locale/nl/LC_MESSAGES/django.po +1 -1
  646. wagtail/contrib/typed_table_block/locale/pl/LC_MESSAGES/django.po +1 -1
  647. wagtail/contrib/typed_table_block/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  648. wagtail/contrib/typed_table_block/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  649. wagtail/contrib/typed_table_block/locale/ro/LC_MESSAGES/django.po +1 -1
  650. wagtail/contrib/typed_table_block/locale/ru/LC_MESSAGES/django.po +1 -1
  651. wagtail/contrib/typed_table_block/locale/sl/LC_MESSAGES/django.po +1 -1
  652. wagtail/contrib/typed_table_block/locale/sv/LC_MESSAGES/django.po +1 -1
  653. wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.mo +0 -0
  654. wagtail/contrib/typed_table_block/locale/th/LC_MESSAGES/django.po +1 -1
  655. wagtail/contrib/typed_table_block/locale/ug/LC_MESSAGES/django.po +1 -1
  656. wagtail/contrib/typed_table_block/locale/uk/LC_MESSAGES/django.po +1 -1
  657. wagtail/contrib/typed_table_block/locale/zh/LC_MESSAGES/django.po +1 -1
  658. wagtail/contrib/typed_table_block/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  659. wagtail/contrib/typed_table_block/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  660. wagtail/contrib/typed_table_block/tests.py +32 -2
  661. wagtail/coreutils.py +57 -1
  662. wagtail/documents/locale/af/LC_MESSAGES/django.mo +0 -0
  663. wagtail/documents/locale/af/LC_MESSAGES/django.po +1 -1
  664. wagtail/documents/locale/ar/LC_MESSAGES/django.mo +0 -0
  665. wagtail/documents/locale/ar/LC_MESSAGES/django.po +249 -60
  666. wagtail/documents/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  667. wagtail/documents/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  668. wagtail/documents/locale/be/LC_MESSAGES/django.po +1 -1
  669. wagtail/documents/locale/bg/LC_MESSAGES/django.po +1 -1
  670. wagtail/documents/locale/bn/LC_MESSAGES/django.po +1 -1
  671. wagtail/documents/locale/ca/LC_MESSAGES/django.po +1 -1
  672. wagtail/documents/locale/cs/LC_MESSAGES/django.po +1 -1
  673. wagtail/documents/locale/cy/LC_MESSAGES/django.po +1 -1
  674. wagtail/documents/locale/da/LC_MESSAGES/django.po +1 -1
  675. wagtail/documents/locale/de/LC_MESSAGES/django.po +1 -1
  676. wagtail/documents/locale/dv/LC_MESSAGES/django.po +1 -1
  677. wagtail/documents/locale/el/LC_MESSAGES/django.po +1 -1
  678. wagtail/documents/locale/en/LC_MESSAGES/django.po +33 -33
  679. wagtail/documents/locale/es/LC_MESSAGES/django.po +1 -1
  680. wagtail/documents/locale/es_419/LC_MESSAGES/django.po +1 -1
  681. wagtail/documents/locale/et/LC_MESSAGES/django.po +1 -1
  682. wagtail/documents/locale/eu/LC_MESSAGES/django.po +1 -1
  683. wagtail/documents/locale/fa/LC_MESSAGES/django.po +1 -1
  684. wagtail/documents/locale/fi/LC_MESSAGES/django.po +1 -1
  685. wagtail/documents/locale/fr/LC_MESSAGES/django.po +1 -1
  686. wagtail/documents/locale/gl/LC_MESSAGES/django.po +1 -1
  687. wagtail/documents/locale/he_IL/LC_MESSAGES/django.po +1 -1
  688. wagtail/documents/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  689. wagtail/documents/locale/ht/LC_MESSAGES/django.mo +0 -0
  690. wagtail/documents/locale/ht/LC_MESSAGES/django.po +1 -1
  691. wagtail/documents/locale/hu/LC_MESSAGES/django.po +1 -1
  692. wagtail/documents/locale/id_ID/LC_MESSAGES/django.po +1 -1
  693. wagtail/documents/locale/is_IS/LC_MESSAGES/django.po +1 -1
  694. wagtail/documents/locale/it/LC_MESSAGES/django.po +1 -1
  695. wagtail/documents/locale/ja/LC_MESSAGES/django.po +1 -1
  696. wagtail/documents/locale/ka/LC_MESSAGES/django.po +1 -1
  697. wagtail/documents/locale/ko/LC_MESSAGES/django.po +1 -1
  698. wagtail/documents/locale/lt/LC_MESSAGES/django.po +1 -1
  699. wagtail/documents/locale/lv/LC_MESSAGES/django.po +1 -1
  700. wagtail/documents/locale/mi/LC_MESSAGES/django.po +1 -1
  701. wagtail/documents/locale/mn/LC_MESSAGES/django.po +1 -1
  702. wagtail/documents/locale/my/LC_MESSAGES/django.po +1 -1
  703. wagtail/documents/locale/nb/LC_MESSAGES/django.po +1 -1
  704. wagtail/documents/locale/nl/LC_MESSAGES/django.po +1 -1
  705. wagtail/documents/locale/pl/LC_MESSAGES/django.po +1 -1
  706. wagtail/documents/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  707. wagtail/documents/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  708. wagtail/documents/locale/ro/LC_MESSAGES/django.po +1 -1
  709. wagtail/documents/locale/ru/LC_MESSAGES/django.po +1 -1
  710. wagtail/documents/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  711. wagtail/documents/locale/sl/LC_MESSAGES/django.po +1 -1
  712. wagtail/documents/locale/sv/LC_MESSAGES/django.po +1 -1
  713. wagtail/documents/locale/tet/LC_MESSAGES/django.po +1 -1
  714. wagtail/documents/locale/th/LC_MESSAGES/django.po +1 -1
  715. wagtail/documents/locale/tr/LC_MESSAGES/django.po +1 -1
  716. wagtail/documents/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  717. wagtail/documents/locale/ug/LC_MESSAGES/django.po +1 -1
  718. wagtail/documents/locale/uk/LC_MESSAGES/django.po +1 -1
  719. wagtail/documents/locale/vi/LC_MESSAGES/django.po +1 -1
  720. wagtail/documents/locale/zh/LC_MESSAGES/django.po +1 -1
  721. wagtail/documents/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  722. wagtail/documents/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  723. wagtail/documents/templates/wagtaildocs/bulk_actions/confirm_bulk_delete.html +12 -9
  724. wagtail/documents/templates/wagtaildocs/chooser/results.html +1 -1
  725. wagtail/documents/templates/wagtaildocs/multiple/add.html +2 -2
  726. wagtail/documents/tests/test_admin_views.py +26 -0
  727. wagtail/documents/tests/test_bulk_actions/test_bulk_add_to_collection.py +85 -1
  728. wagtail/documents/tests/test_bulk_actions/test_bulk_delete.py +65 -18
  729. wagtail/documents/views/bulk_actions/delete.py +5 -1
  730. wagtail/documents/views/bulk_actions/document_bulk_action.py +3 -1
  731. wagtail/documents/views/documents.py +15 -1
  732. wagtail/embeds/blocks.py +5 -4
  733. wagtail/embeds/embeds.py +5 -2
  734. wagtail/embeds/finders/oembed.py +6 -10
  735. wagtail/embeds/locale/ar/LC_MESSAGES/django.po +1 -1
  736. wagtail/embeds/locale/az_AZ/LC_MESSAGES/django.mo +0 -0
  737. wagtail/embeds/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  738. wagtail/embeds/locale/be/LC_MESSAGES/django.po +1 -1
  739. wagtail/embeds/locale/bg/LC_MESSAGES/django.po +1 -1
  740. wagtail/embeds/locale/bn/LC_MESSAGES/django.mo +0 -0
  741. wagtail/embeds/locale/bn/LC_MESSAGES/django.po +1 -1
  742. wagtail/embeds/locale/ca/LC_MESSAGES/django.po +1 -1
  743. wagtail/embeds/locale/cs/LC_MESSAGES/django.po +1 -1
  744. wagtail/embeds/locale/cy/LC_MESSAGES/django.po +1 -1
  745. wagtail/embeds/locale/da/LC_MESSAGES/django.mo +0 -0
  746. wagtail/embeds/locale/da/LC_MESSAGES/django.po +1 -1
  747. wagtail/embeds/locale/de/LC_MESSAGES/django.po +1 -1
  748. wagtail/embeds/locale/dv/LC_MESSAGES/django.mo +0 -0
  749. wagtail/embeds/locale/dv/LC_MESSAGES/django.po +1 -1
  750. wagtail/embeds/locale/el/LC_MESSAGES/django.po +2 -1
  751. wagtail/embeds/locale/en/LC_MESSAGES/django.po +2 -2
  752. wagtail/embeds/locale/es/LC_MESSAGES/django.po +1 -1
  753. wagtail/embeds/locale/es_419/LC_MESSAGES/django.mo +0 -0
  754. wagtail/embeds/locale/es_419/LC_MESSAGES/django.po +1 -1
  755. wagtail/embeds/locale/et/LC_MESSAGES/django.po +1 -1
  756. wagtail/embeds/locale/fa/LC_MESSAGES/django.po +1 -1
  757. wagtail/embeds/locale/fi/LC_MESSAGES/django.po +1 -1
  758. wagtail/embeds/locale/fr/LC_MESSAGES/django.po +2 -1
  759. wagtail/embeds/locale/gl/LC_MESSAGES/django.po +1 -1
  760. wagtail/embeds/locale/he_IL/LC_MESSAGES/django.po +1 -1
  761. wagtail/embeds/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  762. wagtail/embeds/locale/ht/LC_MESSAGES/django.po +1 -1
  763. wagtail/embeds/locale/hu/LC_MESSAGES/django.po +1 -1
  764. wagtail/embeds/locale/id_ID/LC_MESSAGES/django.po +1 -1
  765. wagtail/embeds/locale/is_IS/LC_MESSAGES/django.po +1 -1
  766. wagtail/embeds/locale/it/LC_MESSAGES/django.po +1 -1
  767. wagtail/embeds/locale/ja/LC_MESSAGES/django.po +1 -1
  768. wagtail/embeds/locale/ko/LC_MESSAGES/django.po +1 -1
  769. wagtail/embeds/locale/lt/LC_MESSAGES/django.po +1 -1
  770. wagtail/embeds/locale/lv/LC_MESSAGES/django.po +1 -1
  771. wagtail/embeds/locale/mi/LC_MESSAGES/django.po +1 -1
  772. wagtail/embeds/locale/mn/LC_MESSAGES/django.mo +0 -0
  773. wagtail/embeds/locale/mn/LC_MESSAGES/django.po +3 -2
  774. wagtail/embeds/locale/my/LC_MESSAGES/django.mo +0 -0
  775. wagtail/embeds/locale/my/LC_MESSAGES/django.po +1 -1
  776. wagtail/embeds/locale/nb/LC_MESSAGES/django.po +1 -1
  777. wagtail/embeds/locale/nl/LC_MESSAGES/django.mo +0 -0
  778. wagtail/embeds/locale/nl/LC_MESSAGES/django.po +2 -2
  779. wagtail/embeds/locale/pl/LC_MESSAGES/django.po +1 -1
  780. wagtail/embeds/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  781. wagtail/embeds/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  782. wagtail/embeds/locale/ro/LC_MESSAGES/django.po +1 -1
  783. wagtail/embeds/locale/ru/LC_MESSAGES/django.po +2 -1
  784. wagtail/embeds/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  785. wagtail/embeds/locale/sl/LC_MESSAGES/django.po +1 -1
  786. wagtail/embeds/locale/sv/LC_MESSAGES/django.po +1 -1
  787. wagtail/embeds/locale/tet/LC_MESSAGES/django.po +1 -1
  788. wagtail/embeds/locale/th/LC_MESSAGES/django.po +1 -1
  789. wagtail/embeds/locale/tr/LC_MESSAGES/django.po +1 -1
  790. wagtail/embeds/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  791. wagtail/embeds/locale/ug/LC_MESSAGES/django.po +1 -1
  792. wagtail/embeds/locale/uk/LC_MESSAGES/django.po +1 -1
  793. wagtail/embeds/locale/vi/LC_MESSAGES/django.po +1 -1
  794. wagtail/embeds/locale/zh/LC_MESSAGES/django.po +1 -1
  795. wagtail/embeds/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  796. wagtail/embeds/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  797. wagtail/embeds/oembed_providers.py +10 -1
  798. wagtail/embeds/tests/test_embeds.py +220 -165
  799. wagtail/fields.py +30 -1
  800. wagtail/images/blocks.py +1 -1
  801. wagtail/images/fields.py +4 -11
  802. wagtail/images/locale/ar/LC_MESSAGES/django.mo +0 -0
  803. wagtail/images/locale/ar/LC_MESSAGES/django.po +374 -82
  804. wagtail/images/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  805. wagtail/images/locale/be/LC_MESSAGES/django.po +1 -1
  806. wagtail/images/locale/bg/LC_MESSAGES/django.po +1 -1
  807. wagtail/images/locale/bn/LC_MESSAGES/django.po +1 -1
  808. wagtail/images/locale/ca/LC_MESSAGES/django.po +1 -1
  809. wagtail/images/locale/cs/LC_MESSAGES/django.po +1 -1
  810. wagtail/images/locale/cy/LC_MESSAGES/django.po +1 -1
  811. wagtail/images/locale/da/LC_MESSAGES/django.po +1 -1
  812. wagtail/images/locale/de/LC_MESSAGES/django.po +1 -1
  813. wagtail/images/locale/dv/LC_MESSAGES/django.po +1 -1
  814. wagtail/images/locale/el/LC_MESSAGES/django.po +1 -1
  815. wagtail/images/locale/en/LC_MESSAGES/django.po +105 -85
  816. wagtail/images/locale/es/LC_MESSAGES/django.po +1 -1
  817. wagtail/images/locale/es_419/LC_MESSAGES/django.po +1 -1
  818. wagtail/images/locale/et/LC_MESSAGES/django.po +1 -1
  819. wagtail/images/locale/eu/LC_MESSAGES/django.po +1 -1
  820. wagtail/images/locale/fa/LC_MESSAGES/django.po +1 -1
  821. wagtail/images/locale/fi/LC_MESSAGES/django.po +1 -1
  822. wagtail/images/locale/fr/LC_MESSAGES/django.po +1 -1
  823. wagtail/images/locale/gl/LC_MESSAGES/django.po +1 -1
  824. wagtail/images/locale/he_IL/LC_MESSAGES/django.po +1 -1
  825. wagtail/images/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  826. wagtail/images/locale/ht/LC_MESSAGES/django.po +1 -1
  827. wagtail/images/locale/hu/LC_MESSAGES/django.po +1 -1
  828. wagtail/images/locale/id_ID/LC_MESSAGES/django.po +1 -1
  829. wagtail/images/locale/is_IS/LC_MESSAGES/django.po +1 -1
  830. wagtail/images/locale/it/LC_MESSAGES/django.po +1 -1
  831. wagtail/images/locale/ja/LC_MESSAGES/django.po +1 -1
  832. wagtail/images/locale/ka/LC_MESSAGES/django.po +1 -1
  833. wagtail/images/locale/ko/LC_MESSAGES/django.po +1 -1
  834. wagtail/images/locale/lt/LC_MESSAGES/django.po +1 -1
  835. wagtail/images/locale/lv/LC_MESSAGES/django.po +1 -1
  836. wagtail/images/locale/mi/LC_MESSAGES/django.po +1 -1
  837. wagtail/images/locale/mn/LC_MESSAGES/django.po +1 -1
  838. wagtail/images/locale/my/LC_MESSAGES/django.po +1 -1
  839. wagtail/images/locale/nb/LC_MESSAGES/django.po +1 -1
  840. wagtail/images/locale/nl/LC_MESSAGES/django.mo +0 -0
  841. wagtail/images/locale/nl/LC_MESSAGES/django.po +5 -4
  842. wagtail/images/locale/pl/LC_MESSAGES/django.po +1 -1
  843. wagtail/images/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  844. wagtail/images/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  845. wagtail/images/locale/ro/LC_MESSAGES/django.po +1 -1
  846. wagtail/images/locale/ru/LC_MESSAGES/django.po +1 -1
  847. wagtail/images/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  848. wagtail/images/locale/sl/LC_MESSAGES/django.po +1 -1
  849. wagtail/images/locale/sv/LC_MESSAGES/django.po +1 -1
  850. wagtail/images/locale/tet/LC_MESSAGES/django.po +1 -1
  851. wagtail/images/locale/th/LC_MESSAGES/django.po +1 -1
  852. wagtail/images/locale/tr/LC_MESSAGES/django.po +1 -1
  853. wagtail/images/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  854. wagtail/images/locale/ug/LC_MESSAGES/django.po +1 -1
  855. wagtail/images/locale/uk/LC_MESSAGES/django.po +1 -1
  856. wagtail/images/locale/vi/LC_MESSAGES/django.po +1 -1
  857. wagtail/images/locale/zh/LC_MESSAGES/django.po +1 -1
  858. wagtail/images/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  859. wagtail/images/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  860. wagtail/images/models.py +93 -5
  861. wagtail/images/static/wagtailimages/js/focal-point-chooser.js +1 -1
  862. wagtail/images/templates/wagtailimages/bulk_actions/confirm_bulk_delete.html +12 -9
  863. wagtail/images/templates/wagtailimages/chooser/results.html +1 -1
  864. wagtail/images/templates/wagtailimages/images/edit.html +2 -1
  865. wagtail/images/templates/wagtailimages/images/image_preview_column_cell.html +10 -0
  866. wagtail/images/templates/wagtailimages/images/index.html +3 -0
  867. wagtail/images/templates/wagtailimages/images/index_results.html +29 -18
  868. wagtail/images/templates/wagtailimages/images/layout_toggle_button.html +10 -0
  869. wagtail/images/templates/wagtailimages/images/title_column_cell.html +11 -0
  870. wagtail/images/templates/wagtailimages/images/url_generator.html +1 -8
  871. wagtail/images/templates/wagtailimages/multiple/add.html +3 -2
  872. wagtail/images/templatetags/wagtailimages_tags.py +5 -16
  873. wagtail/images/tests/test_admin_views.py +335 -5
  874. wagtail/images/tests/test_blocks.py +1 -1
  875. wagtail/images/tests/test_bulk_actions/test_bulk_add_to_collection.py +84 -1
  876. wagtail/images/tests/test_bulk_actions/test_bulk_delete.py +65 -18
  877. wagtail/images/tests/test_jinja2_svg.py +240 -0
  878. wagtail/images/tests/test_models.py +114 -0
  879. wagtail/images/tests/test_templatetags.py +58 -4
  880. wagtail/images/utils.py +27 -0
  881. wagtail/images/views/bulk_actions/delete.py +5 -1
  882. wagtail/images/views/bulk_actions/image_bulk_action.py +3 -1
  883. wagtail/images/views/images.py +79 -2
  884. wagtail/images/views/multiple.py +6 -2
  885. wagtail/images/widgets.py +1 -1
  886. wagtail/locale/ar/LC_MESSAGES/django.mo +0 -0
  887. wagtail/locale/ar/LC_MESSAGES/django.po +776 -82
  888. wagtail/locale/en/LC_MESSAGES/django.po +99 -87
  889. wagtail/locales/locale/ar/LC_MESSAGES/django.mo +0 -0
  890. wagtail/locales/locale/ar/LC_MESSAGES/django.po +78 -6
  891. wagtail/locales/locale/be/LC_MESSAGES/django.po +1 -1
  892. wagtail/locales/locale/bg/LC_MESSAGES/django.mo +0 -0
  893. wagtail/locales/locale/bg/LC_MESSAGES/django.po +1 -1
  894. wagtail/locales/locale/ca/LC_MESSAGES/django.po +1 -1
  895. wagtail/locales/locale/cs/LC_MESSAGES/django.po +1 -1
  896. wagtail/locales/locale/cy/LC_MESSAGES/django.po +1 -1
  897. wagtail/locales/locale/da/LC_MESSAGES/django.mo +0 -0
  898. wagtail/locales/locale/da/LC_MESSAGES/django.po +1 -1
  899. wagtail/locales/locale/de/LC_MESSAGES/django.po +1 -1
  900. wagtail/locales/locale/dv/LC_MESSAGES/django.po +1 -1
  901. wagtail/locales/locale/el/LC_MESSAGES/django.po +1 -1
  902. wagtail/locales/locale/en/LC_MESSAGES/django.po +1 -1
  903. wagtail/locales/locale/es/LC_MESSAGES/django.po +1 -1
  904. wagtail/locales/locale/et/LC_MESSAGES/django.po +1 -1
  905. wagtail/locales/locale/fa/LC_MESSAGES/django.mo +0 -0
  906. wagtail/locales/locale/fa/LC_MESSAGES/django.po +1 -1
  907. wagtail/locales/locale/fi/LC_MESSAGES/django.po +1 -1
  908. wagtail/locales/locale/fr/LC_MESSAGES/django.mo +0 -0
  909. wagtail/locales/locale/fr/LC_MESSAGES/django.po +4 -3
  910. wagtail/locales/locale/gl/LC_MESSAGES/django.po +1 -1
  911. wagtail/locales/locale/he_IL/LC_MESSAGES/django.mo +0 -0
  912. wagtail/locales/locale/he_IL/LC_MESSAGES/django.po +1 -1
  913. wagtail/locales/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  914. wagtail/locales/locale/hu/LC_MESSAGES/django.po +1 -1
  915. wagtail/locales/locale/id_ID/LC_MESSAGES/django.po +1 -1
  916. wagtail/locales/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  917. wagtail/locales/locale/is_IS/LC_MESSAGES/django.po +13 -3
  918. wagtail/locales/locale/it/LC_MESSAGES/django.po +1 -1
  919. wagtail/locales/locale/ja/LC_MESSAGES/django.po +1 -1
  920. wagtail/locales/locale/ko/LC_MESSAGES/django.po +1 -1
  921. wagtail/locales/locale/lt/LC_MESSAGES/django.po +1 -1
  922. wagtail/locales/locale/lv/LC_MESSAGES/django.mo +0 -0
  923. wagtail/locales/locale/lv/LC_MESSAGES/django.po +1 -1
  924. wagtail/locales/locale/mi/LC_MESSAGES/django.po +1 -1
  925. wagtail/locales/locale/mn/LC_MESSAGES/django.po +1 -1
  926. wagtail/locales/locale/my/LC_MESSAGES/django.mo +0 -0
  927. wagtail/locales/locale/my/LC_MESSAGES/django.po +1 -1
  928. wagtail/locales/locale/nb/LC_MESSAGES/django.po +1 -1
  929. wagtail/locales/locale/nl/LC_MESSAGES/django.po +1 -1
  930. wagtail/locales/locale/pl/LC_MESSAGES/django.po +1 -1
  931. wagtail/locales/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  932. wagtail/locales/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  933. wagtail/locales/locale/ro/LC_MESSAGES/django.po +1 -1
  934. wagtail/locales/locale/ru/LC_MESSAGES/django.po +1 -1
  935. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  936. wagtail/locales/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  937. wagtail/locales/locale/sl/LC_MESSAGES/django.po +1 -1
  938. wagtail/locales/locale/sv/LC_MESSAGES/django.po +1 -1
  939. wagtail/locales/locale/tet/LC_MESSAGES/django.po +1 -1
  940. wagtail/locales/locale/th/LC_MESSAGES/django.po +1 -1
  941. wagtail/locales/locale/tr/LC_MESSAGES/django.po +1 -1
  942. wagtail/locales/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  943. wagtail/locales/locale/ug/LC_MESSAGES/django.po +1 -1
  944. wagtail/locales/locale/uk/LC_MESSAGES/django.po +1 -1
  945. wagtail/locales/locale/vi/LC_MESSAGES/django.mo +0 -0
  946. wagtail/locales/locale/vi/LC_MESSAGES/django.po +1 -1
  947. wagtail/locales/locale/zh/LC_MESSAGES/django.mo +0 -0
  948. wagtail/locales/locale/zh/LC_MESSAGES/django.po +1 -1
  949. wagtail/locales/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  950. wagtail/locales/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  951. wagtail/migrations/0095_groupsitepermission.py +60 -0
  952. wagtail/models/__init__.py +1 -1
  953. wagtail/models/pages.py +13 -3
  954. wagtail/models/preview.py +9 -1
  955. wagtail/models/reference_index.py +125 -5
  956. wagtail/models/revisions.py +31 -13
  957. wagtail/models/sites.py +48 -0
  958. wagtail/models/workflows.py +35 -11
  959. wagtail/permission_policies/base.py +9 -7
  960. wagtail/permission_policies/collections.py +7 -7
  961. wagtail/permission_policies/sites.py +195 -0
  962. wagtail/project_template/home/migrations/0002_create_homepage.py +8 -3
  963. wagtail/project_template/home/tests.py +43 -0
  964. wagtail/project_template/project_name/settings/base.py +3 -7
  965. wagtail/project_template/project_name/settings/production.py +6 -0
  966. wagtail/project_template/requirements.txt +1 -1
  967. wagtail/rich_text/__init__.py +11 -1
  968. wagtail/search/backends/base.py +13 -0
  969. wagtail/search/backends/database/fallback.py +1 -0
  970. wagtail/search/backends/database/mysql/mysql.py +1 -0
  971. wagtail/search/backends/database/postgres/postgres.py +1 -0
  972. wagtail/search/backends/database/sqlite/sqlite.py +1 -0
  973. wagtail/search/locale/ar/LC_MESSAGES/django.mo +0 -0
  974. wagtail/search/locale/ar/LC_MESSAGES/django.po +8 -2
  975. wagtail/search/locale/be/LC_MESSAGES/django.mo +0 -0
  976. wagtail/search/locale/be/LC_MESSAGES/django.po +3 -2
  977. wagtail/search/locale/ca/LC_MESSAGES/django.po +1 -1
  978. wagtail/search/locale/cs/LC_MESSAGES/django.mo +0 -0
  979. wagtail/search/locale/cs/LC_MESSAGES/django.po +1 -1
  980. wagtail/search/locale/cy/LC_MESSAGES/django.po +1 -1
  981. wagtail/search/locale/de/LC_MESSAGES/django.po +1 -1
  982. wagtail/search/locale/dv/LC_MESSAGES/django.po +2 -1
  983. wagtail/search/locale/en/LC_MESSAGES/django.po +1 -1
  984. wagtail/search/locale/es/LC_MESSAGES/django.po +1 -1
  985. wagtail/search/locale/et/LC_MESSAGES/django.mo +0 -0
  986. wagtail/search/locale/et/LC_MESSAGES/django.po +1 -1
  987. wagtail/search/locale/fa/LC_MESSAGES/django.mo +0 -0
  988. wagtail/search/locale/fa/LC_MESSAGES/django.po +3 -2
  989. wagtail/search/locale/fi/LC_MESSAGES/django.po +1 -1
  990. wagtail/search/locale/fr/LC_MESSAGES/django.po +1 -1
  991. wagtail/search/locale/gl/LC_MESSAGES/django.po +1 -1
  992. wagtail/search/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  993. wagtail/search/locale/ht/LC_MESSAGES/django.mo +0 -0
  994. wagtail/search/locale/ht/LC_MESSAGES/django.po +1 -1
  995. wagtail/search/locale/hu/LC_MESSAGES/django.po +1 -1
  996. wagtail/search/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  997. wagtail/search/locale/id_ID/LC_MESSAGES/django.po +1 -1
  998. wagtail/search/locale/is_IS/LC_MESSAGES/django.po +1 -1
  999. wagtail/search/locale/it/LC_MESSAGES/django.po +1 -1
  1000. wagtail/search/locale/ja/LC_MESSAGES/django.mo +0 -0
  1001. wagtail/search/locale/ja/LC_MESSAGES/django.po +1 -1
  1002. wagtail/search/locale/ko/LC_MESSAGES/django.po +1 -1
  1003. wagtail/search/locale/lt/LC_MESSAGES/django.mo +0 -0
  1004. wagtail/search/locale/lt/LC_MESSAGES/django.po +1 -1
  1005. wagtail/search/locale/mi/LC_MESSAGES/django.mo +0 -0
  1006. wagtail/search/locale/mi/LC_MESSAGES/django.po +1 -1
  1007. wagtail/search/locale/mn/LC_MESSAGES/django.mo +0 -0
  1008. wagtail/search/locale/mn/LC_MESSAGES/django.po +1 -1
  1009. wagtail/search/locale/my/LC_MESSAGES/django.mo +0 -0
  1010. wagtail/search/locale/my/LC_MESSAGES/django.po +1 -1
  1011. wagtail/search/locale/nb/LC_MESSAGES/django.mo +0 -0
  1012. wagtail/search/locale/nb/LC_MESSAGES/django.po +3 -2
  1013. wagtail/search/locale/nl/LC_MESSAGES/django.po +1 -1
  1014. wagtail/search/locale/pl/LC_MESSAGES/django.mo +0 -0
  1015. wagtail/search/locale/pl/LC_MESSAGES/django.po +3 -3
  1016. wagtail/search/locale/pt_BR/LC_MESSAGES/django.po +2 -1
  1017. wagtail/search/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1018. wagtail/search/locale/ro/LC_MESSAGES/django.po +1 -1
  1019. wagtail/search/locale/ru/LC_MESSAGES/django.po +2 -1
  1020. wagtail/search/locale/sl/LC_MESSAGES/django.po +1 -1
  1021. wagtail/search/locale/sv/LC_MESSAGES/django.po +1 -1
  1022. wagtail/search/locale/tet/LC_MESSAGES/django.mo +0 -0
  1023. wagtail/search/locale/tet/LC_MESSAGES/django.po +1 -1
  1024. wagtail/search/locale/th/LC_MESSAGES/django.mo +0 -0
  1025. wagtail/search/locale/th/LC_MESSAGES/django.po +1 -1
  1026. wagtail/search/locale/tr/LC_MESSAGES/django.mo +0 -0
  1027. wagtail/search/locale/tr/LC_MESSAGES/django.po +1 -1
  1028. wagtail/search/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  1029. wagtail/search/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1030. wagtail/search/locale/ug/LC_MESSAGES/django.po +1 -1
  1031. wagtail/search/locale/uk/LC_MESSAGES/django.po +1 -1
  1032. wagtail/search/locale/vi/LC_MESSAGES/django.mo +0 -0
  1033. wagtail/search/locale/vi/LC_MESSAGES/django.po +1 -1
  1034. wagtail/search/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1035. wagtail/search/locale/zh_Hant/LC_MESSAGES/django.mo +0 -0
  1036. wagtail/search/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1037. wagtail/search/tests/test_page_search.py +20 -1
  1038. wagtail/signals.py +4 -0
  1039. wagtail/sites/locale/ar/LC_MESSAGES/django.po +1 -1
  1040. wagtail/sites/locale/be/LC_MESSAGES/django.po +1 -1
  1041. wagtail/sites/locale/bn/LC_MESSAGES/django.mo +0 -0
  1042. wagtail/sites/locale/bn/LC_MESSAGES/django.po +1 -1
  1043. wagtail/sites/locale/ca/LC_MESSAGES/django.po +1 -1
  1044. wagtail/sites/locale/cs/LC_MESSAGES/django.po +1 -1
  1045. wagtail/sites/locale/cy/LC_MESSAGES/django.po +1 -1
  1046. wagtail/sites/locale/da/LC_MESSAGES/django.mo +0 -0
  1047. wagtail/sites/locale/da/LC_MESSAGES/django.po +1 -1
  1048. wagtail/sites/locale/de/LC_MESSAGES/django.po +1 -1
  1049. wagtail/sites/locale/dv/LC_MESSAGES/django.po +2 -1
  1050. wagtail/sites/locale/el/LC_MESSAGES/django.po +2 -1
  1051. wagtail/sites/locale/en/LC_MESSAGES/django.po +1 -1
  1052. wagtail/sites/locale/en_IN/LC_MESSAGES/django.mo +0 -0
  1053. wagtail/sites/locale/en_IN/LC_MESSAGES/django.po +1 -1
  1054. wagtail/sites/locale/es/LC_MESSAGES/django.po +1 -1
  1055. wagtail/sites/locale/es_419/LC_MESSAGES/django.mo +0 -0
  1056. wagtail/sites/locale/es_419/LC_MESSAGES/django.po +1 -1
  1057. wagtail/sites/locale/es_VE/LC_MESSAGES/django.mo +0 -0
  1058. wagtail/sites/locale/es_VE/LC_MESSAGES/django.po +1 -1
  1059. wagtail/sites/locale/et/LC_MESSAGES/django.po +1 -1
  1060. wagtail/sites/locale/fa/LC_MESSAGES/django.po +1 -1
  1061. wagtail/sites/locale/fi/LC_MESSAGES/django.po +1 -1
  1062. wagtail/sites/locale/fr/LC_MESSAGES/django.po +1 -1
  1063. wagtail/sites/locale/gl/LC_MESSAGES/django.po +1 -1
  1064. wagtail/sites/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1065. wagtail/sites/locale/hi/LC_MESSAGES/django.mo +0 -0
  1066. wagtail/sites/locale/hi/LC_MESSAGES/django.po +1 -1
  1067. wagtail/sites/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1068. wagtail/sites/locale/ht/LC_MESSAGES/django.po +1 -1
  1069. wagtail/sites/locale/hu/LC_MESSAGES/django.po +1 -1
  1070. wagtail/sites/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1071. wagtail/sites/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1072. wagtail/sites/locale/it/LC_MESSAGES/django.po +1 -1
  1073. wagtail/sites/locale/ja/LC_MESSAGES/django.po +1 -1
  1074. wagtail/sites/locale/ka/LC_MESSAGES/django.po +1 -1
  1075. wagtail/sites/locale/ko/LC_MESSAGES/django.po +1 -1
  1076. wagtail/sites/locale/lt/LC_MESSAGES/django.po +1 -1
  1077. wagtail/sites/locale/lv/LC_MESSAGES/django.po +1 -1
  1078. wagtail/sites/locale/mi/LC_MESSAGES/django.po +1 -1
  1079. wagtail/sites/locale/mn/LC_MESSAGES/django.po +1 -1
  1080. wagtail/sites/locale/my/LC_MESSAGES/django.po +1 -1
  1081. wagtail/sites/locale/nb/LC_MESSAGES/django.po +1 -1
  1082. wagtail/sites/locale/nl/LC_MESSAGES/django.po +1 -1
  1083. wagtail/sites/locale/pl/LC_MESSAGES/django.po +1 -1
  1084. wagtail/sites/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1085. wagtail/sites/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1086. wagtail/sites/locale/ro/LC_MESSAGES/django.po +2 -1
  1087. wagtail/sites/locale/ru/LC_MESSAGES/django.po +1 -1
  1088. wagtail/sites/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1089. wagtail/sites/locale/sl/LC_MESSAGES/django.po +1 -1
  1090. wagtail/sites/locale/sr/LC_MESSAGES/django.mo +0 -0
  1091. wagtail/sites/locale/sr/LC_MESSAGES/django.po +1 -1
  1092. wagtail/sites/locale/sv/LC_MESSAGES/django.po +1 -1
  1093. wagtail/sites/locale/ta/LC_MESSAGES/django.mo +0 -0
  1094. wagtail/sites/locale/ta/LC_MESSAGES/django.po +1 -1
  1095. wagtail/sites/locale/tet/LC_MESSAGES/django.po +1 -1
  1096. wagtail/sites/locale/th/LC_MESSAGES/django.po +1 -1
  1097. wagtail/sites/locale/tr/LC_MESSAGES/django.po +1 -1
  1098. wagtail/sites/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1099. wagtail/sites/locale/ug/LC_MESSAGES/django.po +1 -1
  1100. wagtail/sites/locale/uk/LC_MESSAGES/django.po +1 -1
  1101. wagtail/sites/locale/vi/LC_MESSAGES/django.po +1 -1
  1102. wagtail/sites/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1103. wagtail/sites/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1104. wagtail/snippets/blocks.py +11 -4
  1105. wagtail/snippets/bulk_actions/delete.py +9 -19
  1106. wagtail/snippets/bulk_actions/snippet_bulk_action.py +0 -1
  1107. wagtail/snippets/locale/af/LC_MESSAGES/django.po +1 -1
  1108. wagtail/snippets/locale/ar/LC_MESSAGES/django.mo +0 -0
  1109. wagtail/snippets/locale/ar/LC_MESSAGES/django.po +88 -31
  1110. wagtail/snippets/locale/az_AZ/LC_MESSAGES/django.po +1 -1
  1111. wagtail/snippets/locale/be/LC_MESSAGES/django.po +1 -1
  1112. wagtail/snippets/locale/bg/LC_MESSAGES/django.po +1 -1
  1113. wagtail/snippets/locale/bn/LC_MESSAGES/django.po +1 -1
  1114. wagtail/snippets/locale/ca/LC_MESSAGES/django.po +1 -1
  1115. wagtail/snippets/locale/cs/LC_MESSAGES/django.po +1 -1
  1116. wagtail/snippets/locale/cy/LC_MESSAGES/django.po +1 -1
  1117. wagtail/snippets/locale/da/LC_MESSAGES/django.po +1 -1
  1118. wagtail/snippets/locale/de/LC_MESSAGES/django.po +1 -1
  1119. wagtail/snippets/locale/dv/LC_MESSAGES/django.po +1 -1
  1120. wagtail/snippets/locale/el/LC_MESSAGES/django.po +1 -1
  1121. wagtail/snippets/locale/en/LC_MESSAGES/django.po +16 -23
  1122. wagtail/snippets/locale/en_IN/LC_MESSAGES/django.po +1 -1
  1123. wagtail/snippets/locale/es/LC_MESSAGES/django.po +1 -1
  1124. wagtail/snippets/locale/es_419/LC_MESSAGES/django.po +1 -1
  1125. wagtail/snippets/locale/es_VE/LC_MESSAGES/django.po +1 -1
  1126. wagtail/snippets/locale/et/LC_MESSAGES/django.po +1 -1
  1127. wagtail/snippets/locale/eu/LC_MESSAGES/django.po +1 -1
  1128. wagtail/snippets/locale/fa/LC_MESSAGES/django.po +1 -1
  1129. wagtail/snippets/locale/fi/LC_MESSAGES/django.po +1 -1
  1130. wagtail/snippets/locale/fr/LC_MESSAGES/django.po +1 -1
  1131. wagtail/snippets/locale/gl/LC_MESSAGES/django.po +1 -1
  1132. wagtail/snippets/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1133. wagtail/snippets/locale/hi/LC_MESSAGES/django.po +1 -1
  1134. wagtail/snippets/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1135. wagtail/snippets/locale/ht/LC_MESSAGES/django.po +1 -1
  1136. wagtail/snippets/locale/hu/LC_MESSAGES/django.po +1 -1
  1137. wagtail/snippets/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1138. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.mo +0 -0
  1139. wagtail/snippets/locale/is_IS/LC_MESSAGES/django.po +7 -1
  1140. wagtail/snippets/locale/it/LC_MESSAGES/django.mo +0 -0
  1141. wagtail/snippets/locale/it/LC_MESSAGES/django.po +7 -1
  1142. wagtail/snippets/locale/ja/LC_MESSAGES/django.po +1 -1
  1143. wagtail/snippets/locale/ka/LC_MESSAGES/django.po +1 -1
  1144. wagtail/snippets/locale/ko/LC_MESSAGES/django.po +1 -1
  1145. wagtail/snippets/locale/lt/LC_MESSAGES/django.po +1 -1
  1146. wagtail/snippets/locale/lv/LC_MESSAGES/django.po +1 -1
  1147. wagtail/snippets/locale/mi/LC_MESSAGES/django.po +1 -1
  1148. wagtail/snippets/locale/mn/LC_MESSAGES/django.po +1 -1
  1149. wagtail/snippets/locale/my/LC_MESSAGES/django.po +1 -1
  1150. wagtail/snippets/locale/nb/LC_MESSAGES/django.po +1 -1
  1151. wagtail/snippets/locale/nl/LC_MESSAGES/django.po +1 -1
  1152. wagtail/snippets/locale/pl/LC_MESSAGES/django.po +1 -1
  1153. wagtail/snippets/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1154. wagtail/snippets/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1155. wagtail/snippets/locale/ro/LC_MESSAGES/django.po +1 -1
  1156. wagtail/snippets/locale/ru/LC_MESSAGES/django.po +1 -1
  1157. wagtail/snippets/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1158. wagtail/snippets/locale/sl/LC_MESSAGES/django.po +1 -1
  1159. wagtail/snippets/locale/sr/LC_MESSAGES/django.mo +0 -0
  1160. wagtail/snippets/locale/sr/LC_MESSAGES/django.po +1 -1
  1161. wagtail/snippets/locale/sv/LC_MESSAGES/django.po +1 -1
  1162. wagtail/snippets/locale/ta/LC_MESSAGES/django.po +1 -1
  1163. wagtail/snippets/locale/tet/LC_MESSAGES/django.po +1 -1
  1164. wagtail/snippets/locale/th/LC_MESSAGES/django.po +1 -1
  1165. wagtail/snippets/locale/tr/LC_MESSAGES/django.po +1 -1
  1166. wagtail/snippets/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1167. wagtail/snippets/locale/ug/LC_MESSAGES/django.po +1 -1
  1168. wagtail/snippets/locale/uk/LC_MESSAGES/django.po +1 -1
  1169. wagtail/snippets/locale/vi/LC_MESSAGES/django.po +1 -1
  1170. wagtail/snippets/locale/zh/LC_MESSAGES/django.po +1 -1
  1171. wagtail/snippets/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1172. wagtail/snippets/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1173. wagtail/snippets/templates/wagtailsnippets/bulk_actions/confirm_bulk_delete.html +11 -8
  1174. wagtail/snippets/tests/test_bulk_actions/test_bulk_delete.py +86 -2
  1175. wagtail/snippets/tests/test_preview.py +34 -0
  1176. wagtail/snippets/tests/test_snippets.py +66 -8
  1177. wagtail/snippets/tests/test_viewset.py +28 -4
  1178. wagtail/snippets/tests/test_workflows.py +8 -6
  1179. wagtail/snippets/views/snippets.py +21 -13
  1180. wagtail/snippets/widgets.py +14 -4
  1181. wagtail/telepath.py +18 -74
  1182. wagtail/test/customuser/models.py +14 -1
  1183. wagtail/test/demosite/models.py +14 -14
  1184. wagtail/test/settings.py +1 -0
  1185. wagtail/test/testapp/migrations/0001_squashed_0073_revisablechildmodel_secret_text.py +7 -7
  1186. wagtail/test/testapp/migrations/0025_alter_importantpagesgenericsetting_options.py +2 -2
  1187. wagtail/test/testapp/migrations/0038_sociallink.py +2 -2
  1188. wagtail/test/testapp/migrations/0052_variousondeletemodel_protected_page_and_user.py +39 -0
  1189. wagtail/test/testapp/migrations/0053_pagewithexcludedcopyfield_special_stream_and_more.py +57 -0
  1190. wagtail/test/testapp/migrations/0054_delete_notyetregisteredgenericsetting_and_more.py +19 -0
  1191. wagtail/test/testapp/migrations/0055_previewable_settings.py +62 -0
  1192. wagtail/test/testapp/models.py +72 -34
  1193. wagtail/test/testapp/templates/tests/custom_button.html +9 -0
  1194. wagtail/test/testapp/templates/tests/previewable_model.html +2 -0
  1195. wagtail/test/testapp/templates/tests/previewable_setting.html +17 -0
  1196. wagtail/test/testapp/views.py +37 -0
  1197. wagtail/test/testapp/wagtail_hooks.py +6 -0
  1198. wagtail/test/urls.py +1 -1
  1199. wagtail/test/utils/wagtail_tests.py +3 -1
  1200. wagtail/tests/permission_policies/__init__.py +0 -0
  1201. wagtail/tests/{test_collection_permission_policies.py → permission_policies/test_collection_permission_policies.py} +3 -1
  1202. wagtail/tests/{test_page_permission_policies.py → permission_policies/test_page_permission_policies.py} +3 -1
  1203. wagtail/tests/permission_policies/test_site_permission_policies.py +284 -0
  1204. wagtail/tests/test_blocks.py +286 -0
  1205. wagtail/tests/test_date_validators.py +68 -0
  1206. wagtail/tests/test_page_model.py +56 -13
  1207. wagtail/tests/test_reference_index.py +352 -0
  1208. wagtail/tests/test_revision_model.py +30 -11
  1209. wagtail/tests/test_rich_text.py +35 -21
  1210. wagtail/tests/test_streamfield.py +14 -0
  1211. wagtail/tests/test_workflow.py +5 -8
  1212. wagtail/tests/tests.py +92 -0
  1213. wagtail/users/locale/ar/LC_MESSAGES/django.mo +0 -0
  1214. wagtail/users/locale/ar/LC_MESSAGES/django.po +306 -56
  1215. wagtail/users/locale/be/LC_MESSAGES/django.po +1 -1
  1216. wagtail/users/locale/bg/LC_MESSAGES/django.po +1 -1
  1217. wagtail/users/locale/bn/LC_MESSAGES/django.po +1 -1
  1218. wagtail/users/locale/ca/LC_MESSAGES/django.po +1 -1
  1219. wagtail/users/locale/cs/LC_MESSAGES/django.po +1 -1
  1220. wagtail/users/locale/cy/LC_MESSAGES/django.po +1 -1
  1221. wagtail/users/locale/da/LC_MESSAGES/django.po +1 -1
  1222. wagtail/users/locale/de/LC_MESSAGES/django.po +1 -1
  1223. wagtail/users/locale/dv/LC_MESSAGES/django.po +1 -1
  1224. wagtail/users/locale/el/LC_MESSAGES/django.po +1 -1
  1225. wagtail/users/locale/en/LC_MESSAGES/django.po +38 -39
  1226. wagtail/users/locale/es/LC_MESSAGES/django.po +1 -1
  1227. wagtail/users/locale/es_419/LC_MESSAGES/django.po +1 -1
  1228. wagtail/users/locale/et/LC_MESSAGES/django.po +1 -1
  1229. wagtail/users/locale/eu/LC_MESSAGES/django.po +1 -1
  1230. wagtail/users/locale/fa/LC_MESSAGES/django.po +1 -1
  1231. wagtail/users/locale/fi/LC_MESSAGES/django.po +1 -1
  1232. wagtail/users/locale/fr/LC_MESSAGES/django.po +1 -1
  1233. wagtail/users/locale/gl/LC_MESSAGES/django.po +1 -1
  1234. wagtail/users/locale/he_IL/LC_MESSAGES/django.po +1 -1
  1235. wagtail/users/locale/hr_HR/LC_MESSAGES/django.po +1 -1
  1236. wagtail/users/locale/hu/LC_MESSAGES/django.po +1 -1
  1237. wagtail/users/locale/hy/LC_MESSAGES/django.po +1 -1
  1238. wagtail/users/locale/id_ID/LC_MESSAGES/django.po +1 -1
  1239. wagtail/users/locale/is_IS/LC_MESSAGES/django.po +1 -1
  1240. wagtail/users/locale/it/LC_MESSAGES/django.po +1 -1
  1241. wagtail/users/locale/ja/LC_MESSAGES/django.po +1 -1
  1242. wagtail/users/locale/ka/LC_MESSAGES/django.po +1 -1
  1243. wagtail/users/locale/ko/LC_MESSAGES/django.po +1 -1
  1244. wagtail/users/locale/lt/LC_MESSAGES/django.po +1 -1
  1245. wagtail/users/locale/lv/LC_MESSAGES/django.po +1 -1
  1246. wagtail/users/locale/mi/LC_MESSAGES/django.po +1 -1
  1247. wagtail/users/locale/mn/LC_MESSAGES/django.po +1 -1
  1248. wagtail/users/locale/my/LC_MESSAGES/django.po +1 -1
  1249. wagtail/users/locale/nb/LC_MESSAGES/django.po +1 -1
  1250. wagtail/users/locale/nl/LC_MESSAGES/django.po +1 -1
  1251. wagtail/users/locale/pl/LC_MESSAGES/django.po +1 -1
  1252. wagtail/users/locale/pt_BR/LC_MESSAGES/django.po +1 -1
  1253. wagtail/users/locale/pt_PT/LC_MESSAGES/django.po +1 -1
  1254. wagtail/users/locale/ro/LC_MESSAGES/django.po +1 -1
  1255. wagtail/users/locale/ru/LC_MESSAGES/django.po +1 -1
  1256. wagtail/users/locale/sk_SK/LC_MESSAGES/django.po +1 -1
  1257. wagtail/users/locale/sl/LC_MESSAGES/django.po +1 -1
  1258. wagtail/users/locale/sv/LC_MESSAGES/django.po +1 -1
  1259. wagtail/users/locale/tet/LC_MESSAGES/django.po +1 -1
  1260. wagtail/users/locale/th/LC_MESSAGES/django.po +1 -1
  1261. wagtail/users/locale/tr/LC_MESSAGES/django.po +1 -1
  1262. wagtail/users/locale/tr_TR/LC_MESSAGES/django.po +1 -1
  1263. wagtail/users/locale/ug/LC_MESSAGES/django.po +1 -1
  1264. wagtail/users/locale/uk/LC_MESSAGES/django.po +1 -1
  1265. wagtail/users/locale/vi/LC_MESSAGES/django.po +1 -1
  1266. wagtail/users/locale/zh/LC_MESSAGES/django.po +1 -1
  1267. wagtail/users/locale/zh_Hans/LC_MESSAGES/django.po +1 -1
  1268. wagtail/users/locale/zh_Hant/LC_MESSAGES/django.po +1 -1
  1269. wagtail/users/migrations/0015_userprofile_keyboard_shortcuts.py +22 -0
  1270. wagtail/users/models.py +6 -0
  1271. wagtail/users/templates/wagtailusers/bulk_actions/confirm_bulk_delete.html +6 -2
  1272. wagtail/users/templates/wagtailusers/users/confirm_delete.html +0 -9
  1273. wagtail/users/templates/wagtailusers/users/create.html +5 -3
  1274. wagtail/users/templates/wagtailusers/users/edit.html +4 -2
  1275. wagtail/users/tests/test_admin_views.py +268 -15
  1276. wagtail/users/tests/test_bulk_actions/test_bulk_delete.py +117 -10
  1277. wagtail/users/views/bulk_actions/delete.py +9 -1
  1278. wagtail/users/views/bulk_actions/user_bulk_action.py +15 -6
  1279. wagtail/users/views/users.py +57 -66
  1280. wagtail/users/widgets.py +13 -3
  1281. wagtail/widget_adapters.py +16 -80
  1282. {wagtail-7.0.2.dist-info → wagtail-7.1rc1.dist-info}/METADATA +2 -4
  1283. {wagtail-7.0.2.dist-info → wagtail-7.1rc1.dist-info}/RECORD +1288 -1262
  1284. wagtail/admin/templates/wagtailadmin/pages/listing/_dropdown_items.html +0 -10
  1285. wagtail/contrib/settings/permissions.py +0 -3
  1286. wagtail/contrib/settings/tests/generic/test_register.py +0 -24
  1287. wagtail/contrib/settings/tests/site_specific/test_register.py +0 -24
  1288. /wagtail/tests/{test_permission_policies.py → permission_policies/test_permission_policies.py} +0 -0
  1289. {wagtail-7.0.2.dist-info → wagtail-7.1rc1.dist-info}/WHEEL +0 -0
  1290. {wagtail-7.0.2.dist-info → wagtail-7.1rc1.dist-info}/entry_points.txt +0 -0
  1291. {wagtail-7.0.2.dist-info → wagtail-7.1rc1.dist-info}/licenses/LICENSE +0 -0
  1292. {wagtail-7.0.2.dist-info → wagtail-7.1rc1.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
@@ -13,7 +14,7 @@ msgstr ""
13
14
  "Report-Msgid-Bugs-To: \n"
14
15
  "POT-Creation-Date: 2025-04-25 23:05+0100\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,79 +42,213 @@ 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 "نوع محتوى غير معروف"
57
83
 
58
84
  msgid "Password"
59
- msgstr "كلمة سر"
85
+ msgstr "كلمة المرور"
60
86
 
61
87
  msgid "The password you have entered is not correct. Please try again."
62
- msgstr "كلمة المرور غير صحيحة, الرجاء المحاولة مرة أخرى."
88
+ msgstr "كلمة المرور التي أدخلتها غير صحيحة. يرجى المحاولة مرة أخرى."
63
89
 
64
90
  msgid "Comment"
65
91
  msgstr "تعليق"
66
92
 
67
93
  msgid "Locked"
68
- msgstr "مغلق"
94
+ msgstr "مقفل"
95
+
96
+ #, python-format
97
+ msgid "No one can make changes while the %(model_name)s is locked"
98
+ msgstr "لا يمكن لأحد إجراء تغييرات أثناء قفل %(model_name)s"
99
+
100
+ #, python-brace-format
101
+ msgid "<b>'{title}' was locked</b> by <b>you</b> on <b>{datetime}</b>."
102
+ msgstr "<b>تم قفل '{title}'</b> بواسطة <b>أنت</b> في <b>{datetime}</b>."
103
+
104
+ #, python-brace-format
105
+ msgid "<b>'{title}' is locked</b> by <b>you</b>."
106
+ msgstr "<b>'{title}' مقفل</b> بواسطة <b>أنت</b>."
107
+
108
+ #, python-brace-format
109
+ msgid "<b>'{title}' was locked</b> by <b>{user}</b> on <b>{datetime}</b>."
110
+ msgstr "<b>تم قفل '{title}'</b> بواسطة <b>{user}</b> في <b>{datetime}</b>."
111
+
112
+ #, python-brace-format
113
+ msgid "<b>'{title}' is locked</b>."
114
+ msgstr "<b>'{title}' مقفل</b>."
115
+
116
+ msgid "Locked by you"
117
+ msgstr "مقفل بواسطتك"
118
+
119
+ msgid "Locked by another user"
120
+ msgstr "مقفل بواسطة مستخدم آخر"
121
+
122
+ #, python-format
123
+ msgid "Only you can make changes while the %(model_name)s is locked"
124
+ msgstr "يمكنك فقط إجراء تغييرات أثناء قفل %(model_name)s"
125
+
126
+ #, python-format
127
+ msgid "Only %(user)s can make changes while the %(model_name)s is locked"
128
+ msgstr "يمكن فقط لـ %(user)s إجراء تغييرات أثناء قفل %(model_name)s"
129
+
130
+ #, python-format
131
+ msgid "This %(model_name)s is currently awaiting moderation."
132
+ msgstr "هذا %(model_name)s في انتظار المراجعة حالياً."
133
+
134
+ #, python-brace-format
135
+ msgid ""
136
+ "This {model_name} is awaiting <b>'{task_name}'</b> in the "
137
+ "<b>'{workflow_name}'</b> workflow."
138
+ msgstr ""
139
+ "هذا {model_name} في انتظار <b>'{task_name}'</b> في سير العمل "
140
+ "<b>'{workflow_name}'</b>."
141
+
142
+ #, python-format
143
+ msgid "Only reviewers for this task can edit the %(model_name)s."
144
+ msgstr "يمكن فقط للمراجعين لهذه المهمة تعديل %(model_name)s."
69
145
 
70
146
  msgid "Unlocked"
71
- msgstr "غير مغلق"
147
+ msgstr "غير مقفل"
148
+
149
+ msgid "Locked by workflow"
150
+ msgstr "مقفل بواسطة سير العمل"
151
+
152
+ #, python-format
153
+ msgid ""
154
+ "Reviewers can edit this %(model_name)s – lock it to prevent other reviewers "
155
+ "from editing"
156
+ msgstr ""
157
+ "يمكن للمراجعين تعديل هذا %(model_name)s - اقفله لمنع المراجعين الآخرين من "
158
+ "التعديل"
159
+
160
+ #, python-format
161
+ msgid "Only reviewers can edit and approve the %(model_name)s"
162
+ msgstr "يمكن فقط للمراجعين تعديل والموافقة على %(model_name)s"
163
+
164
+ #, python-brace-format
165
+ msgid ""
166
+ "{model_name} '{title}' is locked and has been scheduled to go live at "
167
+ "{datetime}"
168
+ msgstr "{model_name} '{title}' مقفل ومجدول للنشر في {datetime}"
169
+
170
+ msgid "Locked by schedule"
171
+ msgstr "مقفل حسب الجدول"
172
+
173
+ msgid "Currently locked and will go live on the scheduled date"
174
+ msgstr "مقفل حالياً وسينشر في التاريخ المجدول"
72
175
 
73
176
  msgid "content type"
74
177
  msgstr "نوع المحتوى"
75
178
 
179
+ msgid "timestamp (UTC)"
180
+ msgstr "الطابع الزمني (UTC)"
181
+
182
+ msgid "log entry"
183
+ msgstr "إدخال السجل"
184
+
185
+ msgid "log entries"
186
+ msgstr "إدخالات السجل"
187
+
188
+ #, python-format
189
+ msgid "The log action '%(action_name)s' has not been registered."
190
+ msgstr "إجراء السجل '%(action_name)s' غير مسجل."
191
+
192
+ msgid "system"
193
+ msgstr "النظام"
194
+
195
+ #, python-format
196
+ msgid "Unknown %(action)s"
197
+ msgstr "غير معروف %(action)s"
198
+
199
+ msgid "model log entry"
200
+ msgstr "إدخال سجل النموذج"
201
+
202
+ msgid "model log entries"
203
+ msgstr "إدخالات سجل النموذج"
204
+
76
205
  msgid "live"
77
- msgstr "حي"
206
+ msgstr "نشط"
78
207
 
79
208
  msgid "has unpublished changes"
80
209
  msgstr "يحتوي على تغييرات غير منشورة"
81
210
 
82
211
  msgid "first published at"
83
- msgstr "نشر للمرة الأولى في"
212
+ msgstr "تاريخ النشر الأول"
84
213
 
85
214
  msgid "last published at"
86
- msgstr "نشرت في"
215
+ msgstr "تاريخ النشر الأخير"
216
+
217
+ msgid "live revision"
218
+ msgstr "مراجعة نشطة"
87
219
 
88
220
  msgid "go live date/time"
89
- msgstr "تاريخ النشر / الوقت"
221
+ msgstr "تاريخ/وقت النشر"
90
222
 
91
223
  msgid "expiry date/time"
92
- msgstr "تاريخ انتهاء الصلاحية / الوقت"
224
+ msgstr "تاريخ/وقت الانتهاء"
93
225
 
94
226
  msgid "expired"
95
- msgstr "منقضٍ"
227
+ msgstr "منتهي الصلاحية"
96
228
 
97
229
  msgid "scheduled"
98
- msgstr "موقت"
230
+ msgstr "مجدول"
99
231
 
100
232
  msgid "draft"
101
- msgstr "مسود"
233
+ msgstr "مسودة"
102
234
 
103
235
  msgid "live + scheduled"
104
- msgstr "حي + مجدول"
236
+ msgstr "نشط + مجدول"
105
237
 
106
238
  msgid "live + draft"
107
- msgstr "حي + مسودة"
239
+ msgstr "نشط + مسودة"
240
+
241
+ msgid "locale"
242
+ msgstr "اللغة المحلية"
108
243
 
109
244
  msgid "locked"
110
- msgstr "مغلق"
245
+ msgstr "مقفل"
246
+
247
+ msgid "locked at"
248
+ msgstr "مقفل في"
249
+
250
+ msgid "locked by"
251
+ msgstr "مقفل بواسطة"
111
252
 
112
253
  msgid "collection"
113
254
  msgstr "مجموعة"
@@ -119,89 +260,122 @@ msgid "collection view restrictions"
119
260
  msgstr "قيود عرض المجموعة"
120
261
 
121
262
  msgid "name"
122
- msgstr "اسم"
263
+ msgstr "الاسم"
123
264
 
124
265
  msgid "collections"
125
- msgstr "مجموعات"
266
+ msgstr "المجموعات"
126
267
 
127
268
  msgid "group"
128
269
  msgstr "مجموعة"
129
270
 
130
271
  msgid "permission"
131
- msgstr "تصريح"
272
+ msgstr "صلاحية"
132
273
 
133
274
  msgid "group collection permission"
134
- msgstr "إذن مجموعة المجموعة"
275
+ msgstr "صلاحية مجموعة المجموعات"
135
276
 
136
277
  msgid "group collection permissions"
137
- msgstr "مجموعة أذونات المجموعة"
278
+ msgstr "صلاحيات مجموعة المجموعات"
279
+
280
+ msgid "for content type"
281
+ msgstr "لنوع المحتوى"
138
282
 
139
283
  msgid "uploaded by user"
140
- msgstr "رفع عن طريق المستخدم"
284
+ msgstr "تم الرفع بواسطة المستخدم"
141
285
 
142
286
  msgid "Add/edit pages you own"
143
- msgstr "أضف أو نقح سفحات أنت الصاحب لها "
287
+ msgstr "إضافة/تعديل الصفحات التي تملكها"
144
288
 
145
289
  msgid "Bulk delete"
146
- msgstr "حذف بالجملة"
290
+ msgstr "حذف جماعي"
147
291
 
148
292
  msgid "Delete pages with children"
149
- msgstr "حذف الصفحات مع التفرعات"
293
+ msgstr "حذف الصفحات مع الصفحات الفرعية"
150
294
 
151
295
  msgid "Edit"
152
296
  msgstr "تعديل"
153
297
 
154
298
  msgid "Edit any page"
155
- msgstr "تحرير أي صفحة"
299
+ msgstr "تعديل أي صفحة"
156
300
 
157
301
  msgid "Lock"
158
- msgstr "أقفل"
302
+ msgstr "قفل"
303
+
304
+ msgid "Lock/unlock pages you've locked"
305
+ msgstr "قفل/فتح الصفحات التي قفلتها"
159
306
 
160
307
  msgid "Publish"
161
- msgstr "انشر"
308
+ msgstr "نشر"
162
309
 
163
310
  msgid "Publish any page"
164
- msgstr "انشر أي صفحة"
311
+ msgstr "نشر أي صفحة"
165
312
 
166
313
  msgid "Unlock"
167
- msgstr "إزالة القفل"
314
+ msgstr "فتح"
315
+
316
+ msgid "Unlock any page"
317
+ msgstr "فتح أي صفحة"
168
318
 
169
319
  msgid "title"
170
- msgstr "عنوان"
320
+ msgstr "العنوان"
171
321
 
172
322
  msgid "The page title as you'd like it to be seen by the public"
173
323
  msgstr "عنوان الصفحة كما تريد أن يراه الجمهور"
174
324
 
175
325
  msgid "slug"
176
- msgstr "slug"
326
+ msgstr "رابط مختصر"
177
327
 
178
328
  msgid ""
179
329
  "The name of the page as it will appear in URLs e.g http://domain.com/blog/"
180
330
  "[my-slug]/"
181
- msgstr "اسم الصفحة كما ستظهر في URLs e.g http://domain.com/blog/[my-slug]/"
331
+ msgstr ""
332
+ "اسم الصفحة كما سيظهر في الروابط، مثال: http://domain.com/blog/[my-slug]/"
182
333
 
183
334
  msgid "URL path"
184
- msgstr "مسار عنوان URL"
335
+ msgstr "مسار URL"
185
336
 
186
337
  msgid "owner"
187
- msgstr "صاحب"
338
+ msgstr "المالك"
339
+
340
+ msgid "title tag"
341
+ msgstr "وسم العنوان"
342
+
343
+ msgid ""
344
+ "The name of the page displayed on search engine results as the clickable "
345
+ "headline."
346
+ msgstr "اسم الصفحة المعروض في نتائج محركات البحث كعنوان قابل للنقر."
188
347
 
189
348
  msgid "show in menus"
190
- msgstr "تظهر في القوائم"
349
+ msgstr "إظهار في القوائم"
191
350
 
192
351
  msgid ""
193
352
  "Whether a link to this page will appear in automatically generated menus"
194
- msgstr ""
195
- "ما إذا كان رابط إلى هذه الصفحة سيظهر في القوائم التي يتم إنشاؤها تلقائيًا"
353
+ msgstr "ما إذا كان رابط لهذه الصفحة سيظهر في القوائم المولدة تلقائياً"
354
+
355
+ msgid "meta description"
356
+ msgstr "وصف التعريف"
357
+
358
+ msgid ""
359
+ "The descriptive text displayed underneath a headline in search engine "
360
+ "results."
361
+ msgstr "النص الوصفي المعروض تحت العنوان في نتائج محركات البحث."
196
362
 
197
363
  msgid "latest revision created at"
198
- msgstr "أحدث نسخة تم إنشاؤها في"
364
+ msgstr "أحدث مراجعة تم إنشاؤها في"
199
365
 
200
366
  msgid "For search engines"
201
- msgstr "خاص بمحركات البحث"
367
+ msgstr "لمحركات البحث"
202
368
 
203
369
  msgid "For site menus"
204
- msgstr "خاص بقوائم الموقع"
370
+ msgstr "لقوائم الموقع"
371
+
372
+ #, python-format
373
+ msgid ""
374
+ "The slug '%(page_slug)s' is already in use within the parent page at "
375
+ "'%(parent_url_path)s'"
376
+ msgstr ""
377
+ "الرابط المختصر '%(page_slug)s' مستخدم بالفعل في الصفحة الأصلية في "
378
+ "'%(parent_url_path)s'"
205
379
 
206
380
  msgid "page"
207
381
  msgstr "صفحة"
@@ -210,10 +384,10 @@ msgid "pages"
210
384
  msgstr "صفحات"
211
385
 
212
386
  msgid "group page permission"
213
- msgstr "إذن صفحة المجموعة"
387
+ msgstr "صلاحية صفحة المجموعة"
214
388
 
215
389
  msgid "group page permissions"
216
- msgstr "أذونات صفحة المجموعة"
390
+ msgstr "صلاحيات صفحة المجموعة"
217
391
 
218
392
  msgid "page view restriction"
219
393
  msgstr "تقييد عرض الصفحة"
@@ -221,11 +395,77 @@ msgstr "تقييد عرض الصفحة"
221
395
  msgid "page view restrictions"
222
396
  msgstr "قيود عرض الصفحة"
223
397
 
398
+ msgid "workflow"
399
+ msgstr "سير العمل"
400
+
401
+ msgid "workflow page"
402
+ msgstr "صفحة سير العمل"
403
+
404
+ msgid "workflow pages"
405
+ msgstr "صفحات سير العمل"
406
+
407
+ msgid "page log entry"
408
+ msgstr "إدخال سجل الصفحة"
409
+
410
+ msgid "page log entries"
411
+ msgstr "إدخالات سجل الصفحة"
412
+
413
+ msgid "Draft saved"
414
+ msgstr "تم حفظ المسودة"
415
+
416
+ msgid "comment"
417
+ msgstr "تعليق"
418
+
419
+ msgid "comments"
420
+ msgstr "تعليقات"
421
+
422
+ msgid "comment reply"
423
+ msgstr "رد على التعليق"
424
+
425
+ msgid "comment replies"
426
+ msgstr "ردود على التعليقات"
427
+
224
428
  msgid "Default"
225
- msgstr "عادي"
429
+ msgstr "افتراضي"
430
+
431
+ msgid "Preview in mobile size"
432
+ msgstr "معاينة بحجم الجوال"
433
+
434
+ msgid "Preview in tablet size"
435
+ msgstr "معاينة بحجم الجهاز اللوحي"
436
+
437
+ msgid "Preview in desktop size"
438
+ msgstr "معاينة بحجم سطح المكتب"
439
+
440
+ msgid "object id"
441
+ msgstr "معرف الكائن"
442
+
443
+ #, python-format
444
+ msgid "the %(model_name)s will also be deleted"
445
+ msgstr "سيتم أيضاً حذف %(model_name)s"
446
+
447
+ msgid "prevents deletion"
448
+ msgstr "يمنع الحذف"
449
+
450
+ #, python-format
451
+ msgid "will be set to the default %(model_name)s"
452
+ msgstr "سيتم تعيينه إلى %(model_name)s الافتراضي"
453
+
454
+ msgid "will do nothing"
455
+ msgstr "لن يفعل شيئاً"
456
+
457
+ msgid "may prevent deletion"
458
+ msgstr "قد يمنع الحذف"
459
+
460
+ #, python-format
461
+ msgid "will be set to a %(model_name)s specified by the system"
462
+ msgstr "سيتم تعيينه إلى %(model_name)s محدد من النظام"
463
+
464
+ msgid "will unset the reference"
465
+ msgstr "سيقوم بإلغاء تعيين المرجع"
226
466
 
227
467
  msgid "created at"
228
- msgstr "أنشئت في"
468
+ msgstr "تم الإنشاء في"
229
469
 
230
470
  msgid "user"
231
471
  msgstr "مستخدم"
@@ -234,41 +474,50 @@ msgid "content JSON"
234
474
  msgstr "محتوى JSON"
235
475
 
236
476
  msgid "approved go live at"
237
- msgstr "وافق على النشر في"
477
+ msgstr "تمت الموافقة للنشر في"
478
+
479
+ msgid "revision"
480
+ msgstr "مراجعة"
481
+
482
+ msgid "revisions"
483
+ msgstr "مراجعات"
484
+
485
+ msgid "latest revision"
486
+ msgstr "أحدث مراجعة"
238
487
 
239
488
  msgid "hostname"
240
489
  msgstr "اسم المضيف"
241
490
 
242
491
  msgid "port"
243
- msgstr "منفذ"
492
+ msgstr "المنفذ"
244
493
 
245
494
  msgid ""
246
495
  "Set this to something other than 80 if you need a specific port number to "
247
496
  "appear in URLs (e.g. development on port 8000). Does not affect request "
248
497
  "handling (so port forwarding still works)."
249
498
  msgstr ""
250
- "عيّن هذا إلى شيء آخر غير 80 إذا كنت تريد رقم منفذ محددًا ليظهر في عناوين URL "
251
- "(على سبيل المثال ، التطوير على المنفذ 8000). لا يؤثر على معالجة الطلب (لذلك "
252
- "لا يزال يعمل إعادة توجيه المنفذ)."
499
+ "اضبط هذا على قيمة غير 80 إذا كنت بحاجة إلى رقم منفذ معين يظهر في عناوين URL "
500
+ "(مثل التطوير على المنفذ 8000). لا يؤثر على معالجة الطلبات (لذلك لا يزال "
501
+ "إعادة توجيه المنفذ يعمل)."
253
502
 
254
503
  msgid "site name"
255
- msgstr "إسم الموقع"
504
+ msgstr "اسم الموقع"
256
505
 
257
506
  msgid "Human-readable name for the site."
258
- msgstr "اسم قابل للقراءة من قبل الإنسان للموقع."
507
+ msgstr "اسم قابل للقراءة للموقع."
259
508
 
260
509
  msgid "root page"
261
- msgstr "الصفحة الرئيسية"
510
+ msgstr "الصفحة الجذرية"
262
511
 
263
512
  msgid "is default site"
264
- msgstr "أهذا هو الموقع الافتراضي"
513
+ msgstr "هو الموقع الافتراضي"
265
514
 
266
515
  msgid ""
267
516
  "If true, this site will handle requests for all other hostnames that do not "
268
517
  "have a site entry of their own"
269
518
  msgstr ""
270
- "إذا كان هذا صحيحًا ، فسيتعامل هذا الموقع مع طلبات جميع أسماء المضيف الأخرى "
271
- "التي لا تحتوي على إدخال موقع خاص بها"
519
+ "إذا كان صحيحاً، سيتعامل هذا الموقع مع طلبات جميع أسماء المضيف الأخرى التي ليس "
520
+ "لها إدخال موقع خاص بها"
272
521
 
273
522
  msgid "site"
274
523
  msgstr "موقع"
@@ -277,73 +526,518 @@ msgid "sites"
277
526
  msgstr "مواقع"
278
527
 
279
528
  msgid "default"
280
- msgstr "الإفتراضي"
529
+ msgstr "افتراضي"
281
530
 
282
531
  #, python-format
283
532
  msgid ""
284
533
  "%(hostname)s is already configured as the default site. You must unset that "
285
534
  "before you can save this site as default."
286
535
  msgstr ""
287
- "%(hostname)s تم تكوينه بالفعل كموقع افتراضي. يجب عليك تعطيل هذا قبل أن تتمكن "
288
- "من حفظ هذا الموقع كإعداد افتراضي. "
536
+ "%(hostname)s مضبوط بالفعل كموقع افتراضي. يجب عليك إلغاء ذلك قبل أن تتمكن من "
537
+ "حفظ هذا الموقع كافتراضي."
289
538
 
290
539
  msgid "Public"
291
540
  msgstr "عام"
292
541
 
542
+ msgid "Private, accessible with a shared password"
543
+ msgstr "خاص، يمكن الوصول إليه بكلمة مرور مشتركة"
544
+
545
+ msgid "Private, accessible to any logged-in users"
546
+ msgstr "خاص، يمكن الوصول إليه من قبل أي مستخدمين مسجلين"
547
+
293
548
  msgid "Private, accessible to users in specific groups"
294
- msgstr "خاص ، يمكن للمستخدمين الوصول إليه في مجموعات محددة"
549
+ msgstr "خاص، يمكن الوصول إليه من قبل مستخدمين في مجموعات محددة"
550
+
551
+ msgid "shared password"
552
+ msgstr "كلمة مرور مشتركة"
553
+
554
+ msgid ""
555
+ "Shared passwords should not be used to protect sensitive content. Anyone who "
556
+ "has this password will be able to view the content."
557
+ msgstr ""
558
+ "يجب عدم استخدام كلمات المرور المشتركة لحماية المحتوى الحساس. أي شخص لديه هذه "
559
+ "كلمة المرور سيكون قادراً على عرض المحتوى."
295
560
 
296
561
  msgid "groups"
297
562
  msgstr "مجموعات"
298
563
 
299
564
  msgid "view restriction"
300
- msgstr "عرض تقييد"
565
+ msgstr "تقييد العرض"
301
566
 
302
567
  msgid "view restrictions"
303
568
  msgstr "قيود العرض"
304
569
 
570
+ msgid "In progress"
571
+ msgstr "قيد التنفيذ"
572
+
573
+ msgid "Approved"
574
+ msgstr "تمت الموافقة"
575
+
576
+ msgid "Needs changes"
577
+ msgstr "يحتاج إلى تغييرات"
578
+
579
+ msgid "Cancelled"
580
+ msgstr "تم الإلغاء"
581
+
582
+ msgid "status"
583
+ msgstr "الحالة"
584
+
585
+ msgid "requested by"
586
+ msgstr "مطلوب بواسطة"
587
+
588
+ msgid "current task state"
589
+ msgstr "حالة المهمة الحالية"
590
+
591
+ msgid ""
592
+ "There may only be one in progress or needs changes workflow state per page/"
593
+ "snippet."
594
+ msgstr ""
595
+ "يمكن أن يكون هناك حالة سير عمل واحدة قيد التنفيذ أو تحتاج إلى تغييرات لكل "
596
+ "صفحة/جزء."
597
+
598
+ #, python-format
599
+ msgid "Workflow '%(workflow_name)s' on %(model_name)s '%(title)s': %(status)s"
600
+ msgstr ""
601
+ "سير العمل '%(workflow_name)s' على %(model_name)s '%(title)s': %(status)s"
602
+
603
+ msgid "Not started"
604
+ msgstr "لم يبدأ بعد"
605
+
606
+ msgid "Workflow state"
607
+ msgstr "حالة سير العمل"
608
+
609
+ msgid "Workflow states"
610
+ msgstr "حالات سير العمل"
611
+
612
+ msgid "active"
613
+ msgstr "نشط"
614
+
615
+ msgid ""
616
+ "Active workflows can be added to pages/snippets. Deactivating a workflow "
617
+ "does not remove it from existing pages/snippets."
618
+ msgstr ""
619
+ "يمكن إضافة سير العمل النشط إلى الصفحات/الأجزاء. تعطيل سير العمل لا يزيله من "
620
+ "الصفحات/الأجزاء الموجودة."
621
+
622
+ msgid "workflows"
623
+ msgstr "سير العمل"
624
+
625
+ msgid "workflow_tasks"
626
+ msgstr "مهام سير العمل"
627
+
628
+ msgid "task"
629
+ msgstr "مهمة"
630
+
631
+ msgid "workflow task order"
632
+ msgstr "ترتيب مهمة سير العمل"
633
+
634
+ msgid "workflow task orders"
635
+ msgstr "ترتيبات مهام سير العمل"
636
+
637
+ msgid ""
638
+ "Active tasks can be added to workflows. Deactivating a task does not remove "
639
+ "it from existing workflows."
640
+ msgstr ""
641
+ "يمكن إضافة المهام النشطة إلى سير العمل. تعطيل مهمة لا يزيلها من سير العمل "
642
+ "الموجود."
643
+
644
+ msgid "tasks"
645
+ msgstr "مهام"
646
+
647
+ msgid ""
648
+ "Pages/snippets at this step in a workflow will be moderated or approved by "
649
+ "these groups of users"
650
+ msgstr ""
651
+ "سيتم مراجعة أو الموافقة على الصفحات/الأجزاء في هذه الخطوة من سير العمل "
652
+ "بواسطة هذه المجموعات من المستخدمين"
653
+
654
+ msgid "Request changes"
655
+ msgstr "طلب تغييرات"
656
+
305
657
  msgid "Approve"
306
- msgstr "موافق"
658
+ msgstr "موافقة"
659
+
660
+ msgid "Approve with comment"
661
+ msgstr "الموافقة مع تعليق"
662
+
663
+ msgid "Members of the chosen Wagtail Groups can approve this task"
664
+ msgstr "يمكن لأعضاء مجموعات Wagtail المختارة الموافقة على هذه المهمة"
665
+
666
+ msgid "Group approval task"
667
+ msgstr "مهمة موافقة المجموعة"
668
+
669
+ msgid "Group approval tasks"
670
+ msgstr "مهام موافقة المجموعة"
671
+
672
+ msgid "Rejected"
673
+ msgstr "مرفوض"
674
+
675
+ msgid "Skipped"
676
+ msgstr "تم تخطيه"
677
+
678
+ msgid "workflow state"
679
+ msgstr "حالة سير العمل"
680
+
681
+ msgid "started at"
682
+ msgstr "بدأ في"
683
+
684
+ msgid "finished at"
685
+ msgstr "انتهى في"
686
+
687
+ msgid "finished by"
688
+ msgstr "انتهى بواسطة"
689
+
690
+ #, python-format
691
+ msgid "Task '%(task_name)s' on Revision '%(revision_info)s': %(status)s"
692
+ msgstr "المهمة '%(task_name)s' على المراجعة '%(revision_info)s': %(status)s"
693
+
694
+ msgid "Task state"
695
+ msgstr "حالة المهمة"
696
+
697
+ msgid "Task states"
698
+ msgstr "حالات المهام"
699
+
700
+ msgid "in moderation"
701
+ msgstr "قيد المراجعة"
702
+
703
+ msgid "live + in moderation"
704
+ msgstr "نشط + قيد المراجعة"
307
705
 
308
706
  msgid "Log in"
309
707
  msgstr "تسجيل الدخول"
310
708
 
311
709
  msgid "Your username and password didn't match. Please try again."
312
- msgstr "اسم المستخدم وكلمة المرور غير متطابقين. حاول مرة اخرى."
710
+ msgstr "اسم المستخدم وكلمة المرور غير متطابقين. يرجى المحاولة مرة أخرى."
313
711
 
314
712
  msgid ""
315
713
  "Your account doesn't have access to this page. To proceed, please log in "
316
714
  "with an account that has access."
317
715
  msgstr ""
318
- "حسابك ليس لديه حق الوصول إلى هذه الصفحة. للمتابعة ، يرجى تسجيل الدخول "
319
- "باستخدام حساب لديه حق الوصول."
716
+ "حسابك لا يملك صلاحية الوصول إلى هذه الصفحة. للمتابعة، يرجى تسجيل الدخول "
717
+ "بحساب لديه صلاحية الوصول."
320
718
 
321
719
  msgid "Password required"
322
- msgstr "كلمة السر مطلوبة"
720
+ msgstr "كلمة المرور مطلوبة"
323
721
 
324
722
  msgid "You need a password to access this page."
325
- msgstr "هذه الصفحة تتطلب كلمة مرور."
723
+ msgstr "تحتاج إلى كلمة مرور للوصول إلى هذه الصفحة."
326
724
 
327
725
  msgid "Continue"
328
- msgstr "أكمل"
726
+ msgstr "متابعة"
727
+
728
+ #, python-format
729
+ msgid "%(count)s descendant collection"
730
+ msgid_plural "%(count)s descendant collections"
731
+ msgstr[0] "%(count)s مجموعة فرعية"
732
+ msgstr[1] "%(count)s مجموعتين فرعيتين"
733
+ msgstr[2] "%(count)s مجموعات فرعية"
734
+ msgstr[3] "%(count)s مجموعة فرعية"
735
+ msgstr[4] "%(count)s مجموعة فرعية"
736
+ msgstr[5] "%(count)s مجموعة فرعية"
737
+
738
+ msgid "Create"
739
+ msgstr "إنشاء"
329
740
 
330
741
  msgid "Created"
331
- msgstr "تم إنشاؤه"
742
+ msgstr "تم الإنشاء"
332
743
 
333
744
  msgid "Edited"
334
- msgstr "محررة"
745
+ msgstr "تم التعديل"
746
+
747
+ msgid "Deleted"
748
+ msgstr "تم الحذف"
335
749
 
336
750
  msgid "Published"
337
- msgstr "تم نشره"
751
+ msgstr "تم النشر"
752
+
753
+ msgid "Publish scheduled draft"
754
+ msgstr "نشر مسودة مجدولة"
755
+
756
+ msgid "Published scheduled draft"
757
+ msgstr "تم نشر المسودة المجدولة"
338
758
 
339
759
  msgid "Unpublish"
340
- msgstr "غير منشور"
760
+ msgstr "إلغاء النشر"
761
+
762
+ msgid "Unpublished"
763
+ msgstr "تم إلغاء النشر"
764
+
765
+ msgid "Unpublish scheduled draft"
766
+ msgstr "إلغاء نشر مسودة مجدولة"
767
+
768
+ msgid "Unpublished scheduled draft"
769
+ msgstr "تم إلغاء نشر المسودة المجدولة"
341
770
 
342
771
  msgid "Reject"
343
- msgstr "مرفوض"
772
+ msgstr "رفض"
773
+
774
+ msgid "Rename"
775
+ msgstr "إعادة تسمية"
776
+
777
+ #, python-format
778
+ msgid "Renamed from '%(old)s' to '%(new)s'"
779
+ msgstr "تمت إعادة التسمية من '%(old)s' إلى '%(new)s'"
780
+
781
+ msgid "Renamed"
782
+ msgstr "تمت إعادة التسمية"
783
+
784
+ msgid "Revert"
785
+ msgstr "تراجع"
786
+
787
+ #, python-format
788
+ msgid ""
789
+ "Reverted to previous revision with id %(revision_id)s from %(created_at)s"
790
+ msgstr ""
791
+ "تم الرجوع إلى المراجعة السابقة بالمعرف %(revision_id)s من %(created_at)s"
792
+
793
+ msgid "Reverted to previous revision"
794
+ msgstr "تم الرجوع إلى المراجعة السابقة"
344
795
 
345
796
  msgid "Copy"
346
- msgstr "انسخ"
797
+ msgstr "نسخ"
798
+
799
+ #, python-format
800
+ msgid "Copied from %(title)s"
801
+ msgstr "تم النسخ من %(title)s"
802
+
803
+ msgid "Copied"
804
+ msgstr "تم النسخ"
805
+
806
+ msgid "Copy for translation"
807
+ msgstr "نسخ للترجمة"
808
+
809
+ #, python-format
810
+ msgid "Copied for translation from %(title)s (%(locale)s)"
811
+ msgstr "تم النسخ للترجمة من %(title)s (%(locale)s)"
812
+
813
+ msgid "Copied for translation"
814
+ msgstr "تم النسخ للترجمة"
815
+
816
+ msgid "Create alias"
817
+ msgstr "إنشاء اسم مستعار"
818
+
819
+ #, python-format
820
+ msgid "Created an alias of %(title)s"
821
+ msgstr "تم إنشاء اسم مستعار لـ %(title)s"
822
+
823
+ msgid "Created an alias"
824
+ msgstr "تم إنشاء اسم مستعار"
825
+
826
+ msgid "Convert alias into ordinary page"
827
+ msgstr "تحويل الاسم المستعار إلى صفحة عادية"
828
+
829
+ #, python-format
830
+ msgid "Converted the alias '%(title)s' into an ordinary page"
831
+ msgstr "تم تحويل الاسم المستعار '%(title)s' إلى صفحة عادية"
832
+
833
+ msgid "Converted an alias into an ordinary page"
834
+ msgstr "تم تحويل اسم مستعار إلى صفحة عادية"
347
835
 
348
836
  msgid "Move"
349
- msgstr "انقل"
837
+ msgstr "نقل"
838
+
839
+ #, python-format
840
+ msgid "Moved from '%(old_parent)s' to '%(new_parent)s'"
841
+ msgstr "تم النقل من '%(old_parent)s' إلى '%(new_parent)s'"
842
+
843
+ msgid "Moved"
844
+ msgstr "تم النقل"
845
+
846
+ msgid "Reorder"
847
+ msgstr "إعادة ترتيب"
848
+
849
+ #, python-format
850
+ msgid "Reordered under '%(parent)s'"
851
+ msgstr "تم إعادة الترتيب تحت '%(parent)s'"
852
+
853
+ msgid "Reordered"
854
+ msgstr "تم إعادة الترتيب"
855
+
856
+ msgid "Schedule publication"
857
+ msgstr "جدولة النشر"
858
+
859
+ #, python-format
860
+ msgid ""
861
+ "Revision %(revision_id)s from %(created_at)s scheduled for publishing at "
862
+ "%(go_live_at)s."
863
+ msgstr ""
864
+ "تم جدولة المراجعة %(revision_id)s من %(created_at)s للنشر في %(go_live_at)s."
865
+
866
+ #, python-format
867
+ msgid "Page scheduled for publishing at %(go_live_at)s"
868
+ msgstr "تم جدولة الصفحة للنشر في %(go_live_at)s"
869
+
870
+ msgid "Page scheduled for publishing"
871
+ msgstr "تم جدولة الصفحة للنشر"
872
+
873
+ msgid "Unschedule publication"
874
+ msgstr "إلغاء جدولة النشر"
875
+
876
+ #, python-format
877
+ msgid ""
878
+ "Revision %(revision_id)s from %(created_at)s unscheduled from publishing at "
879
+ "%(go_live_at)s."
880
+ msgstr ""
881
+ "تم إلغاء جدولة المراجعة %(revision_id)s من %(created_at)s للنشر في "
882
+ "%(go_live_at)s."
883
+
884
+ #, python-format
885
+ msgid "Page unscheduled for publishing at %(go_live_at)s"
886
+ msgstr "تم إلغاء جدولة الصفحة للنشر في %(go_live_at)s"
887
+
888
+ msgid "Page unscheduled from publishing"
889
+ msgstr "تم إلغاء جدولة الصفحة من النشر"
890
+
891
+ msgid "Add view restrictions"
892
+ msgstr "إضافة قيود عرض"
893
+
894
+ #, python-format
895
+ msgid "Added the '%(restriction)s' view restriction"
896
+ msgstr "تمت إضافة قيد العرض '%(restriction)s'"
897
+
898
+ msgid "Added view restriction"
899
+ msgstr "تمت إضافة قيد عرض"
900
+
901
+ msgid "Update view restrictions"
902
+ msgstr "تحديث قيود العرض"
903
+
904
+ #, python-format
905
+ msgid "Updated the view restriction to '%(restriction)s'"
906
+ msgstr "تم تحديث قيد العرض إلى '%(restriction)s'"
907
+
908
+ msgid "Updated view restriction"
909
+ msgstr "تم تحديث قيد العرض"
910
+
911
+ msgid "Remove view restrictions"
912
+ msgstr "إزالة قيود العرض"
913
+
914
+ #, python-format
915
+ msgid "Removed the '%(restriction)s' view restriction. The page is public."
916
+ msgstr "تمت إزالة قيد العرض '%(restriction)s'. الصفحة عامة الآن."
917
+
918
+ msgid "Removed view restriction"
919
+ msgstr "تمت إزالة قيد العرض"
920
+
921
+ msgid "Add comment"
922
+ msgstr "إضافة تعليق"
923
+
924
+ #, python-format
925
+ msgid "Added a comment on field %(field)s: \"%(text)s\""
926
+ msgstr "تمت إضافة تعليق على الحقل %(field)s: \"%(text)s\""
927
+
928
+ msgid "Added a comment"
929
+ msgstr "تمت إضافة تعليق"
930
+
931
+ msgid "Edit comment"
932
+ msgstr "تحرير تعليق"
933
+
934
+ #, python-format
935
+ msgid "Edited a comment on field %(field)s: \"%(text)s\""
936
+ msgstr "تم تحرير تعليق على الحقل %(field)s: \"%(text)s\""
937
+
938
+ msgid "Edited a comment"
939
+ msgstr "تم تحرير تعليق"
940
+
941
+ msgid "Delete comment"
942
+ msgstr "حذف تعليق"
943
+
944
+ #, python-format
945
+ msgid "Deleted a comment on field %(field)s: \"%(text)s\""
946
+ msgstr "تم حذف تعليق على الحقل %(field)s: \"%(text)s\""
947
+
948
+ msgid "Deleted a comment"
949
+ msgstr "تم حذف تعليق"
950
+
951
+ msgid "Resolve comment"
952
+ msgstr "حل التعليق"
953
+
954
+ #, python-format
955
+ msgid "Resolved a comment on field %(field)s: \"%(text)s\""
956
+ msgstr "تم حل تعليق على الحقل %(field)s: \"%(text)s\""
957
+
958
+ msgid "Resolved a comment"
959
+ msgstr "تم حل تعليق"
960
+
961
+ msgid "Reply to comment"
962
+ msgstr "الرد على التعليق"
963
+
964
+ #, python-format
965
+ msgid "Replied to comment on field %(field)s: \"%(text)s\""
966
+ msgstr "تم الرد على تعليق على الحقل %(field)s: \"%(text)s\""
967
+
968
+ msgid "Replied to a comment"
969
+ msgstr "تم الرد على تعليق"
970
+
971
+ msgid "Edit reply to comment"
972
+ msgstr "تحرير الرد على التعليق"
973
+
974
+ #, python-format
975
+ msgid "Edited a reply to a comment on field %(field)s: \"%(text)s\""
976
+ msgstr "تم تحرير رد على تعليق على الحقل %(field)s: \"%(text)s\""
977
+
978
+ msgid "Edited a reply"
979
+ msgstr "تم تحرير رد"
980
+
981
+ msgid "Delete reply to comment"
982
+ msgstr "حذف الرد على التعليق"
983
+
984
+ #, python-format
985
+ msgid "Deleted a reply to a comment on field %(field)s: \"%(text)s\""
986
+ msgstr "تم حذف رد على تعليق على الحقل %(field)s: \"%(text)s\""
987
+
988
+ msgid "Deleted a reply"
989
+ msgstr "تم حذف رد"
990
+
991
+ msgid "Workflow: start"
992
+ msgstr "سير العمل: بدء"
993
+
994
+ #, python-format
995
+ msgid "'%(workflow)s' started. Next step '%(task)s'"
996
+ msgstr "تم بدء '%(workflow)s'. الخطوة التالية '%(task)s'"
997
+
998
+ msgid "Workflow started"
999
+ msgstr "تم بدء سير العمل"
1000
+
1001
+ msgid "Workflow: approve task"
1002
+ msgstr "سير العمل: الموافقة على المهمة"
1003
+
1004
+ #, python-format
1005
+ msgid "Approved at '%(task)s'. Next step '%(next_task)s'"
1006
+ msgstr "تمت الموافقة في '%(task)s'. الخطوة التالية '%(next_task)s'"
1007
+
1008
+ #, python-format
1009
+ msgid "Approved at '%(task)s'. '%(workflow)s' complete"
1010
+ msgstr "تمت الموافقة في '%(task)s'. اكتمل '%(workflow)s'"
1011
+
1012
+ msgid "Workflow task approved"
1013
+ msgstr "تمت الموافقة على مهمة سير العمل"
1014
+
1015
+ msgid "Workflow: reject task"
1016
+ msgstr "سير العمل: رفض المهمة"
1017
+
1018
+ #, python-format
1019
+ msgid "Rejected at '%(task)s'. Changes requested"
1020
+ msgstr "تم الرفض في '%(task)s'. طلب تغييرات"
1021
+
1022
+ msgid "Workflow task rejected. Workflow complete"
1023
+ msgstr "تم رفض مهمة سير العمل. اكتمل سير العمل"
1024
+
1025
+ msgid "Workflow: resume task"
1026
+ msgstr "سير العمل: استئناف المهمة"
1027
+
1028
+ #, python-format
1029
+ msgid "Resubmitted '%(task)s'. Workflow resumed"
1030
+ msgstr "تم إعادة إرسال '%(task)s'. تم استئناف سير العمل"
1031
+
1032
+ msgid "Workflow task resubmitted. Workflow resumed"
1033
+ msgstr "تم إعادة إرسال مهمة سير العمل. تم استئناف سير العمل"
1034
+
1035
+ msgid "Workflow: cancel"
1036
+ msgstr "سير العمل: إلغاء"
1037
+
1038
+ #, python-format
1039
+ msgid "Cancelled '%(workflow)s' at '%(task)s'"
1040
+ msgstr "تم إلغاء '%(workflow)s' في '%(task)s'"
1041
+
1042
+ msgid "Workflow cancelled"
1043
+ msgstr "تم إلغاء سير العمل"