decidim-core 0.23.2 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-core might be problematic. Click here for more details.

Files changed (468) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/images/decidim/icons.svg +1 -1
  4. data/app/assets/javascripts/decidim.js.es6 +2 -0
  5. data/app/assets/javascripts/decidim/core/bundle.js +1 -1
  6. data/app/assets/javascripts/decidim/core/bundle.js.map +1 -1
  7. data/app/assets/javascripts/decidim/editor.js.es6 +15 -4
  8. data/app/assets/javascripts/decidim/editor/history_override.js.es6 +117 -0
  9. data/app/assets/javascripts/decidim/editor/linebreak_module.js.es6 +83 -0
  10. data/app/assets/javascripts/decidim/editor/modified_backspace_offset1.js.es6 +98 -0
  11. data/app/assets/javascripts/decidim/editor/modified_backspace_offset_any.js.es6 +48 -0
  12. data/app/assets/javascripts/decidim/editor/modified_backspace_utils.js.es6 +31 -0
  13. data/app/assets/javascripts/decidim/editor/modified_enter.js.es6 +118 -0
  14. data/app/assets/javascripts/decidim/form_filter.component.js.es6 +25 -0
  15. data/app/assets/javascripts/decidim/gallery.js.es6 +5 -0
  16. data/app/assets/javascripts/decidim/geocoding/attach_input.js.es6 +41 -4
  17. data/app/assets/javascripts/decidim/input_character_counter.js.es6 +6 -1
  18. data/app/assets/javascripts/decidim/map/controller/markers.js.es6 +40 -10
  19. data/app/assets/javascripts/decidim/session_timeouter.js.es6 +78 -0
  20. data/app/assets/stylesheets/decidim/_variables.scss +9 -0
  21. data/app/assets/stylesheets/decidim/email.scss +14 -2
  22. data/app/assets/stylesheets/decidim/extras/_external-links.scss +0 -1
  23. data/app/assets/stylesheets/decidim/extras/_process_stats.scss +1 -1
  24. data/app/assets/stylesheets/decidim/extras/_results-per-page.scss +1 -0
  25. data/app/assets/stylesheets/decidim/layouts/_home.scss +5 -0
  26. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +2 -2
  27. data/app/assets/stylesheets/decidim/modules/_buttons.scss +2 -2
  28. data/app/assets/stylesheets/decidim/modules/_cards.scss +18 -1
  29. data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +1 -1
  30. data/app/assets/stylesheets/decidim/modules/_comments.scss +5 -1
  31. data/app/assets/stylesheets/decidim/modules/_conference-speaker.scss +4 -3
  32. data/app/assets/stylesheets/decidim/modules/_data-picker.scss +7 -0
  33. data/app/assets/stylesheets/decidim/modules/_extra.scss +4 -0
  34. data/app/assets/stylesheets/decidim/modules/_forms.scss +4 -0
  35. data/app/assets/stylesheets/decidim/modules/_loading-spinner.scss +34 -0
  36. data/app/assets/stylesheets/decidim/modules/_modules.scss +1 -1
  37. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +1 -1
  38. data/app/assets/stylesheets/decidim/modules/_reveal.scss +6 -0
  39. data/app/assets/stylesheets/decidim/modules/_signup.scss +1 -0
  40. data/app/assets/stylesheets/decidim/modules/{_process-stats.scss → _space-stats.scss} +1 -1
  41. data/app/cells/decidim/activity/show.erb +1 -1
  42. data/app/cells/decidim/activity_cell.rb +17 -8
  43. data/app/cells/decidim/address/details.erb +5 -5
  44. data/app/cells/decidim/address_cell.rb +21 -0
  45. data/app/cells/decidim/announcement/show.erb +4 -4
  46. data/app/cells/decidim/announcement_cell.rb +43 -8
  47. data/app/cells/decidim/author/flag_user.erb +10 -0
  48. data/app/cells/decidim/author/profile_minicard.erb +1 -1
  49. data/app/cells/decidim/author_cell.rb +9 -1
  50. data/app/cells/decidim/card_m/top.erb +1 -1
  51. data/app/cells/decidim/card_m_cell.rb +1 -1
  52. data/app/cells/decidim/content_blocks/cta/show.erb +14 -0
  53. data/app/cells/decidim/content_blocks/cta_cell.rb +35 -0
  54. data/app/cells/decidim/content_blocks/cta_settings_form/show.erb +9 -0
  55. data/app/cells/decidim/content_blocks/cta_settings_form_cell.rb +13 -0
  56. data/app/cells/decidim/content_blocks/hero_cell.rb +14 -0
  57. data/app/cells/decidim/content_blocks/highlighted_elements/elements.erb +0 -0
  58. data/app/cells/decidim/content_blocks/highlighted_elements/heading.erb +0 -0
  59. data/app/cells/decidim/content_blocks/highlighted_elements/show.erb +4 -0
  60. data/app/cells/decidim/content_blocks/highlighted_elements_cell.rb +51 -0
  61. data/app/cells/decidim/content_blocks/highlighted_elements_settings_form/show.erb +3 -0
  62. data/app/cells/decidim/content_blocks/highlighted_elements_settings_form_cell.rb +28 -0
  63. data/app/cells/decidim/content_blocks/last_activity_cell.rb +11 -0
  64. data/app/cells/decidim/content_blocks/metrics_cell.rb +0 -6
  65. data/app/cells/decidim/content_blocks/stats_cell.rb +0 -6
  66. data/app/cells/decidim/content_blocks/sub_hero/show.erb +3 -1
  67. data/app/cells/decidim/date/show.erb +31 -0
  68. data/app/cells/decidim/date_cell.rb +50 -0
  69. data/app/cells/decidim/endorsement_buttons_cell.rb +3 -3
  70. data/app/cells/decidim/flag_modal/flag_user.erb +24 -0
  71. data/app/cells/decidim/flag_modal/show.erb +24 -0
  72. data/app/cells/decidim/flag_modal_cell.rb +25 -0
  73. data/app/cells/decidim/profile/inaccessible.erb +9 -0
  74. data/app/cells/decidim/profile_cell.rb +9 -1
  75. data/app/cells/decidim/profile_sidebar/show.erb +10 -1
  76. data/app/cells/decidim/profile_sidebar_cell.rb +1 -0
  77. data/app/cells/decidim/reported_content/show.erb +5 -0
  78. data/app/cells/decidim/reported_content_cell.rb +44 -0
  79. data/app/cells/decidim/scopes_picker/scope_picker_prompt.erb +3 -0
  80. data/app/cells/decidim/scopes_picker/scope_picker_values.erb +5 -0
  81. data/app/cells/decidim/scopes_picker/show.erb +14 -0
  82. data/app/cells/decidim/scopes_picker_cell.rb +93 -0
  83. data/app/cells/decidim/tos_page/announcement.erb +1 -1
  84. data/app/cells/decidim/tos_page/form.erb +15 -13
  85. data/app/cells/decidim/tos_page_cell.rb +10 -8
  86. data/app/cells/decidim/translation_bar_cell.rb +1 -1
  87. data/app/cells/decidim/user_conversation/conversation_header.erb +1 -1
  88. data/app/cells/decidim/user_conversations_cell.rb +1 -1
  89. data/app/commands/decidim/attachment_methods.rb +8 -0
  90. data/app/commands/decidim/create_report.rb +11 -1
  91. data/app/commands/decidim/create_user_report.rb +67 -0
  92. data/app/commands/decidim/destroy_account.rb +2 -0
  93. data/app/commands/decidim/gallery_methods.rb +2 -2
  94. data/app/commands/decidim/multiple_attachments_methods.rb +14 -10
  95. data/app/commands/decidim/search.rb +5 -2
  96. data/app/commands/decidim/update_notifications_settings.rb +1 -0
  97. data/app/commands/decidim/update_user_group.rb +1 -0
  98. data/app/controllers/concerns/decidim/devise_controllers.rb +1 -0
  99. data/app/controllers/concerns/decidim/flaggable.rb +5 -1
  100. data/app/controllers/concerns/decidim/force_authentication.rb +11 -3
  101. data/app/controllers/concerns/decidim/locale_switcher.rb +5 -0
  102. data/app/controllers/concerns/decidim/needs_permission.rb +7 -1
  103. data/app/controllers/concerns/decidim/orderable.rb +3 -1
  104. data/app/controllers/concerns/decidim/paginable.rb +8 -1
  105. data/app/controllers/concerns/decidim/user_blocked_checker.rb +26 -0
  106. data/app/controllers/decidim/application_controller.rb +22 -0
  107. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +3 -1
  108. data/app/controllers/decidim/devise/sessions_controller.rb +10 -6
  109. data/app/controllers/decidim/errors_controller.rb +1 -1
  110. data/app/controllers/decidim/locales_controller.rb +1 -1
  111. data/app/controllers/decidim/profiles_controller.rb +6 -0
  112. data/app/controllers/decidim/report_users_controller.rb +42 -0
  113. data/app/controllers/decidim/scopes_controller.rb +19 -10
  114. data/app/controllers/decidim/timeouts_controller.rb +28 -0
  115. data/app/controllers/decidim/user_activities_controller.rb +5 -0
  116. data/app/controllers/decidim/user_timeline_controller.rb +1 -0
  117. data/app/events/decidim/demoted_membership_event.rb +2 -2
  118. data/app/events/decidim/invited_to_group_event.rb +2 -2
  119. data/app/events/decidim/join_request_accepted_event.rb +2 -2
  120. data/app/events/decidim/join_request_created_event.rb +2 -2
  121. data/app/events/decidim/join_request_rejected_event.rb +2 -2
  122. data/app/events/decidim/promoted_to_admin_event.rb +2 -2
  123. data/app/events/decidim/removed_from_group_event.rb +2 -2
  124. data/app/forms/decidim/account_form.rb +1 -1
  125. data/app/forms/decidim/attachment_form.rb +1 -0
  126. data/app/forms/decidim/invite_user_form.rb +2 -2
  127. data/app/forms/decidim/messaging/conversation_form.rb +1 -1
  128. data/app/forms/decidim/messaging/message_form.rb +1 -1
  129. data/app/forms/decidim/notifications_settings_form.rb +20 -0
  130. data/app/forms/url_validator.rb +20 -0
  131. data/app/helpers/decidim/action_authorization_helper.rb +2 -0
  132. data/app/helpers/decidim/application_helper.rb +1 -2
  133. data/app/helpers/decidim/cells_helper.rb +6 -0
  134. data/app/helpers/decidim/filters_helper.rb +10 -0
  135. data/app/helpers/decidim/messaging/conversation_helper.rb +11 -1
  136. data/app/helpers/decidim/newsletters_helper.rb +7 -9
  137. data/app/helpers/decidim/scopes_helper.rb +2 -2
  138. data/app/jobs/decidim/block_user_job.rb +11 -0
  139. data/app/jobs/decidim/export_job.rb +2 -2
  140. data/app/jobs/decidim/find_and_update_descendants_job.rb +48 -0
  141. data/app/jobs/decidim/machine_translation_resource_job.rb +3 -0
  142. data/app/jobs/decidim/machine_translation_save_job.rb +29 -0
  143. data/app/jobs/decidim/update_search_indexes_job.rb +11 -0
  144. data/app/jobs/decidim/user_report_job.rb +11 -0
  145. data/app/mailers/concerns/decidim/localised_mailer.rb +4 -2
  146. data/app/mailers/decidim/block_user_mailer.rb +21 -0
  147. data/app/mailers/decidim/notification_mailer.rb +0 -2
  148. data/app/mailers/decidim/reported_mailer.rb +33 -3
  149. data/app/mailers/decidim/user_report_mailer.rb +21 -0
  150. data/app/models/decidim/area.rb +0 -1
  151. data/app/models/decidim/area_type.rb +1 -1
  152. data/app/models/decidim/attachment.rb +3 -2
  153. data/app/models/decidim/attachment_collection.rb +1 -1
  154. data/app/models/decidim/authorization.rb +4 -0
  155. data/app/models/decidim/category.rb +6 -1
  156. data/app/models/decidim/follow.rb +1 -1
  157. data/app/models/decidim/impersonation_log.rb +5 -7
  158. data/app/models/decidim/metric.rb +2 -2
  159. data/app/models/decidim/moderation.rb +12 -0
  160. data/app/models/decidim/organization.rb +5 -1
  161. data/app/models/decidim/scope.rb +5 -2
  162. data/app/models/decidim/scope_type.rb +1 -1
  163. data/app/models/decidim/share_token.rb +1 -1
  164. data/app/models/decidim/static_page.rb +11 -1
  165. data/app/models/decidim/static_page_topic.rb +4 -0
  166. data/app/models/decidim/user.rb +12 -1
  167. data/app/models/decidim/user_base_entity.rb +12 -12
  168. data/app/models/decidim/user_block.rb +10 -0
  169. data/app/models/decidim/user_group.rb +5 -0
  170. data/app/models/decidim/user_moderation.rb +22 -0
  171. data/app/models/decidim/user_report.rb +31 -0
  172. data/app/permissions/decidim/permissions.rb +1 -3
  173. data/app/permissions/decidim/report_user_permissions.rb +13 -0
  174. data/app/presenters/decidim/admin_log/impersonation_log_presenter.rb +39 -0
  175. data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -2
  176. data/app/presenters/decidim/admin_log/user_moderation_presenter.rb +63 -0
  177. data/app/presenters/decidim/admin_log/user_presenter.rb +18 -9
  178. data/app/presenters/decidim/home_stats_presenter.rb +3 -3
  179. data/app/presenters/decidim/log/diff_presenter.rb +4 -3
  180. data/app/presenters/decidim/log/resource_presenter.rb +4 -4
  181. data/app/presenters/decidim/log/user_presenter.rb +1 -1
  182. data/app/presenters/decidim/menu_presenter.rb +12 -7
  183. data/app/presenters/decidim/nil_presenter.rb +0 -2
  184. data/app/presenters/decidim/user_presenter.rb +1 -1
  185. data/app/queries/decidim/metrics/blocked_users_metric_manage.rb +26 -0
  186. data/app/queries/decidim/metrics/followers_metric_manage.rb +3 -0
  187. data/app/queries/decidim/metrics/participants_metric_manage.rb +3 -0
  188. data/app/queries/decidim/metrics/reported_users_metric_manage.rb +26 -0
  189. data/app/queries/decidim/metrics/user_reports_metric_manage.rb +26 -0
  190. data/app/queries/decidim/user_groups/accepted_memberships.rb +1 -1
  191. data/app/queries/decidim/user_groups/admin_memberships.rb +1 -1
  192. data/app/queries/decidim/user_groups/member_memberships.rb +1 -1
  193. data/app/services/decidim/activity_search.rb +1 -3
  194. data/app/services/decidim/base_diff_renderer.rb +1 -1
  195. data/app/services/decidim/data_portability_exporter.rb +1 -0
  196. data/app/services/decidim/email_notification_generator.rb +2 -2
  197. data/app/services/decidim/events_manager.rb +1 -1
  198. data/app/services/decidim/open_data_exporter.rb +36 -7
  199. data/app/services/decidim/zip_stream/zip_stream_writer.rb +3 -3
  200. data/app/uploaders/decidim/application_uploader.rb +22 -2
  201. data/app/uploaders/decidim/attachment_uploader.rb +2 -4
  202. data/app/uploaders/decidim/downloader.rb +9 -0
  203. data/app/uploaders/decidim/image_uploader.rb +9 -21
  204. data/app/uploaders/decidim/open_data_uploader.rb +5 -0
  205. data/app/uploaders/decidim/record_image_uploader.rb +2 -2
  206. data/app/validators/etiquette_validator.rb +0 -7
  207. data/app/validators/uploader_content_type_validator.rb +4 -2
  208. data/app/views/decidim/block_user_mailer/notify.html.erb +7 -0
  209. data/app/views/decidim/devise/confirmations/new.html.erb +1 -1
  210. data/app/views/decidim/devise/registrations/edit.html.erb +1 -1
  211. data/app/views/decidim/devise/unlocks/new.html.erb +1 -1
  212. data/app/views/decidim/messaging/conversations/_conversation.html.erb +1 -1
  213. data/app/views/decidim/messaging/conversations/_messages.html.erb +1 -1
  214. data/app/views/decidim/messaging/conversations/_show.html.erb +4 -4
  215. data/app/views/decidim/notifications_settings/show.html.erb +11 -0
  216. data/app/views/decidim/pages/_standalone.html.erb +3 -1
  217. data/app/views/decidim/reported_mailer/report.html.erb +17 -9
  218. data/app/views/decidim/searches/_filters_small_view.html.erb +1 -1
  219. data/app/views/decidim/shared/_check_boxes_tree.html.erb +3 -3
  220. data/app/views/decidim/shared/_component_announcement.html.erb +2 -2
  221. data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
  222. data/app/views/decidim/user_report_mailer/notify.html.erb +7 -0
  223. data/app/views/decidim/widgets/_data_picker.html.erb +1 -1
  224. data/app/views/layouts/decidim/_application.html.erb +1 -0
  225. data/app/views/layouts/decidim/_js_configuration.html.erb +1 -1
  226. data/app/views/layouts/decidim/_main_footer.html.erb +6 -4
  227. data/app/views/layouts/decidim/_timeout_modal.html.erb +21 -0
  228. data/config/initializers/active_support.rb +7 -0
  229. data/config/initializers/devise.rb +1 -1
  230. data/config/initializers/omniauth.rb +1 -1
  231. data/config/locales/ar.yml +1 -9
  232. data/config/locales/bg.yml +1 -15
  233. data/config/locales/ca.yml +80 -15
  234. data/config/locales/cs.yml +100 -35
  235. data/config/locales/de.yml +83 -18
  236. data/config/locales/el.yml +1 -16
  237. data/config/locales/en.yml +79 -14
  238. data/config/locales/eo.yml +0 -1
  239. data/config/locales/es-MX.yml +77 -12
  240. data/config/locales/es-PY.yml +77 -12
  241. data/config/locales/es.yml +80 -15
  242. data/config/locales/eu.yml +4 -12
  243. data/config/locales/fi-plain.yml +80 -16
  244. data/config/locales/fi.yml +84 -20
  245. data/config/locales/fr-CA.yml +79 -14
  246. data/config/locales/fr.yml +78 -13
  247. data/config/locales/gl.yml +1 -15
  248. data/config/locales/hu.yml +1 -15
  249. data/config/locales/id-ID.yml +1 -9
  250. data/config/locales/is-IS.yml +7 -2
  251. data/config/locales/it.yml +70 -19
  252. data/config/locales/ja.yml +1 -16
  253. data/config/locales/lv.yml +1 -14
  254. data/config/locales/nl.yml +39 -16
  255. data/config/locales/no.yml +12 -18
  256. data/config/locales/pl.yml +100 -25
  257. data/config/locales/pt-BR.yml +1 -9
  258. data/config/locales/pt.yml +1 -16
  259. data/config/locales/ro-RO.yml +80 -13
  260. data/config/locales/ru.yml +5 -16
  261. data/config/locales/sk.yml +2 -16
  262. data/config/locales/sr-CS.yml +0 -11
  263. data/config/locales/sv.yml +5 -16
  264. data/config/locales/tr-TR.yml +64 -15
  265. data/config/locales/uk.yml +5 -13
  266. data/config/locales/zh-CN.yml +1 -16
  267. data/config/routes.rb +9 -4
  268. data/db/migrate/20170713131206_add_admin_to_users.rb +1 -1
  269. data/db/migrate/20180206143340_fix_reference_for_all_resources.rb +2 -0
  270. data/db/migrate/20180314085339_rename_maximum_votes_per_proposal_to_threshold_per_proposal.rb +2 -2
  271. data/db/migrate/20200929171508_remove_show_statistics_from_organizations.rb +7 -0
  272. data/db/migrate/20201010124755_create_decidim_user_moderations.rb +12 -0
  273. data/db/migrate/20201010124756_create_decidim_user_reports.rb +16 -0
  274. data/db/migrate/20201010224433_add_suspension_fields_to_decidim_users.rb +8 -0
  275. data/db/migrate/20201011074641_create_decidim_user_suspensions.rb +14 -0
  276. data/db/migrate/20201011081626_add_current_suspension_id_to_decidim_users.rb +7 -0
  277. data/db/migrate/20201013071533_add_reported_content_to_moderations.rb +7 -0
  278. data/db/migrate/20201019074554_add_locale_to_moderation_reports.rb +7 -0
  279. data/db/migrate/20201127114444_encrypt_authorization_metadatas.rb +35 -0
  280. data/db/migrate/20201128130723_add_allow_public_access_to_static_pages.rb +17 -0
  281. data/db/migrate/20201218144706_update_table_block_user_functionality.rb +8 -0
  282. data/db/migrate/20201218145252_rename_decidim_user_fields_for_block_functionality.rb +9 -0
  283. data/db/migrate/20210208134328_add_email_on_moderations_to_users.rb +7 -0
  284. data/db/migrate/20210302150803_invalidate_all_sessions_for_deleted_users.rb +11 -0
  285. data/db/migrate/20210310120640_add_followable_counter_cache_to_users.rb +16 -0
  286. data/db/seeds.rb +14 -13
  287. data/lib/decidim/amendable.rb +3 -2
  288. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_finder_base.rb +1 -1
  289. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_list.rb +4 -4
  290. data/{app/functions/decidim/core → lib/decidim/api/functions}/component_list_base.rb +3 -1
  291. data/lib/decidim/api/functions/needs_api_default_order.rb +24 -0
  292. data/{app/functions/decidim/core → lib/decidim/api/functions}/needs_api_filter_and_order.rb +0 -0
  293. data/{app/functions/decidim/core → lib/decidim/api/functions}/participatory_space_finder_base.rb +2 -2
  294. data/{app/functions/decidim/core → lib/decidim/api/functions}/participatory_space_list_base.rb +3 -1
  295. data/{app/functions/decidim/core → lib/decidim/api/functions}/user_entity_finder.rb +1 -4
  296. data/{app/functions/decidim/core → lib/decidim/api/functions}/user_entity_list.rb +1 -3
  297. data/{app/types/decidim/core → lib/decidim/api/input_filters}/base_input_filter.rb +0 -0
  298. data/{app/types/decidim/core → lib/decidim/api/input_filters}/component_input_filter.rb +20 -22
  299. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_hastaggable_input_filter.rb +1 -1
  300. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_localized_input_filter.rb +3 -3
  301. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_publishable_input_filter.rb +6 -6
  302. data/{app/types/decidim/core → lib/decidim/api/input_filters}/has_timestamp_input_filter.rb +12 -12
  303. data/{app/types/decidim/core → lib/decidim/api/input_filters}/participatory_space_input_filter.rb +0 -1
  304. data/lib/decidim/api/input_filters/user_entity_input_filter.rb +89 -0
  305. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/base_input_sort.rb +3 -2
  306. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/component_input_sort.rb +10 -11
  307. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_endorsable_input_sort.rb +2 -4
  308. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_localized_input_sort.rb +3 -3
  309. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/has_publishable_input_sort.rb +1 -1
  310. data/lib/decidim/api/input_sorts/has_timestamp_input_sort.rb +12 -0
  311. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/participatory_space_input_sort.rb +1 -1
  312. data/{app/types/decidim/core → lib/decidim/api/input_sorts}/user_entity_input_sort.rb +4 -4
  313. data/lib/decidim/api/{amendable_entity_interface.rb → interfaces/amendable_entity_interface.rb} +5 -5
  314. data/lib/decidim/api/interfaces/amendable_interface.rb +17 -0
  315. data/lib/decidim/api/{attachable_interface.rb → interfaces/attachable_interface.rb} +3 -3
  316. data/lib/decidim/api/interfaces/author_interface.rb +32 -0
  317. data/lib/decidim/api/interfaces/authorable_interface.rb +23 -0
  318. data/lib/decidim/api/{categorizable_interface.rb → interfaces/categorizable_interface.rb} +3 -3
  319. data/lib/decidim/api/interfaces/coauthorable_interface.rb +30 -0
  320. data/lib/decidim/api/interfaces/component_interface.rb +22 -0
  321. data/lib/decidim/api/interfaces/endorsable_interface.rb +19 -0
  322. data/lib/decidim/api/{fingerprint_interface.rb → interfaces/fingerprint_interface.rb} +3 -3
  323. data/lib/decidim/api/interfaces/participatory_space_interface.rb +48 -0
  324. data/lib/decidim/api/interfaces/participatory_space_resourceable_interface.rb +25 -0
  325. data/lib/decidim/api/{scopable_interface.rb → interfaces/scopable_interface.rb} +3 -3
  326. data/lib/decidim/api/interfaces/timestamps_interface.rb +15 -0
  327. data/lib/decidim/api/interfaces/traceable_interface.rb +14 -0
  328. data/lib/decidim/api/scalars/date_time_type.rb +17 -0
  329. data/lib/decidim/api/scalars/date_type.rb +17 -0
  330. data/lib/decidim/api/types/amendment_type.rb +19 -0
  331. data/lib/decidim/api/types/area_api_type.rb +16 -0
  332. data/lib/decidim/api/types/area_type_type.rb +13 -0
  333. data/lib/decidim/api/types/attachment_type.rb +13 -0
  334. data/lib/decidim/api/types/category_type.rb +14 -0
  335. data/{app/types/decidim/core → lib/decidim/api/types}/component_type.rb +2 -4
  336. data/lib/decidim/api/types/coordinates_type.rb +21 -0
  337. data/lib/decidim/api/types/decidim_type.rb +13 -0
  338. data/lib/decidim/api/types/fingerprint_type.rb +12 -0
  339. data/lib/decidim/api/types/hashtag_type.rb +13 -0
  340. data/lib/decidim/api/types/localized_string_type.rb +13 -0
  341. data/lib/decidim/api/types/metric_history_type.rb +18 -0
  342. data/lib/decidim/api/types/metric_type.rb +13 -0
  343. data/lib/decidim/api/types/organization_type.rb +17 -0
  344. data/lib/decidim/api/types/participatory_space_link_type.rb +22 -0
  345. data/lib/decidim/api/types/participatory_space_type.rb +10 -0
  346. data/lib/decidim/api/types/scope_api_type.rb +16 -0
  347. data/lib/decidim/api/types/session_type.rb +22 -0
  348. data/lib/decidim/api/types/statistic_type.rb +20 -0
  349. data/lib/decidim/api/types/trace_version_type.rb +21 -0
  350. data/lib/decidim/api/types/translated_field_type.rb +36 -0
  351. data/lib/decidim/api/types/user_group_type.rb +64 -0
  352. data/lib/decidim/api/types/user_type.rb +67 -0
  353. data/lib/decidim/attachment_attributes.rb +57 -0
  354. data/lib/decidim/attribute_encryptor.rb +9 -1
  355. data/lib/decidim/attributes.rb +1 -0
  356. data/lib/decidim/attributes/clean_string.rb +37 -0
  357. data/lib/decidim/coauthorable.rb +3 -3
  358. data/lib/decidim/component_manifest.rb +17 -0
  359. data/lib/decidim/content_block_manifest.rb +1 -1
  360. data/lib/decidim/content_parsers/hashtag_parser.rb +3 -6
  361. data/lib/decidim/content_parsers/user_group_parser.rb +2 -5
  362. data/lib/decidim/content_parsers/user_parser.rb +2 -5
  363. data/lib/decidim/content_processor.rb +1 -1
  364. data/lib/decidim/content_renderers/hashtag_renderer.rb +3 -6
  365. data/lib/decidim/core.rb +11 -3
  366. data/lib/decidim/core/api.rb +71 -16
  367. data/lib/decidim/core/engine.rb +35 -6
  368. data/lib/decidim/core/test.rb +2 -1
  369. data/lib/decidim/core/test/factories.rb +53 -15
  370. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +1 -1
  371. data/lib/decidim/core/test/shared_examples/amendable/amendment_accepted_event_examples.rb +1 -1
  372. data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +1 -1
  373. data/lib/decidim/core/test/shared_examples/amendable/amendment_rejected_event_examples.rb +1 -1
  374. data/lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb +14 -6
  375. data/lib/decidim/core/test/shared_examples/comments_examples.rb +11 -9
  376. data/lib/decidim/core/test/shared_examples/component_type.rb +1 -1
  377. data/lib/decidim/core/test/shared_examples/controller_render_views.rb +28 -0
  378. data/lib/decidim/core/test/shared_examples/follows_examples.rb +1 -1
  379. data/lib/decidim/core/test/shared_examples/localised_email.rb +8 -0
  380. data/lib/decidim/core/test/shared_examples/logo_email.rb +1 -1
  381. data/lib/decidim/core/test/shared_examples/map_examples.rb +1 -1
  382. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +1 -1
  383. data/lib/decidim/core/test/shared_examples/reportable.rb +8 -0
  384. data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +1 -1
  385. data/lib/decidim/core/test/shared_examples/searchable_participatory_space_examples.rb +2 -3
  386. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +46 -0
  387. data/lib/decidim/core/test/shared_examples/static_pages_examples.rb +43 -0
  388. data/lib/decidim/core/version.rb +1 -1
  389. data/lib/decidim/diffy_extension.rb +2 -2
  390. data/lib/decidim/exporters/csv.rb +3 -2
  391. data/lib/decidim/exporters/export_data.rb +1 -1
  392. data/lib/decidim/faker/internet.rb +17 -0
  393. data/lib/decidim/faker/localized.rb +43 -20
  394. data/lib/decidim/file_validator_humanizer.rb +6 -4
  395. data/lib/decidim/followable.rb +6 -1
  396. data/lib/decidim/form_builder.rb +33 -22
  397. data/lib/decidim/gamification/badge_scorer.rb +3 -2
  398. data/lib/decidim/gamification/base_event.rb +2 -2
  399. data/lib/decidim/geocodable.rb +2 -0
  400. data/lib/decidim/has_category.rb +1 -1
  401. data/lib/decidim/has_private_users.rb +1 -1
  402. data/lib/decidim/importers/import_manifest.rb +36 -0
  403. data/lib/decidim/map/autocomplete.rb +11 -1
  404. data/lib/decidim/metric_operation.rb +5 -6
  405. data/lib/decidim/participatory_space_resourceable.rb +1 -3
  406. data/lib/decidim/query_extensions.rb +90 -69
  407. data/lib/decidim/randomable.rb +6 -1
  408. data/lib/decidim/record_encryptor.rb +149 -0
  409. data/lib/decidim/reportable.rb +26 -0
  410. data/lib/decidim/resource_manifest.rb +3 -0
  411. data/lib/decidim/resourceable.rb +6 -6
  412. data/lib/decidim/scopable.rb +1 -1
  413. data/lib/decidim/search_resource_fields_mapper.rb +1 -1
  414. data/lib/decidim/searchable.rb +9 -0
  415. data/lib/decidim/settings_manifest.rb +2 -1
  416. data/lib/decidim/shareable_with_token.rb +0 -1
  417. data/lib/decidim/translatable_attributes.rb +2 -1
  418. data/lib/decidim/translatable_resource.rb +10 -0
  419. data/lib/decidim/user_reportable.rb +33 -0
  420. data/lib/decidim/view_model.rb +26 -0
  421. data/lib/premailer/adapter/decidim.rb +4 -4
  422. data/lib/tasks/decidim_data_portability_tasks.rake +4 -4
  423. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ko.js +18 -0
  424. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.vi.js +14 -0
  425. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-CN.js +14 -0
  426. data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.zh-TW.js +14 -0
  427. metadata +193 -100
  428. data/app/functions/decidim/core/participatory_space_finder.rb +0 -11
  429. data/app/functions/decidim/core/participatory_space_list.rb +0 -11
  430. data/app/types/decidim/core/amendment_type.rb +0 -26
  431. data/app/types/decidim/core/area_api_type.rb +0 -16
  432. data/app/types/decidim/core/area_type_type.rb +0 -14
  433. data/app/types/decidim/core/attachment_type.rb +0 -14
  434. data/app/types/decidim/core/category_type.rb +0 -16
  435. data/app/types/decidim/core/coordinates_type.rb +0 -19
  436. data/app/types/decidim/core/date_time_type.rb +0 -12
  437. data/app/types/decidim/core/date_type.rb +0 -13
  438. data/app/types/decidim/core/decidim_type.rb +0 -19
  439. data/app/types/decidim/core/fingerprint_type.rb +0 -15
  440. data/app/types/decidim/core/has_timestamp_input_sort.rb +0 -12
  441. data/app/types/decidim/core/hashtag_type.rb +0 -13
  442. data/app/types/decidim/core/localized_string_type.rb +0 -14
  443. data/app/types/decidim/core/metric_history_type.rb +0 -17
  444. data/app/types/decidim/core/metric_type.rb +0 -14
  445. data/app/types/decidim/core/organization_type.rb +0 -20
  446. data/app/types/decidim/core/participatory_space_link_type.rb +0 -24
  447. data/app/types/decidim/core/participatory_space_type.rb +0 -12
  448. data/app/types/decidim/core/scope_api_type.rb +0 -16
  449. data/app/types/decidim/core/session_type.rb +0 -19
  450. data/app/types/decidim/core/statistic_type.rb +0 -22
  451. data/app/types/decidim/core/trace_version_type.rb +0 -29
  452. data/app/types/decidim/core/translated_field_type.rb +0 -45
  453. data/app/types/decidim/core/user_entity_input_filter.rb +0 -81
  454. data/app/types/decidim/core/user_group_type.rb +0 -51
  455. data/app/types/decidim/core/user_type.rb +0 -52
  456. data/app/views/decidim/shared/_announcement.html.erb +0 -1
  457. data/app/views/decidim/shared/_flag_modal.html.erb +0 -20
  458. data/lib/decidim/api/amendable_interface.rb +0 -18
  459. data/lib/decidim/api/author_interface.rb +0 -29
  460. data/lib/decidim/api/authorable_interface.rb +0 -22
  461. data/lib/decidim/api/coauthorable_interface.rb +0 -29
  462. data/lib/decidim/api/component_interface.rb +0 -20
  463. data/lib/decidim/api/endorsable_interface.rb +0 -22
  464. data/lib/decidim/api/participatory_space_interface.rb +0 -47
  465. data/lib/decidim/api/participatory_space_resourceable_interface.rb +0 -21
  466. data/lib/decidim/api/timestamps_interface.rb +0 -21
  467. data/lib/decidim/api/traceable_interface.rb +0 -14
  468. data/lib/decidim/core/test/shared_examples/user_localised_email_examples.rb +0 -25
