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
@@ -13,7 +13,7 @@ msgid ""
13
13
  msgstr ""
14
14
  "Project-Id-Version: Wagtail\n"
15
15
  "Report-Msgid-Bugs-To: \n"
16
- "POT-Creation-Date: 2025-04-24 13:02+0100\n"
16
+ "POT-Creation-Date: 2025-04-25 23:09+0100\n"
17
17
  "PO-Revision-Date: 2014-02-20 21:05+0000\n"
18
18
  "Last-Translator: Younes Oumakhou, 2022\n"
19
19
  "Language-Team: Arabic (http://app.transifex.com/torchbox/wagtail/language/"
@@ -26,38 +26,61 @@ msgstr ""
26
26
  "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
27
27
 
28
28
  msgid "Wagtail images"
29
- msgstr "صور"
29
+ msgstr "صور Wagtail"
30
+
31
+ msgid "Image is decorative"
32
+ msgstr "الصورة زخرفية"
30
33
 
31
34
  msgid "Alt text"
32
- msgstr "نص للمساعدة"
35
+ msgstr "نص بديل"
36
+
37
+ msgid "Please add some alt text for your image or mark it as decorative"
38
+ msgstr "الرجاء إضافة نص بديل للصورة أو وضع علامة عليها كزخرفية"
33
39
 
34
40
  #, python-format
35
41
  msgid ""
36
42
  "Supported formats: %(supported_formats)s. Maximum filesize: "
37
43
  "%(max_upload_size)s."
38
44
  msgstr ""
39
- "الصيغ المدعومة:%(supported_formats)s. حجم الملف الأقصى:%(max_upload_size)s ."
45
+ "التنسيقات المدعومة: %(supported_formats)s. الحد الأقصى لحجم الملف: "
46
+ "%(max_upload_size)s."
40
47
 
41
48
  #, python-format
42
49
  msgid "Supported formats: %(supported_formats)s."
43
- msgstr "الصيغ المدعومة:%(supported_formats)s."
50
+ msgstr "التنسيقات المدعومة: %(supported_formats)s."
44
51
 
45
52
  #, python-format
46
53
  msgid "Not a supported image format. Supported formats: %(supported_formats)s."
47
- msgstr "ليس صيغة صورة مدعومة. الصيغ المدعومة:%(supported_formats)s."
54
+ msgstr "تنسيق الصورة غير مدعوم. التنسيقات المدعومة: %(supported_formats)s."
55
+
56
+ #, python-format
57
+ msgid ""
58
+ "Not a valid .%(extension)s image. The extension does not match the file "
59
+ "format (%(image_format)s)"
60
+ msgstr ""
61
+ "صورة .%(extension)s غير صالحة. الامتداد لا يتطابق مع تنسيق الملف "
62
+ "(%(image_format)s)"
48
63
 
49
64
  #, python-format
50
65
  msgid ""
51
66
  "This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
52
67
  msgstr ""
53
- "هذا الملف كبير جدًا (%(file_size)s). حجم الملف الأقصى %(max_filesize)s ."
68
+ "هذا الملف كبير جدًا (%(file_size)s). الحد الأقصى لحجم الملف %(max_filesize)s."
69
+
70
+ #, python-format
71
+ msgid ""
72
+ "This file has too many pixels (%(num_pixels)s). Maximum pixels "
73
+ "%(max_pixels_count)s."
74
+ msgstr ""
75
+ "هذا الملف يحتوي على عدد كبير جدًا من البكسل (%(num_pixels)s). الحد الأقصى "
76
+ "للبكسل %(max_pixels_count)s."
54
77
 
55
78
  #, python-format
56
79
  msgid "This file is too big. Maximum filesize %(max_filesize)s."
57
- msgstr "هذا الملف كبير للغاية. حجم الملف الأقصى %(max_filesize)s ."
80
+ msgstr "هذا الملف كبير جدًا. الحد الأقصى لحجم الملف %(max_filesize)s."
58
81
 
59
82
  msgid "Full width"
60
- msgstr "العرض الكامل"
83
+ msgstr "عرض كامل"
61
84
 
62
85
  msgid "Left-aligned"
63
86
  msgstr "محاذاة لليسار"
@@ -68,26 +91,29 @@ msgstr "محاذاة لليمين"
68
91
  msgid "Collection"
69
92
  msgstr "مجموعة"
70
93
 
94
+ msgid "Format"
95
+ msgstr "تنسيق"
96
+
71
97
  msgid "Filter"
72
- msgstr "ارسح"
98
+ msgstr "تصفية"
73
99
 
74
100
  msgid "Original size"
75
101
  msgstr "الحجم الأصلي"
76
102
 
77
103
  msgid "Resize to width"
78
- msgstr "أعد الحجم للاتساع"
104
+ msgstr "تغيير الحجم حسب العرض"
79
105
 
80
106
  msgid "Resize to height"
81
- msgstr "أعد الحجم للارتفاع"
107
+ msgstr "تغيير الحجم حسب الارتفاع"
82
108
 
83
109
  msgid "Resize to min"
84
- msgstr "أعد الحجم للأصغر"
110
+ msgstr "تغيير الحجم إلى الحد الأدنى"
85
111
 
86
112
  msgid "Resize to max"
87
- msgstr "أعد الحجم للأكير"
113
+ msgstr "تغيير الحجم إلى الحد الأقصى"
88
114
 
89
115
  msgid "Resize to fill"
90
- msgstr "أعد الحجم للامتلاء"
116
+ msgstr "تغيير الحجم لملء الفراغ"
91
117
 
92
118
  msgid "Width"
93
119
  msgstr "عرض"
@@ -96,13 +122,13 @@ msgid "Height"
96
122
  msgstr "ارتفاع"
97
123
 
98
124
  msgid "Closeness"
99
- msgstr "مقربة"
125
+ msgstr "قرب"
100
126
 
101
127
  msgid "Add"
102
- msgstr "اضف"
128
+ msgstr "إضافة"
103
129
 
104
130
  msgid "Add/edit images you own"
105
- msgstr "إضافة / تحرير الصور التي تملكها"
131
+ msgstr "إضافة/تحرير الصور التي تملكها"
106
132
 
107
133
  msgid "Edit"
108
134
  msgstr "تحرير"
@@ -111,7 +137,10 @@ msgid "Edit any image"
111
137
  msgstr "تحرير أي صورة"
112
138
 
113
139
  msgid "Choose"
114
- msgstr "اختر"
140
+ msgstr "اختيار"
141
+
142
+ msgid "Select images in choosers"
143
+ msgstr "تحديد الصور في أدوات الاختيار"
115
144
 
116
145
  msgid "title"
117
146
  msgstr "عنوان"
@@ -129,13 +158,13 @@ msgid "height"
129
158
  msgstr "ارتفاع"
130
159
 
131
160
  msgid "created at"
132
- msgstr "أنشئت في"
161
+ msgstr "تاريخ الإنشاء"
133
162
 
134
163
  msgid "uploaded by user"
135
- msgstr "رفع عن طريق المستخدم"
164
+ msgstr "تم الرفع بواسطة المستخدم"
136
165
 
137
166
  msgid "tags"
138
- msgstr "العلامات الدالة"
167
+ msgstr "وسوم"
139
168
 
140
169
  msgid "image"
141
170
  msgstr "صورة"
@@ -143,76 +172,235 @@ msgstr "صورة"
143
172
  msgid "images"
144
173
  msgstr "صور"
145
174
 