@@ -79,11 +79,12 @@ es-PY:
79
79
  logo: "Logo oficial de %{organization}"
80
80
  skip_button: Saltar al contenido principal
81
81
  account:
82
+ blocked: Esta cuenta ha sido bloqueada por una violación de los Términos y Condiciones de uso
82
83
  data_portability_export:
83
84
  file_no_exists: El archivo no existe
84
85
  notice: Tus datos están actualmente en progreso. Recibirás un correo electrónico cuando se complete.
85
86
  delete:
86
- alert: Esta acción no se puede deshacer. Si eliminas tu cuenta, no podrás iniciar sesión.
87
+ alert: Esta acción no se puede deshacer. Si eliminas tu cuenta no podrás iniciar sesión con tus credenciales. La eliminación de tu cuenta resultará en la anonimización de tus contribuciones. Aún podrás crear una nueva cuenta, pero estas contribuciones no se asociarán a ella.
87
88
  confirm:
88
89
  close: Cerrar ventana
89
90
  ok: Sí, quiero eliminar mi cuenta
@@ -113,6 +114,8 @@ es-PY:
113
114
  delete: "%{user_name} eliminó el componente %{resource_name} del espacio %{space_name}"
114
115
  publish: "%{user_name} publicó el componente %{resource_name} en el espacio %{space_name}"