175
+ #, python-format
176
+ msgid "Add tags to 1 image"
177
+ msgid_plural "Add tags to %(counter)s images"
178
+ msgstr[0] "إضافة وسوم إلى صورة واحدة"
179
+ msgstr[1] "إضافة وسوم إلى صورة واحدة"
180
+ msgstr[2] "إضافة وسوم إلى صورتين"
181
+ msgstr[3] "إضافة وسوم إلى %(counter)s صور"
182
+ msgstr[4] "إضافة وسوم إلى %(counter)s صورة"
183
+ msgstr[5] "إضافة وسوم إلى %(counter)s صورة"
184
+
185
+ msgid "Add tags to images"
186
+ msgstr "إضافة وسوم إلى الصور"
187
+
188
+ msgid "Are you sure you want to tag the following image?"
189
+ msgid_plural "Are you sure you want to tag the following images?"
190
+ msgstr[0] "هل أنت متأكد من رغبتك في وضع وسوم على الصورة التالية؟"
191
+ msgstr[1] "هل أنت متأكد من رغبتك في وضع وسوم على الصورة التالية؟"
192
+ msgstr[2] "هل أنت متأكد من رغبتك في وضع وسوم على الصورتين التاليتين؟"
193
+ msgstr[3] "هل أنت متأكد من رغبتك في وضع وسوم على الصور التالية؟"
194
+ msgstr[4] "هل أنت متأكد من رغبتك في وضع وسوم على الصور التالية؟"
195
+ msgstr[5] "هل أنت متأكد من رغبتك في وضع وسوم على الصور التالية؟"
196
+
197
+ msgid "You don't have permission to add tags to this image"
198
+ msgid_plural "You don't have permission to add tags to these images"
199
+ msgstr[0] "ليس لديك الصلاحية لإضافة وسوم لهذه الصورة"
200
+ msgstr[1] "ليس لديك الصلاحية لإضافة وسوم لهذه الصورة"
201
+ msgstr[2] "ليس لديك الصلاحية لإضافة وسوم لهاتين الصورتين"
202
+ msgstr[3] "ليس لديك الصلاحية لإضافة وسوم لهذه الصور"
203
+ msgstr[4] "ليس لديك الصلاحية لإضافة وسوم لهذه الصور"
204
+ msgstr[5] "ليس لديك الصلاحية لإضافة وسوم لهذه الصور"
205
+
206
+ msgid "Yes, add"
207
+ msgstr "نعم، أضف"
208
+
209
+ msgid "No, don't add"
210
+ msgstr "لا، لا تُضف"
211
+
212
+ #, python-format
213
+ msgid "Add 1 image to new collection"
214
+ msgid_plural "Add %(counter)s images to new collection"
215
+ msgstr[0] "إضافة صورة واحدة إلى مجموعة جديدة"
216
+ msgstr[1] "إضافة صورة واحدة إلى مجموعة جديدة"
217
+ msgstr[2] "إضافة صورتين إلى مجموعة جديدة"
218
+ msgstr[3] "إضافة %(counter)s صور إلى مجموعة جديدة"
219
+ msgstr[4] "إضافة %(counter)s صورة إلى مجموعة جديدة"
220
+ msgstr[5] "إضافة %(counter)s صورة إلى مجموعة جديدة"
221
+
222
+ msgid "Add images to collection"
223
+ msgstr "إضافة الصور إلى المجموعة"
224
+
225
+ msgid ""
226
+ "Are you sure you want to add the following image to the selected collection?"
227
+ msgid_plural ""
228
+ "Are you sure you want to add the following images to the selected collection?"
229
+ msgstr[0] "هل أنت متأكد من رغبتك في إضافة الصورة التالية إلى المجموعة المحددة؟"
230
+ msgstr[1] "هل أنت متأكد من رغبتك في إضافة الصورة التالية إلى المجموعة المحددة؟"
231
+ msgstr[2] ""
232
+ "هل أنت متأكد من رغبتك في إضافة الصورتين التاليتين إلى المجموعة المحددة؟"
233
+ msgstr[3] "هل أنت متأكد من رغبتك في إضافة الصور التالية إلى المجموعة المحددة؟"
234
+ msgstr[4] "هل أنت متأكد من رغبتك في إضافة الصور التالية إلى المجموعة المحددة؟"
235
+ msgstr[5] "هل أنت متأكد من رغبتك في إضافة الصور التالية إلى المجموعة المحددة؟"
236
+
237
+ msgid "You don't have permission to add this image to a collection"
238
+ msgid_plural "You don't have permission to add these images to a collection"
239
+ msgstr[0] "ليس لديك الصلاحية لإضافة هذه الصورة إلى مجموعة"
240
+ msgstr[1] "ليس لديك الصلاحية لإضافة هذه الصورة إلى مجموعة"
241
+ msgstr[2] "ليس لديك الصلاحية لإضافة هاتين الصورتين إلى مجموعة"
242
+ msgstr[3] "ليس لديك الصلاحية لإضافة هذه الصور إلى مجموعة"
243
+ msgstr[4] "ليس لديك الصلاحية لإضافة هذه الصور إلى مجموعة"
244
+ msgstr[5] "ليس لديك الصلاحية لإضافة هذه الصور إلى مجموعة"
245
+
246
+ #, python-format
247
+ msgid "Delete 1 image"
248
+ msgid_plural "Delete %(counter)s images"
249
+ msgstr[0] "حذف صورة واحدة"
250
+ msgstr[1] "حذف صورة واحدة"
251
+ msgstr[2] "حذف صورتين"
252
+ msgstr[3] "حذف %(counter)s صور"
253
+ msgstr[4] "حذف %(counter)s صورة"
254
+ msgstr[5] "حذف %(counter)s صورة"
255
+
256
+ msgid "Delete images"
257
+ msgstr "حذف الصور"
258
+
146
259
  msgid "Are you sure you want to delete this image?"