115
116
  unpublish: "%{user_name} ha despublicado el componente %{resource_name} del espacio %{space_name}"
117
+ impersonation_log:
118
+ manage: "%{user_name} ha gestionado a %{resource_name} porque %{reason}"
116
119
  moderation:
117
120
  hide: "%{user_name} escondió un recurso de tipo %{resource_type} en el espacio %{space_name}"
118
121
  unreport: "%{user_name} publicó un recurso de tipo %{resource_type} en el espacio %{space_name}"
@@ -129,7 +132,7 @@ es-PY:
129
132
  update: "%{user_name} actualizó la configuración de la organización"
130
133
  participatory_space_private_user:
131
134
  create: "%{user_name} invitados %{resource_name} para ser un usuario privado"
132
- create_via_csv: "%{user_name} ha invitado a %{resource_name} como participante privada"
135
+ create_via_csv: "%{user_name} invitó a %{resource_name} vía CSV a ser un participante privada"
133
136
  delete: "%{user_name} eliminado el usuario %{resource_name} como un usuario privado"
134
137
  scope:
135
138
  create: "%{user_name} creó el ámbito %{resource_name}"
@@ -143,15 +146,21 @@ es-PY:
143
146
  delete: "%{user_name} eliminó la página estática %{resource_name}"
144
147
  update: "%{user_name} actualizó la página estática %{resource_name}"