147
260
  msgid_plural "Are you sure you want to delete these images?"
148
- msgstr[0] "هل أنت متأكد من حذف هذه الصورة؟"
149
- msgstr[1] "هل أنت متأكد من حذف هذه الصورة؟"
150
- msgstr[2] "هل أنت متأكد من حذف هاتين الصورتين؟"
151
- msgstr[3] "هل أنت متأكد من حذف هذه الصور؟"
152
- msgstr[4] "هل أنت متأكد من حذف هذه الصور؟"
153
- msgstr[5] "هل أنت متأكد من حذف هذه الصور؟"
261
+ msgstr[0] "هل أنت متأكد من رغبتك في حذف هذه الصورة؟"
262
+ msgstr[1] "هل أنت متأكد من رغبتك في حذف هذه الصورة؟"
263
+ msgstr[2] "هل أنت متأكد من رغبتك في حذف هاتين الصورتين؟"
264
+ msgstr[3] "هل أنت متأكد من رغبتك في حذف هذه الصور؟"
265
+ msgstr[4] "هل أنت متأكد من رغبتك في حذف هذه الصور؟"
266
+ msgstr[5] "هل أنت متأكد من رغبتك في حذف هذه الصور؟"
154
267
 
155
268
  #, python-format
156
269
  msgid "Used %(usage_count)s time"
157
270
  msgid_plural "Used %(usage_count)s times"
158
- msgstr[0] "تم استخدامه %(usage_count)sمرة"
159
- msgstr[1] "تم استخدامه %(usage_count)s مرة"
160
- msgstr[2] "تم استخدامه %(usage_count)s مرة"
161
- msgstr[3] "تم استخدامه %(usage_count)s مرة"
162
- msgstr[4] "تم استخدامه %(usage_count)s مرة"
163
- msgstr[5] "تم استخدامه %(usage_count)s مرة"
271
+ msgstr[0] "مستخدم %(usage_count)s مرة"
272
+ msgstr[1] "مستخدم %(usage_count)s مرة"
273
+ msgstr[2] "مستخدم %(usage_count)s مرتين"
274
+ msgstr[3] "مستخدم %(usage_count)s مرات"
275
+ msgstr[4] "مستخدم %(usage_count)s مرة"
276
+ msgstr[5] "مستخدم %(usage_count)s مرة"
277
+
278
+ msgid "You don't have permission to delete this image"
279
+ msgid_plural "You don't have permission to delete these images"
280
+ msgstr[0] "ليس لديك الصلاحية لحذف هذه الصورة"
281
+ msgstr[1] "ليس لديك الصلاحية لحذف هذه الصورة"
282
+ msgstr[2] "ليس لديك الصلاحية لحذف هاتين الصورتين"
283
+ msgstr[3] "ليس لديك الصلاحية لحذف هذه الصور"
284
+ msgstr[4] "ليس لديك الصلاحية لحذف هذه الصور"
285
+ msgstr[5] "ليس لديك الصلاحية لحذف هذه الصور"
164
286
 
165
287
  msgid "Yes, delete"
166
- msgstr "نعم احذف"
288
+ msgstr "نعم، احذف"
167
289
 
168
290
  msgid "No, don't delete"
169
- msgstr "لا, لا تذف"
291
+ msgstr "لا، لا تحذف"
170
292
 
171
293
  msgid "Popular tags"
172
- msgstr "علامات دالة شائعة"
294
+ msgstr "الوسوم الشائعة"
295
+
296
+ msgid ""
297
+ "Upload successful. However, your new image seems to be a duplicate of an "
298
+ "existing image. You may delete it if it wasn't required."
299
+ msgstr ""
300
+ "تم الرفع بنجاح. لكن يبدو أن صورتك الجديدة مكررة لصورة موجودة. يمكنك حذفها "
301
+ "إذا لم تكن مطلوبة."
302
+
303
+ msgid "Existing"
304
+ msgstr "موجود"
173
305
 
174
306
  msgid "New"
175
307
  msgstr "جديد"
176
308
 
309
+ msgid "Use new image"
310
+ msgstr "استخدم الصورة الجديدة"
311
+
312
+ msgid "Use existing and delete new"
313
+ msgstr "استخدم الموجود واحذف الجديد"
314
+
177
315
  msgid "Latest images"
178
- msgstr "احد الصور"
316
+ msgstr "أحدث الصور"
179
317
 
180
318
  #, python-format
181
319
  msgid "Select %(title)s"
182
- msgstr "إختر %(title)s"
320
+ msgstr "تحديد %(title)s"
321
+
322
+ msgid "You haven't uploaded any images in this collection."
323
+ msgstr "لم تقم برفع أي صور في هذه المجموعة."
324
+
325
+ msgid "You haven't uploaded any images."
326
+ msgstr "لم تقم برفع أي صور."
327
+
328
+ msgid ""
329
+ "Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
330
+ "trigger>upload one now</a>?"
331
+ msgstr ""
332
+ "لماذا لا <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
333
+ "trigger>ترفع واحدة الآن</a>؟"
183
334
 
184
335
  msgid "Choose a format"
185
- msgstr "اختر شكلا"
336
+ msgstr "اختر تنسيقًا"
186
337
 
187
338
  msgid "Insert image"
188
- msgstr "أدخل صورة"
339
+ msgstr "إدراج صورة"
340
+
341
+ #, python-format
342
+ msgid ""
343
+ "%(total)s Image <span class=\"w-sr-only\">created in %(site_name)s</span>"
344
+ msgid_plural ""
345
+ "%(total)s Images <span class=\"w-sr-only\">created in %(site_name)s</span>"
346
+ msgstr[0] ""
347
+ "%(total)s صورة <span class=\"w-sr-only\">تم إنشاؤها في %(site_name)s</span>"
348
+ msgstr[1] ""
349
+ "%(total)s صورة <span class=\"w-sr-only\">تم إنشاؤها في %(site_name)s</span>"
350
+ msgstr[2] ""
351
+ "%(total)s صورتين <span class=\"w-sr-only\">تم إنشاؤهما في %(site_name)s</"
352
+ "span>"
353
+ msgstr[3] ""
354
+ "%(total)s صورة <span class=\"w-sr-only\">تم إنشاؤها في %(site_name)s</span>"
355
+ msgstr[4] ""
356
+ "%(total)s صورة <span class=\"w-sr-only\">تم إنشاؤها في %(site_name)s</span>"
357
+ msgstr[5] ""
358
+ "%(total)s صورة <span class=\"w-sr-only\">تم إنشاؤها في %(site_name)s</span>"
189
359
 
190
360
  msgid "Change image file:"
191
- msgstr "غير ملف الصورة"
361
+ msgstr "تغيير ملف الصورة:"
192
362
 
193
363
  msgid "Add an image"
194
- msgstr "أضف صورة"
364
+ msgstr "إضافة صورة"
195
365
 
196
366
  msgid "Uploading…"
197
- msgstr "يتم الرفع…"
367
+ msgstr "جاري الرفع…"
198
368
 
199
369
  msgid "Upload"
200
- msgstr "انقل إلى الحاسوب"
370
+ msgstr "رفع"
371
+
372
+ msgid "Keep new image"
373
+ msgstr "احتفظ بالصورة الجديدة"
374
+
375
+ msgid "Delete new image"
376
+ msgstr "حذف الصورة الجديدة"
377
+
378
+ msgid "Image focal point"
379
+ msgstr "نقطة التركيز للصورة"
201
380
 
202
381
  msgid "URL Generator"
203
- msgstr "مولد URL"
382
+ msgstr "مولد الرابط"
383
+
384
+ msgid "Focal point"
385
+ msgstr "نقطة التركيز"
204
386
 
205
387
  msgid "(optional)"
206
- msgstr "(إختياري)"
388
+ msgstr "(اختياري)"
389
+
390
+ msgid ""
391
+ "To define this image's most important region, drag a box over the image "
392
+ "above."
393
+ msgstr ""
394
+ "لتحديد المنطقة الأكثر أهمية في هذه الصورة، اسحب مربعًا فوق الصورة أعلاه."
207
395
 
208
396
  msgid "Current focal point shown"
209
- msgstr "تظهر نقطة التركز الجارية"
397
+ msgstr "نقطة التركيز الحالية معروضة"
210
398
 