145
148
  user:
149
+ block: "%{user_name} ha bloqueado a la usuaria %{resource_name}"
146
150
  invite: "%{user_name} invitó al usuario %{resource_name} con el rol: %{role}"
147
151
  officialize: "%{user_name} oficializó al usuario %{resource_name}"
152
+ promote: "%{user_name} ha promocionado a %{resource_name}"
148
153
  remove_from_admin: "%{user_name} eliminó al usuario %{resource_name} con el rol: %{role}"
149
154
  show_email: "%{user_name} ha recuperado el correo electrónico de la participante %{resource_name}"
155
+ transfer: "%{user_name} ha transferido a la participante %{resource_name}"
156
+ unblock: "%{user_name} desoficializó a la usuaria %{resource_name}"
150
157
  unofficialize: "%{user_name} desoficializó al usuario %{resource_name}"
151
158
  user_group:
152
159
  reject: "%{user_name} rechazó la verificación del grupo de usuarios %{resource_name}"
153
160
  verify: "%{user_name} verificó al grupo de usuarios %{resource_name}"
154
161
  verify_via_csv: "%{user_name} verificó el grupo de %{resource_name} usuario a través de un archivo CSV"
162
+ user_moderation:
163
+ unreport: "%{user_name} ha deshecho el reporte %{resource_type} - %{unreported_user_name}"
155
164
  admin_terms_of_use:
156
165
  default_body: "<h2>TÉRMINOS ADMIN DE USO</h2><p>Confiamos en que has recibido la explicación habitual del administrador local del sistema. Generalmente se reduce a estas tres cosas:</p><ol><li>Respetar la privacidad de los demás.</li><li>Piensa antes de hacer clic.</li><li>Un gran poder conlleva una gran responsabilidad.</li></ol>"
157
166
  alert:
@@ -274,7 +283,7 @@ es-PY:
274
283
  dummy_authorization_workflow:
275
284
  name: Flujo de trabajo de autorización de ejemplo
276
285
  errors:
277
- duplicate_authorization: Un usuario ya está autorizado con los mismos datos.
286
+ duplicate_authorization: Ya hay una participante autorizada con los mismos datos. Una administradora se pondrá en contacto contigo para verificar tus datos.
278
287
  expired_at: Caducado el %{timestamp}
279
288
  expires_at: Caduca en %{timestamp}
280
289
  foo_authorization:
@@ -320,6 +329,13 @@ es-PY:
320
329
  title: Confirma tu email
321
330
  show:
322
331
  close_modal: Cerrar el modal
332
+ block_user_mailer:
333
+ notify:
334
+ body_1: Tu cuenta ha sido bloqueda.
335
+ body_2: 'Motivo: %{justification}'
336
+ greetings: Saludos, <br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
337
+ hello: Hola,
338
+ subject: Tu cuenta fue bloqueada por %{organization_name}
323
339
  collapsible_list:
324
340
  hidden_elements_count:
325
341
  one: y %{count} más
@@ -368,6 +384,13 @@ es-PY:
368
384
  dummy_step_translatable_text: Fase de ejemplo traducible
369
385
  contact: Contacto
370
386
  content_blocks:
387
+ cta:
388
+ name: Imagen, texto y botón de acción
389
+ cta_settings_form:
390
+ background_image: Imagen de fondo
391
+ button_text: Texto del botón de acción
392
+ button_url: URL del botón de acción
393
+ description: Descripción
371
394
  footer_sub_hero:
372
395
  name: Banner de sub-hero de pie de página
373
396
  hero:
@@ -377,6 +400,11 @@ es-PY:
377
400
  welcome_text: Texto de bienvenida
378
401
  highlighted_content_banner:
379
402
  name: Banner de contenido resaltado
403
+ highlighted_elements_settings_form:
404
+ orders:
405
+ label: 'Ordenar elementos por:'
406
+ random: Aleatorio
407
+ recent: Más recientes
380
408
  how_to_participate:
381
409
  name: Como participar
382
410
  html:
@@ -401,7 +429,7 @@ es-PY:
401
429
  ready: Listo
402
430
  show:
403
431
  download_data: Descargar los datos
404
- download_data_description: Un archivo con toda la información asociada con la cuenta se enviará a <strong>%{user_email}</strong>
432
+ download_data_description: Se enviará un archivo con toda la información asociada a tu cuenta a <strong>%{user_email}</strong>. Este correo electrónico contendrá un archivo .zip y una contraseña para abrirlo.<br/><br/>Para descomprimir el archivo, necesitarás <a href="https://www.7-zip.org/">7-Zip</a> (para Windows) o <a href="https://www.keka.io/">Keka</a> (para MacOS). Si usas Linux, la mayoría de las veces lo tendrás instalado por defecto. Si no, puedes utilizar <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a> o <a href="https://peazip.github.io">PeaZip</a>).
405
433
  request_data: Solicitar datos
406
434
  datepicker:
407
435
  help_text: 'Formato esperado: %{datepicker_format}'
@@ -411,7 +439,7 @@ es-PY:
411
439
  email_already_exists: Otra cuenta utiliza la misma dirección de correo electrónico
412
440
  new:
413
441
  complete_profile: Completar perfil
414
- nickname_help: Tu alias en %{organization}
442
+ nickname_help: Tu alias en %{organization}. Solo puede contener letras, números, '-' y '_'.
415
443
  sign_up: Por favor, completa tu perfil
416
444
  subtitle: Por favor, rellena el siguiente formulario con el fin de completar la inscripción
417
445
  username_help: Nombre público que aparece en tus mensajes. Con el objetivo de garantizar el anonimato, puede ser cualquier nombre.
@@ -420,7 +448,7 @@ es-PY:
420
448
  already_have_an_account?: '¿Ya tienes una cuenta?'
421
449
  newsletter: Quiero recibir un boletín ocasional con información relevante
422
450
  newsletter_title: Permiso de contacto
423
- nickname_help: Tu alias en %{organization}
451
+ nickname_help: Tu alias en %{organization}. Solo puede contener letras, números, '-' y '_'.
424
452
  password_help: "%{minimun_characters} caracteres mínimos, no debe ser demasiado común (por ejemplo, 123456) y debe ser diferente de tu apodo y tu correo electrónico."
425
453
  sign_in: Entra
426
454
  sign_up: Regístrate
@@ -437,6 +465,8 @@ es-PY:
437
465
  register: Créate una cuenta
438
466
  sign_in_disabled: Puedes acceder con una cuenta externa.
439
467
  sign_up_disabled: El registro está deshabilitado, puede usar un usuario existente para acceder
468
+ user:
469
+ timed_out: Has estado sin actividad durante demasiado tiempo y se te ha cerrado automáticamente la sesión del servicio. Si quieres seguir utilizando el servicio, vuelve a iniciar sesión.
440
470
  shared:
441
471
  newsletter_modal:
442
472
  buttons:
@@ -608,6 +638,14 @@ es-PY:
608
638
  notification_title: El grupo de usuarias %{user_group_name} ha actualizado su perfil perdiendo la verificación. Puedes volver a verificarlo a través del <a href="%{groups_admin_path}">panel de administración</a>.
609
639
  notification_event:
610
640
  notification_title: Un evento ha ocurrido en <a href="%{resource_path}">%{resource_title}</a>.
641
+ reports:
642
+ resource_hidden:
643
+ email_intro: Una administradora eliminó su %{resource_type} porque ha sido reportado como %{report_reasons}.
644
+ email_outro: Has recibido esta notificación porque eres un autora del contenido eliminado.
645
+ email_subject: Tu %{resource_type} ha sido eliminado
646
+ notification_title: |-
647
+ Una administradora eliminó tu %{resource_type} porque ha sido reportado como %{report_reasons}.</br>
648
+ <i>%{resource_content}</i>
611
649
  resource_endorsed:
612
650
  email_intro: '%{endorser_name} %{endorser_nickname}, a quien sigues, acaba de adherirse a una propuesta que puede ser interesante para ti, compruébalo y contribuye:'
613
651
  email_outro: Has recibido esta notificación porque estás siguiendo a %{endorser_nickname}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
@@ -621,7 +659,7 @@ es-PY:
621
659
  notification_title: La página <a href="%{resource_path}">de perfil</a> de %{name} (%{nickname}), a quien estás siguiendo, se ha actualizado.
622
660
  export_mailer:
623
661
  data_portability_export:
624
- click_button: 'Haz clic en el siguiente botón para descargar tus datos. <br/> Tendrás el archivo disponible hasta %{date}.'
662
+ click_button: 'Haz clic en el siguiente enlace para descargar tus datos.<br/>El archivo estará disponible hasta %{date}.<br/>Necesitarás <a href="https://www.7-zip.org/">7-Zip</a> (para Windows), <a href="https://www.keka.io/en/">Keka</a> (para MacOS) o <a href="https://peazip.github.io">PeaZip</a> (para Linux) para abrirlo. Contraseña: %{password}'
625
663
  download: Descargar
626
664
  export:
627
665
  ready: Adjunto encontrará una versión comprimida de su exportación.
@@ -654,7 +692,7 @@ es-PY:
654
692
  create:
655
693
  button: Seguir
656
694
  error: Ha habido un error siguiendo este recurso.
657
- participatory_space: Siguiendo
695
+ participatory_space: Siguiendo <span class="show-for-sr">%{resource_name}</span>
658
696
  destroy:
659
697
  button: Dejar de seguir
660
698
  error: Ha habido un error dejando de seguir este recurso.
@@ -671,7 +709,7 @@ es-PY:
671
709
  file:
672
710
  explanation: 'Instrucciones para el archivo:'
673
711
  message_1: Tiene que ser una imagen o un documento.
674
- message_2: Para las imágenes, utilizar imágenes apaisadas preferiblemente, el servicio recorta la imagen.
712
+ message_2: Para las imágenes, utilizar imágenes preferiblemente apaisadas, el servicio recorta la imagen. Para los archivos CSV, el separador entre columnas debe ser una coma (",")
675
713
  image:
676
714
  explanation: 'Instrucciones para la imagen:'
677
715
  message_1: Preferiblemente una imagen de paisaje que no tenga ningún texto.
@@ -922,7 +960,7 @@ es-PY:
922
960
  error: El mensaje no fue enviado debido a un error
923
961
  metrics:
924
962
  download:
925
- csv: Descargar datos (csv)
963
+ csv: Descargar datos (CSV)
926
964
  followers:
927
965
  description: Número de usuarios que siguen este espacio de participación.
928
966
  object: seguidores
@@ -984,8 +1022,10 @@ es-PY:
984
1022
  no_notifications: No hay notificaciones aún.
985
1023
  notifications_settings:
986
1024
  show:
1025
+ administrators: Administradoras
987
1026
  allow_public_contact: Permitir que cualquiera me envíe un mensaje directo, incluso si no le sigo.
988
1027
  direct_messages: Recibir mensajes directos de cualquiera
1028
+ email_on_moderations: Quiero recibir un correo electrónico cada vez que se reporta algo por moderación.
989
1029
  email_on_notification: Quiero recibir un correo electrónico cada vez que recibo una notificación.
990
1030
  everything_followed: Todo lo que sigo
991
1031
  newsletter_notifications: Quiero recibir boletines informativos
@@ -1081,6 +1121,7 @@ es-PY:
1081
1121
  not_allowed: No puedes ver este contenido
1082
1122
  profile:
1083
1123
  deleted: Usuario eliminado
1124
+ inaccessible_message: '¡Este perfil es inaccesible debido a la violación de Términos y Condiciones de uso!'
1084
1125
  view: Ver
1085
1126
  profiles:
1086
1127
  default_officialization_text_for_user_groups: Este grupo de usuarios se verifica públicamente, tu nombre se ha verificado para que se corresponda con tu nombre real
@@ -1094,6 +1135,7 @@ es-PY:
1094
1135
  groups: Los grupos
1095
1136
  members: Miembros
1096
1137
  officialized: Participante oficial
1138
+ send_private_message: Envia mensaje privado
1097
1139
  timeline: Línea de tiempo
1098
1140
  view_full_profile: Ver todo el perfil
1099
1141
  sidebar:
@@ -1121,13 +1163,15 @@ es-PY:
1121
1163
  report:
1122
1164
  authors: Autoras
1123
1165
  content: Contenido reportado
1166
+ content_original_language: Idioma del contenido original
1124
1167
  date: Reportado el
1125
1168
  details: Detalles
1126
1169
  hello: Hola %{name},
1127
- manage_moderations: Gestionar moderaciones
1170
+ id: ID
1128
1171
  participatory_space: Espacio de participación
1129
1172
  reason: Motivo
1130
1173
  report_html: <p>El siguiente <a href="%{url}">contenido</a> ha sido reportado.</p>
1174
+ see_report: Ver Reporte
1131
1175
  subject: Un contenido ha sido denunciado
1132
1176
  reports:
1133
1177
  create:
@@ -1200,6 +1244,15 @@ es-PY:
1200
1244
  report: Denunciar
1201
1245
  spam: Contiene clickbait, publicidad o estafas.
1202
1246
  title: Denunciar un problema
1247
+ flag_user_modal:
1248
+ already_reported: Este contenido ya ha sido reportado y será revisado por una administradora.
1249
+ close: Cerrar
1250
+ description: '¿Qué es inapropiado de la usuaria?'
1251
+ does_not_belong: Contiene actividad ilegal, amenazas de suicidio, información personal o cualquier otra cosa que creas que no pertenece a %{organization_name}.
1252
+ offensive: Contiene el racismo, el sexismo, los golpes personales, las amenazas de muerte, las peticiones de suicidio o cualquier forma de discurso de odio.
1253
+ report: Reporte
1254
+ spam: Contiene clickbait, publicidad, estafas o robots de guión.
1255
+ title: Reportar usuaria inapropiada
1203
1256
  floating_help:
1204
1257
  close: Cerrar la ayuda
1205
1258
  help: Ayuda
@@ -1275,6 +1328,13 @@ es-PY:
1275
1328
  update:
1276
1329
  error: Hubo un error al actualizar tus intereses.
1277
1330
  success: Sus intereses se han actualizado con éxito.
1331
+ user_report_mailer:
1332
+ notify:
1333
+ body_1: La usuaria %{user} ha sido reportada por %{token}
1334
+ body_2: 'Motivo: %{reason}'
1335
+ greetings: Saludos,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1336
+ hello: Hola %{admin},
1337
+ subject: Una nueva usuaria ha sido reportada en %{organization_name}
1278
1338
  version:
1279
1339
  show:
1280
1340
  back_to_resource: Volver atrás
@@ -1460,7 +1520,7 @@ es-PY:
1460
1520
  messages:
1461
1521
  already_confirmed: ya fue confirmado, intente iniciar sesión
1462
1522
  confirmation_period_expired: necesita ser confirmado dentro de %{period}, por favor solicite uno nuevo
1463
- content_type_whitelist_error: el tipo de archivo no es válido
1523
+ content_type_allowlist_error: el tipo de archivo no es válido
1464
1524
  cycle_detected: el padre de un ámbito no puede ser uno de sus descendientes
1465
1525
  expired: ha expirado, solicite uno nuevo
1466
1526
  file_size_is_less_than_or_equal_to: el tamaño del archivo debe ser menor que o igual a %{count}
@@ -1520,6 +1580,11 @@ es-PY:
1520
1580
  instagram: "%{organization} en Instagram"
1521
1581
  twitter: "%{organization} en Twitter"
1522
1582
  youtube: "%{organization} en YouTube"
1583
+ timeout_modal:
1584
+ body: Has estado sin actividad durante %{minutes} minutos. Si sigues estando inactivo, serás desconectado automáticamente por tu propia seguridad.
1585
+ continue_session: Continuar sesión
1586
+ sign_out: Cerrar sesión
1587
+ title: '¿Quieres continuar con la sesión?'
1523
1588
  user_menu:
1524
1589
  account: 'Cuenta de usuario: %{name}'
1525
1590
  admin_dashboard: Tablero de administración
@@ -79,11 +79,12 @@ es:
79
79
  logo: "Logo oficial de %{organization}"
80
80
  skip_button: Saltar al contenido principal
81
81
  account:
82
+ blocked: Esta cuenta ha sido bloqueada por una violación de los Términos y Condiciones de uso
82
83
  data_portability_export:
83
84
  file_no_exists: El archivo no existe
84
85
  notice: La descarga de tus datos está en curso. Recibirás un correo electrónico cuando se complete.
85
86
  delete:
86
- alert: Esta acción no se puede deshacer. Si eliminas tu cuenta, no podrás iniciar sesión.
87
+ alert: Esta acción no se puede deshacer. Si eliminas tu cuenta no podrás iniciar sesión con tus credenciales. La eliminación de tu cuenta resultará en la anonimización de tus contribuciones. Aún podrás crear una nueva cuenta, pero estas contribuciones no se asociarán a ella.
87
88
  confirm:
88
89
  close: Cerrar ventana
89
90
  ok: Sí, quiero eliminar mi cuenta
@@ -113,6 +114,8 @@ es:
113
114
  delete: "%{user_name} eliminó el componente %{resource_name} del espacio %{space_name}"
114
115
  publish: "%{user_name} publicó el componente %{resource_name} en el espacio %{space_name}"
115
116
  unpublish: "%{user_name} ha despublicado el componente %{resource_name} del espacio %{space_name}"
117
+ impersonation_log:
118
+ manage: "%{user_name} ha gestionado a %{resource_name} porque %{reason}"
116
119
  moderation:
117
120
  hide: "%{user_name} ocultó un recurso de tipo %{resource_type} en el espacio %{space_name}"