211
399
  msgid "Remove focal area"
212
- msgstr "إزالة المنطقة البؤرية"
400
+ msgstr "إزالة منطقة التركيز"
213
401
 
214
402
  msgid "Max dimensions"
215
- msgstr "أوسع الأيعاد"
403
+ msgstr "الأبعاد القصوى"
216
404
 
217
405
  msgid "Filesize"
218
406
  msgstr "حجم الملف"
@@ -221,60 +409,95 @@ msgid "File not found"
221
409
  msgstr "الملف غير موجود"
222
410
 
223
411
  msgid "Usage"
224
- msgstr "استعمال"
412
+ msgstr "الاستخدام"
413
+
414
+ msgid "Sort by"
415
+ msgstr "ترتيب حسب"
416
+
417
+ msgid "Select all images in listing"
418
+ msgstr "تحديد جميع الصور في القائمة"
225
419
 
226
420
  #, python-format
227
421
  msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
228
- msgstr "عذرًا ، لا توجد صور تطابق \"<em>%(query_string)s</em>\""
422
+ msgstr "عذرًا، لا توجد صور تطابق \"<em>%(query_string)s</em>\""
229
423
 
230
424
  #, python-format
231
425
  msgid ""
232
426
  "You haven't uploaded any images in this collection. Why not <a "
233
427
  "href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
234
428
  msgstr ""
235
- "لم تحمِّل أي صور في هذه المجموعة. لماذا لا <a "
236
- "href=\"%(wagtailimages_add_image_url)s\">تحمل واحد الآن</a>؟"
429
+ "لم تقم برفع أي صور في هذه المجموعة. لماذا لا <a "
430
+ "href=\"%(wagtailimages_add_image_url)s\">ترفع واحدة الآن</a>؟"
237
431
 
238
432
  #, python-format
239
433
  msgid ""
240
434
  "You haven't uploaded any images. Why not <a "
241
435
  "href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
242
436
  msgstr ""
243
- "لم تحمِّل أي صور. لماذا لا <a href=\"%(wagtailimages_add_image_url)s\">تحمل "
244
- "واحد الآن</a>؟"
437
+ "لم تقم برفع أي صور. لماذا لا <a "
438
+ "href=\"%(wagtailimages_add_image_url)s\">ترفع واحدة الآن</a>؟"
245
439
 
246
440
  msgid "Preview"
247
- msgstr "نظر مقدم"
441
+ msgstr "معاينة"
248
442
 
249
443
  msgid "URL"
250
- msgstr "الرابط"
444
+ msgstr "رابط"
445
+
446
+ msgid "Image URL"
447
+ msgstr "رابط الصورة"
448
+
449
+ msgid "Copy URL"
450
+ msgstr "نسخ الرابط"
451
+
452
+ msgid "Copied to clipboard"
453
+ msgstr "تم النسخ إلى الحافظة"
454
+
455
+ msgid "Copying to clipboard failed"
456
+ msgstr "فشل النسخ إلى الحافظة"
251
457
 
252
458
  msgid "Add multiple images"
253
- msgstr "أضف صور غديدة"
459
+ msgstr "إضافة صور متعددة"
254
460
 
255
461
  msgid "Drag and drop images into this area to upload immediately."
256
- msgstr "اسحب صورا وأدخلها في هذه المنطقة لإدخالها في الحاسوب فورا"
462
+ msgstr "اسحب الصور وأسقطها في هذه المنطقة لرفعها فورًا."
257
463
 
258
464
  msgid "Or choose from your computer"
259
- msgstr "أو اختر من حاسوبك"
465
+ msgstr "أو اختر من جهازك"
260
466
 
261
467
  msgid "Add to collection:"
262
468
  msgstr "إضافة إلى المجموعة:"
263
469
 
470
+ msgid ""
471
+ "Please provide an image description to comply with best practices for "
472
+ "accessibility."
473
+ msgstr "الرجاء تقديم وصف للصورة للامتثال لأفضل ممارسات إمكانية الوصول."
474
+
264
475
  msgid ""
265
476
  "Upload successful. Please update this image with a more appropriate title, "
266
477
  "if necessary. You may also delete the image completely if the upload wasn't "
267
478
  "required."
268
479
  msgstr ""