118
121
  unreport: "%{user_name} deshizo la denuncia de un recurso de tipo %{resource_type} en el espacio %{space_name}"
@@ -129,7 +132,7 @@ es:
129
132
  update: "%{user_name} actualizó la configuración de la organización"
130
133
  participatory_space_private_user:
131
134
  create: "%{user_name} ha invitado a %{resource_name} como participante privada"
132
- create_via_csv: "%{user_name} ha invitado a %{resource_name} como participante privada"
135
+ create_via_csv: "%{user_name} invitó a %{resource_name} vía CSV a ser un participante privada"
133
136
  delete: "%{user_name} ha eliminado %{resource_name} como participante privada"
134
137
  scope:
135
138
  create: "%{user_name} creó el ámbito %{resource_name}"
@@ -143,15 +146,21 @@ es:
143
146
  delete: "%{user_name} eliminó la página estática %{resource_name}"
144
147
  update: "%{user_name} actualizó la página estática %{resource_name}"
145
148
  user:
149
+ block: "%{user_name} ha bloqueado a la usuaria %{resource_name}"
146
150
  invite: "%{user_name} invitó a la participante %{resource_name} con el rol: %{role}"
147
151
  officialize: "%{user_name} oficializó a la participante %{resource_name}"
152
+ promote: "%{user_name} ha promocionado a %{resource_name}"
148
153
  remove_from_admin: "%{user_name} eliminó a la participante %{resource_name} con el rol: %{role}"
149
154
  show_email: "%{user_name} ha recuperado el correo electrónico de la participante %{resource_name}"
155
+ transfer: "%{user_name} ha transferido a la participante %{resource_name}"
156
+ unblock: "%{user_name} desoficializó a la usuaria %{resource_name}"
150
157
  unofficialize: "%{user_name} ha desoficializado a la participante %{resource_name}"
151
158
  user_group:
152
159
  reject: "%{user_name} rechazó la verificación del grupo %{resource_name}"
153
160
  verify: "%{user_name} verificó el grupo %{resource_name}"
154
161
  verify_via_csv: "%{user_name} verificó el grupo %{resource_name} través de un archivo CSV"
162
+ user_moderation:
163
+ unreport: "%{user_name} ha deshecho el reporte %{resource_type} - %{unreported_user_name}"
155
164
  admin_terms_of_use:
156
165
  default_body: "<h2>TÉRMINOS ADMIN DE USO</h2><p>Confiamos en que has recibido la explicación habitual del administrador local del sistema. Generalmente se reduce a estas tres cosas:</p><ol><li>Respetar la privacidad de los demás.</li><li>Piensa antes de hacer clic.</li><li>Un gran poder conlleva una gran responsabilidad.</li></ol>"
157
166
  alert:
@@ -271,7 +280,7 @@ es:
271
280
  dummy_authorization_workflow:
272
281
  name: Flujo de trabajo de autorización de ejemplo
273
282
  errors:
274
- duplicate_authorization: Ya se ha autorizado a una participante con los mismos datos.
283
+ duplicate_authorization: Ya hay una participante autorizada con los mismos datos. Una administradora se pondrá en contacto contigo para verificar tus datos.
275
284
  expired_at: Caducado el %{timestamp}
276
285
  expires_at: Caduca el %{timestamp}
277
286
  foo_authorization:
@@ -317,6 +326,13 @@ es:
317
326
  title: Confirma tu email
318
327
  show:
319
328
  close_modal: Cerrar el modal
329
+ block_user_mailer:
330
+ notify:
331
+ body_1: Tu cuenta ha sido bloqueda.
332
+ body_2: 'Motivo: %{justification}'
333
+ greetings: Saludos, <br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
334
+ hello: Hola,
335
+ subject: Tu cuenta fue bloqueada por %{organization_name}
320
336
  collapsible_list:
321
337
  hidden_elements_count:
322
338
  one: y %{count} más
@@ -365,6 +381,13 @@ es:
365
381
  dummy_step_translatable_text: Fase de ejemplo traducible
366
382
  contact: Contacto
367
383
  content_blocks:
384
+ cta:
385
+ name: Imagen, texto y botón de acción
386
+ cta_settings_form:
387
+ background_image: Imagen de fondo
388
+ button_text: Texto del botón de acción
389
+ button_url: URL del botón de acción
390
+ description: Descripción
368
391
  footer_sub_hero:
369
392
  name: Banner de sub-hero de pie de página
370
393
  hero:
@@ -374,6 +397,11 @@ es:
374
397
  welcome_text: Texto de bienvenida
375
398
  highlighted_content_banner:
376
399
  name: Banner de contenido destacado
400
+ highlighted_elements_settings_form:
401
+ orders:
402
+ label: 'Ordenar elementos por:'
403
+ random: Aleatorio
404
+ recent: Más recientes
377
405
  how_to_participate:
378
406
  name: Cómo participar
379
407
  html:
@@ -398,7 +426,7 @@ es:
398
426
  ready: Listo
399
427
  show:
400
428
  download_data: Descárgate los datos
401
- download_data_description: Un archivo con toda la información asociada con la cuenta se enviará a <strong>%{user_email}</strong>
429
+ download_data_description: Se enviará un archivo con toda la información asociada a tu cuenta a <strong>%{user_email}</strong>. Este correo electrónico contendrá un archivo .zip y una contraseña para abrirlo.<br/><br/>Para descomprimir el archivo, necesitarás <a href="https://www.7-zip.org/">7-Zip</a> (para Windows) o <a href="https://www.keka.io/">Keka</a> (para MacOS). Si usas Linux, la mayoría de las veces lo tendrás instalado por defecto. Si no, puedes utilizar <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a> o <a href="https://peazip.github.io">PeaZip</a>).
402
430
  request_data: Solicita datos
403
431
  datepicker:
404
432
  help_text: 'Formato esperado: %{datepicker_format}'
@@ -408,7 +436,7 @@ es:
408
436
  email_already_exists: Otra cuenta utiliza la misma dirección de correo electrónico
409
437
  new:
410
438
  complete_profile: Completa el perfil
411
- nickname_help: Tu alias en %{organization}
439
+ nickname_help: Tu alias en %{organization}. Solo puede contener letras, números, '-' y '_'.
412
440
  sign_up: Por favor, completa tu perfil
413
441
  subtitle: Por favor, rellena el siguiente formulario para completar la inscripción
414
442
  username_help: Nombre público que aparece en tus aportaciones. Con el objetivo de garantizar el anonimato, puede ser cualquier nombre.
@@ -417,7 +445,7 @@ es:
417
445
  already_have_an_account?: '¿Ya tienes una cuenta?'
418
446
  newsletter: Quiero recibir un boletín ocasional con información relevante
419
447
  newsletter_title: Permiso de contacto
420
- nickname_help: Tu alias en %{organization}
448
+ nickname_help: Tu alias en %{organization}. Solo puede contener letras, números, '-' y '_'.
421
449
  password_help: "%{minimun_characters} caracteres mínimos, no debe ser demasiado común (por ejemplo, 123456) y debe ser diferente de tu apodo y tu correo electrónico."
422
450
  sign_in: Entra
423
451
  sign_up: Regístrate
@@ -434,6 +462,8 @@ es:
434
462
  register: Créate una cuenta
435
463
  sign_in_disabled: Puedes acceder con una cuenta externa
436
464
  sign_up_disabled: El registro está deshabilitado, puedes usar una cuenta existente para acceder
465
+ user:
466
+ timed_out: Has estado sin actividad durante demasiado tiempo y se te ha cerrado automáticamente la sesión del servicio. Si quieres seguir utilizando el servicio, vuelve a iniciar sesión.
437
467
  shared:
438
468
  newsletter_modal:
439
469
  buttons:
@@ -605,11 +635,19 @@ es:
605
635
  notification_title: El grupo %{user_group_name} ha actualizado su perfil perdiendo la verificación. Puedes volver a verificarlo a través del <a href="%{groups_admin_path}">panel de administración</a>.
606
636
  notification_event:
607
637
  notification_title: Se ha producido un evento a <a href="%{resource_path}">%{resource_title}</a>.
638
+ reports:
639
+ resource_hidden:
640
+ email_intro: Una administradora eliminó su %{resource_type} porque ha sido reportado como %{report_reasons}.
641
+ email_outro: Has recibido esta notificación porque eres un autora del contenido eliminado.
642
+ email_subject: Tu %{resource_type} ha sido eliminado
643
+ notification_title: |-
644
+ Una administradora eliminó tu %{resource_type} porque ha sido reportado como %{report_reasons}.</br>
645
+ <i>%{resource_content}</i>
608
646
  resource_endorsed:
609
- email_intro: '%{endorser_name} %{endorser_nickname}, a quien sigues, acaba de adherirse a una propuesta que puede ser interesante para ti, compruébalo y contribuye:'
647
+ email_intro: '%{endorser_name} %{endorser_nickname}, a quien sigues, acaba de adherirse a "%{resource_title}" que puede ser interesante para ti, compruébalo y contribuye:'
610
648
  email_outro: Has recibido esta notificación porque estás siguiendo a %{endorser_nickname}. Puedes dejar de recibir notificaciones siguiendo el enlace anterior.
611
649
  email_subject: "%{endorser_nickname} se ha adherido a una propuesta"
612
- notification_title: <a href="%{endorser_path}">%{endorser_name} %{endorser_nickname}</a> se ha adherido a la propuesta <a href="%{resource_path}">%{resource_title}</a>.
650
+ notification_title: <a href="%{endorser_path}">%{endorser_name} %{endorser_nickname}</a> se ha adherido a la propuesta <a href="%{resource_path}">%{resource_title}</a> (%{resource_type}).
613
651
  users:
614
652
  profile_updated:
615
653
  email_intro: La página <a href="%{resource_url}"> de perfil </a> de %{name} (%{nickname}), a quien estás siguiendo, se ha actualizado.
@@ -618,7 +656,7 @@ es:
618
656
  notification_title: La página <a href="%{resource_path}"> de perfil </a> de %{name} (%{nickname}), a quien estás siguiendo, se ha actualizado.
619
657
  export_mailer:
620
658
  data_portability_export:
621
- click_button: 'Haz clic en el siguiente botón para descargar tus datos. <br/> Tendrás el archivo disponible hasta %{date}. <br/> Necesitarás <a href=''https://www.7-zip.org/''>7-Zip</a> para abrirlo. Contraseña: %{password}'
659
+ click_button: 'Haz clic en el siguiente enlace para descargar tus datos.<br/>El archivo estará disponible hasta %{date}.<br/>Necesitarás <a href="https://www.7-zip.org/">7-Zip</a> (para Windows), <a href="https://www.keka.io/en/">Keka</a> (para MacOS) o <a href="https://peazip.github.io">PeaZip</a> (para Linux) para abrirlo. Contraseña: %{password}'
622
660
  download: Descargar
623
661
  export:
624
662
  ready: Se adjunta una versión comprimida de su exportación.
@@ -651,7 +689,7 @@ es:
651
689
  create:
652
690
  button: Seguir
653
691
  error: Se ha producido un error al seguir este recurso.
654
- participatory_space: Siguiendo
692
+ participatory_space: Siguiendo <span class="show-for-sr">%{resource_name}</span>
655
693
  destroy:
656
694
  button: Dejar de seguir
657
695
  error: Se ha producido un error al dejar de seguir este recurso.
@@ -668,7 +706,7 @@ es:
668
706
  file:
669
707
  explanation: 'Instrucciones para el archivo:'
670
708
  message_1: Tiene que ser una imagen o un documento.
671
- message_2: Para las imágenes, utilizar imágenes apaisadas preferiblemente, el servicio recorta la imagen.
709
+ message_2: Para las imágenes, utilizar imágenes preferiblemente apaisadas, el servicio recorta la imagen. Para los archivos CSV, el separador entre columnas debe ser una coma (",")
672
710
  image:
673
711
  explanation: 'Instrucciones para la imagen:'
674
712
  message_1: Preferiblemente una imagen apaisada que no tenga ningún texto.
@@ -919,7 +957,7 @@ es:
919
957
  error: El mensaje no fue enviado debido a un error
920
958
  metrics:
921
959
  download:
922
- csv: Descargar datos (csv)
960
+ csv: Descargar datos (CSV)
923
961
  followers:
924
962
  description: Número de participantes que siguen este espacio de participación
925
963
  object: seguidoras
@@ -981,8 +1019,10 @@ es:
981
1019
  no_notifications: Aún no hay notificaciones.
982
1020
  notifications_settings:
983
1021
  show:
1022
+ administrators: Administradoras
984
1023
  allow_public_contact: Permitir que cualquiera me envíe un mensaje directo, incluso si no le sigo.
985
1024
  direct_messages: Recibir mensajes directos de cualquiera
1025
+ email_on_moderations: Quiero recibir un correo electrónico cada vez que se reporta algo por moderación.
986
1026
  email_on_notification: Quiero recibir un correo electrónico cada vez que reciba una notificación.
987
1027
  everything_followed: Todo lo que sigo
988
1028
  newsletter_notifications: Quiero recibir boletines informativos
@@ -1013,7 +1053,7 @@ es:
1013
1053
  how_to_participate: '¿Cómo participo en un proceso?'
1014
1054
  meetings: Encuentros
1015
1055
  meetings_explanation: Averigua dónde y cuándo puedes participar en encuentros públicos.
1016
- more_info: Más información
1056
+ more_info: Más información sobre %{resource_name}
1017
1057
  proposals: Propuestas
1018
1058
  proposals_explanation: Haz propuestas, apoya las existentes y promueve los cambios que deseas ver.
1019
1059
  footer_sub_hero:
@@ -1078,6 +1118,7 @@ es:
1078
1118
  not_allowed: No tienes permiso para visualizar este contenido
1079
1119
  profile:
1080
1120
  deleted: Participante eliminada
1121
+ inaccessible_message: '¡Este perfil es inaccesible debido a la violación de Términos y Condiciones de uso!'
1081
1122
  view: Ver
1082
1123
  profiles:
1083
1124
  default_officialization_text_for_user_groups: Este grupo está verificado públicamente, su nombre se ha verificado para que se corresponda con su nombre real
@@ -1091,6 +1132,7 @@ es:
1091
1132
  groups: Grupos
1092
1133
  members: Miembros
1093
1134
  officialized: Participante oficial
1135
+ send_private_message: Envia mensaje privado
1094
1136
  timeline: Línea de tiempo
1095
1137
  view_full_profile: Ver el perfil completo
1096
1138
  sidebar:
@@ -1118,13 +1160,15 @@ es:
1118
1160
  report:
1119
1161
  authors: Autoras
1120
1162
  content: Contenido reportado
1163
+ content_original_language: Idioma del contenido original
1121
1164
  date: Reportado el
1122
1165
  details: Detalles
1123
1166
  hello: Hola %{name},
1124
- manage_moderations: Gestiona moderaciones
1167
+ id: ID
1125
1168
  participatory_space: Espacio de participación
1126
1169
  reason: Motivo
1127
1170
  report_html: <p>El siguiente <a href="%{url}">contenido</a> ha sido reportado.</p>
1171
+ see_report: Ver Reporte
1128
1172
  subject: Un contenido ha sido denunciado
1129
1173
  reports:
1130
1174
  create:
@@ -1197,6 +1241,15 @@ es:
1197
1241
  report: Denunciar
1198
1242
  spam: Contiene clickbait, publicidad o estafas.
1199
1243
  title: Reportar contenido inapropiado
1244
+ flag_user_modal:
1245
+ already_reported: Este contenido ya ha sido reportado y será revisado por una administradora.
1246
+ close: Cerrar
1247
+ description: '¿Qué es inapropiado de la usuaria?'
1248
+ does_not_belong: Contiene actividad ilegal, amenazas de suicidio, información personal o cualquier otra cosa que creas que no pertenece a %{organization_name}.
1249
+ offensive: Contiene el racismo, el sexismo, los golpes personales, las amenazas de muerte, las peticiones de suicidio o cualquier forma de discurso de odio.
1250
+ report: Reporte
1251
+ spam: Contiene clickbait, publicidad, estafas o robots de guión.
1252
+ title: Reportar usuaria inapropiada
1200
1253
  floating_help:
1201
1254
  close: Cerrar la ayuda
1202
1255
  help: Ayuda
@@ -1272,6 +1325,13 @@ es:
1272
1325
  update:
1273
1326
  error: Se ha producido un error al actualizar tus intereses.
1274
1327
  success: Tus intereses se han actualizado correctamente.
1328
+ user_report_mailer:
1329
+ notify:
1330
+ body_1: La usuaria %{user} ha sido reportada por %{token}
1331
+ body_2: 'Motivo: %{reason}'
1332
+ greetings: Saludos,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1333
+ hello: Hola %{admin},
1334
+ subject: Una nueva usuaria ha sido reportada en %{organization_name}
1275
1335
  version:
1276
1336
  show:
1277
1337
  back_to_resource: Volver atrás
@@ -1456,7 +1516,7 @@ es:
1456
1516
  messages:
1457
1517
  already_confirmed: ya fue confirmado, por favor intenta iniciar sesión
1458
1518
  confirmation_period_expired: se tiene que confirmar dentro de %{period}, por favor solicita uno nuevo
1459
- content_type_whitelist_error: el tipo de archivo no es válido
1519
+ content_type_allowlist_error: el tipo de archivo no es válido
1460
1520
  cycle_detected: uno de los padres de un ámbito no puede ser uno de sus descendientes
1461
1521
  expired: ha expirado, por favor, solicita uno nuevo
1462
1522
  file_size_is_less_than_or_equal_to: el tamaño del archivo debe ser menor que o igual a %{count}
@@ -1516,6 +1576,11 @@ es:
1516
1576
  instagram: "%{organization} en Instagram"
1517
1577
  twitter: "%{organization} en Twitter"
1518
1578
  youtube: "%{organization} en YouTube"
1579
+ timeout_modal:
1580
+ body: Has estado sin actividad durante %{minutes} minutos. Si sigues estando inactivo, serás desconectado automáticamente por tu propia seguridad.
1581
+ continue_session: Continuar sesión
1582
+ sign_out: Cerrar sesión
1583
+ title: '¿Quieres continuar con la sesión?'
1519
1584
  user_menu:
1520
1585
  account: 'Cuenta de usuario: %{name}'
1521
1586
  admin_dashboard: Tablero de administración