269
- "عملية الإدخال في الحاسوب ناجحة. من فضلك جدد هذه الصورة وعنوان أكثر مناسبة "
270
- "إذا يلزم. ومن الممكن حذق الصورة كاملاإذا لم تكن عملية الإدخال واجبا."
480
+ "تم الرفع بنجاح. الرجاء تحديث هذه الصورة بعنوان أكثر ملاءمة إذا لزم الأمر. "
481
+ "يمكنك أيضًا حذف الصورة تمامًا إذا لم يكن الرفع مطلوبًا."
482
+
483
+ msgid ""
484
+ "Upload successful. However, your new image seems to be a duplicate of this "
485
+ "existing image. You may delete it if it wasn't required."
486
+ msgstr ""
487
+ "تم الرفع بنجاح. لكن يبدو أن صورتك الجديدة مكررة لهذه الصورة الموجودة. يمكنك "
488
+ "حذفها إذا لم تكن مطلوبة."
271
489
 
272
490
  msgid "Sorry, upload failed."
273
- msgstr "متأسف! فشلت عملية الرفع"
491
+ msgstr "عذرًا، فشل الرفع."
274
492
 
275
493
  msgid "Server Error"
276
494
  msgstr "خطأ في الخادم"
277
495
 
496
+ msgid ""
497
+ "Report this error to your website administrator with the following "
498
+ "information:"
499
+ msgstr "أبلغ عن هذا الخطأ لمسؤول موقع الويب الخاص بك بالمعلومات التالية:"
500
+
278
501
  msgid "Image updated."
279
502
  msgstr "تم تحديث الصورة."
280
503
 
@@ -284,8 +507,56 @@ msgstr "أذونات الصور"
284
507
  msgid "Add an image permission"
285
508
  msgstr "إضافة إذن صورة"
286
509
 
510
+ msgid "Tags"
511
+ msgstr "وسوم"
512
+
513
+ msgid "Tag"
514
+ msgstr "وسم"
515
+
516
+ msgid "Add tags to the selected images"
517
+ msgstr "إضافة وسوم إلى الصور المحددة"
518
+
519
+ #, python-format
520
+ msgid "New tags have been added to %(num_parent_objects)d image"
521
+ msgid_plural "New tags have been added to %(num_parent_objects)d images"
522
+ msgstr[0] "تمت إضافة وسوم جديدة إلى صورة واحدة"
523
+ msgstr[1] "تمت إضافة وسوم جديدة إلى صورة واحدة"
524
+ msgstr[2] "تمت إضافة وسوم جديدة إلى صورتين"
525
+ msgstr[3] "تمت إضافة وسوم جديدة إلى %(num_parent_objects)d صور"
526
+ msgstr[4] "تمت إضافة وسوم جديدة إلى %(num_parent_objects)d صورة"
527
+ msgstr[5] "تمت إضافة وسوم جديدة إلى %(num_parent_objects)d صورة"
528
+
529
+ msgid "Add to collection"
530
+ msgstr "إضافة إلى المجموعة"
531
+
532
+ msgid "Add selected images to collection"
533
+ msgstr "إضافة الصور المحددة إلى المجموعة"
534
+
535
+ #, python-format
536
+ msgid "%(num_parent_objects)d image has been added to %(collection)s"
537
+ msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
538
+ msgstr[0] "تمت إضافة صورة واحدة إلى %(collection)s"
539
+ msgstr[1] "تمت إضافة صورة واحدة إلى %(collection)s"
540
+ msgstr[2] "تمت إضافة صورتين إلى %(collection)s"
541
+ msgstr[3] "تمت إضافة %(num_parent_objects)d صور إلى %(collection)s"
542
+ msgstr[4] "تمت إضافة %(num_parent_objects)d صورة إلى %(collection)s"
543
+ msgstr[5] "تمت إضافة %(num_parent_objects)d صورة إلى %(collection)s"
544
+
287
545
  msgid "Delete"
288
- msgstr "احذف"
546
+ msgstr "حذف"
547
+
548
+ msgid "Delete selected images"
549
+ msgstr "حذف الصور المحددة"
550
+
551
+ #, python-format
552
+ msgid "%(num_parent_objects)d image has been deleted"
553
+ msgid_plural "%(num_parent_objects)d images have been deleted"
554
+ msgstr[0] "تم حذف صورة واحدة"
555
+ msgstr[1] "تم حذف صورة واحدة"
556
+ msgstr[2] "تم حذف صورتين"
557
+ msgstr[3] "تم حذف %(num_parent_objects)d صور"
558
+ msgstr[4] "تم حذف %(num_parent_objects)d صورة"
559
+ msgstr[5] "تم حذف %(num_parent_objects)d صورة"
289
560
 
290
561
  msgid "Choose an image"
291
562
  msgstr "اختر صورة"
@@ -294,39 +565,60 @@ msgid "Choose another image"
294
565
  msgstr "اختر صورة أخرى"
295
566
 
296
567
  msgid "Edit this image"
297
- msgstr "حرر هذه الصورة"
568
+ msgstr "تحرير هذه الصورة"
569
+
570
+ msgid "Newest"
571
+ msgstr "الأحدث"
572
+
573
+ msgid "Oldest"
574
+ msgstr "الأقدم"
575
+
576
+ msgid "Title: (A -> Z)"
577
+ msgstr "العنوان: (أ -> ي)"
578
+
579
+ msgid "Title: (Z -> A)"
580
+ msgstr "العنوان: (ي -> أ)"
581
+
582
+ msgid "File size: (low to high)"
583
+ msgstr "حجم الملف: (من صغير إلى كبير)"
584
+
585
+ msgid "File size: (high to low)"
586
+ msgstr "حجم الملف: (من كبير إلى صغير)"
298
587
 
299
588
  msgid "Images"
300
- msgstr "صور"
589
+ msgstr "الصور"
301
590
 
302
591
  msgid "The image could not be saved due to errors."
303
- msgstr "حفظ الصورة مستحيل بسبب أحطاء"
592
+ msgstr "تعذر حفظ الصورة بسبب أخطاء."
304
593
 
305
594
  #, python-format
306
595
  msgid "Image '%(image_title)s' updated."
307
- msgstr "تم تحديث الصورة %(image_title)s."
596
+ msgstr "تم تحديث الصورة '%(image_title)s'."
308
597
 
309
598
  msgid ""
310
599
  "The source image file could not be found. Please change the source or delete "
311
600
  "the image."
312
- msgstr "الصورة الأصلية غير موجودة.. من فضلك غير الأصل أو احذف الصورة"
601
+ msgstr "تعذر العثور على ملف الصورة المصدر. الرجاء تغيير المصدر أو حذف الصورة."
602
+
603
+ msgid "Generate URL"
604
+ msgstr "إنشاء رابط"
313
605
 
314
606
  msgid "Delete image"
315
- msgstr "احذف صورة"
607
+ msgstr "حذف صورة"
316
608
 
317
609
  #, python-format
318
610
  msgid "Image '%(image_title)s' deleted."
319
- msgstr "الصورة \"%(image_title)s\" محذوفة."
611
+ msgstr "تم حذف الصورة '%(image_title)s'."
320
612
 
321
613
  msgid "The image could not be created due to errors."
322
- msgstr "إنشاء الصورة مستخيل بسبب أخطاء"
614
+ msgstr "تعذر إنشاء الصورة بسبب أخطاء."
323
615
 
324
616
  #, python-format
325
617
  msgid "Image '%(image_title)s' added."
326
- msgstr "تمت إضافة صورة '%(image_title)s'."
618
+ msgstr "تمت إضافة الصورة '%(image_title)s'."
327
619
 
328
620
  msgid "Add images"
329
- msgstr "أضف صور"
621
+ msgstr "إضافة صور"
330
622
 
331
623
  msgid "Image"
332
624
  msgstr "صورة"
@@ -334,12 +626,12 @@ msgstr "صورة"
334
626
  #, python-format
335
627
  msgid "%(count)s image"
336
628
  msgid_plural "%(count)s images"
337
- msgstr[0] "صورة %(count)s"
338
- msgstr[1] "صورة %(count)s"
339
- msgstr[2] "صور %(count)s"
340
- msgstr[3] "صورة %(count)s"
341
- msgstr[4] "صور %(count)s"
342
- msgstr[5] "صور %(count)s"
629
+ msgstr[0] "%(count)s صورة"
630
+ msgstr[1] "%(count)s صورة"
631
+ msgstr[2] "%(count)s صورتين"
632
+ msgstr[3] "%(count)s صورة"
633
+ msgstr[4] "%(count)s صورة"
634
+ msgstr[5] "%(count)s صورة"
343
635
 
344
636
  msgid "Change image"
345
- msgstr "تغير الصورة"
637
+ msgstr "تغيير الصورة"