decidim-proposals 0.16.1 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/documents/decidim/proposals/participatory_texts/participatory_text.md +52 -0
  3. data/app/assets/documents/decidim/proposals/participatory_texts/participatory_text.odt +0 -0
  4. data/app/cells/decidim/proposals/collaborative_draft_cell.rb +0 -4
  5. data/app/cells/decidim/proposals/participatory_text_proposal_cell.rb +0 -6
  6. data/app/cells/decidim/proposals/proposal_cell.rb +0 -4
  7. data/app/cells/decidim/proposals/proposal_m_cell.rb +5 -1
  8. data/app/commands/decidim/proposals/admin/import_proposals.rb +5 -1
  9. data/app/commands/decidim/proposals/vote_proposal.rb +4 -2
  10. data/app/commands/decidim/proposals/withdraw_proposal.rb +2 -2
  11. data/app/controllers/decidim/proposals/admin/participatory_texts_controller.rb +3 -3
  12. data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +4 -1
  13. data/app/controllers/decidim/proposals/proposals_controller.rb +4 -3
  14. data/app/forms/decidim/proposals/admin/import_participatory_text_form.rb +14 -0
  15. data/app/forms/decidim/proposals/admin/preview_participatory_text_form.rb +1 -1
  16. data/app/forms/decidim/proposals/admin/proposals_import_form.rb +1 -0
  17. data/app/helpers/decidim/proposals/participatory_texts_helper.rb +14 -0
  18. data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +13 -0
  19. data/app/models/decidim/proposals/collaborative_draft.rb +5 -0
  20. data/app/permissions/decidim/proposals/permissions.rb +20 -6
  21. data/app/queries/decidim/proposals/metrics/accepted_proposals_metric_manage.rb +5 -1
  22. data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +2 -2
  23. data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +1 -1
  24. data/app/services/decidim/proposals/proposal_builder.rb +34 -6
  25. data/app/views/decidim/proposals/admin/participatory_texts/new_import.html.erb +1 -1
  26. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +0 -1
  27. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +3 -0
  28. data/app/views/decidim/proposals/collaborative_drafts/_accept_request_access_form.html.erb +1 -1
  29. data/app/views/decidim/proposals/collaborative_drafts/_collaborator_requests.html.erb +1 -1
  30. data/app/views/decidim/proposals/collaborative_drafts/_reject_request_access_form.html.erb +1 -1
  31. data/app/views/decidim/proposals/collaborative_drafts/_wizard_aside.html.erb +16 -0
  32. data/app/views/decidim/proposals/collaborative_drafts/compare.html.erb +1 -1
  33. data/app/views/decidim/proposals/collaborative_drafts/complete.html.erb +1 -1
  34. data/app/views/decidim/proposals/collaborative_drafts/new.html.erb +1 -1
  35. data/app/views/decidim/proposals/proposals/_proposal_preview.html.erb +11 -1
  36. data/app/views/decidim/proposals/proposals/_vote_button.html.erb +1 -1
  37. data/app/views/decidim/proposals/proposals/_wizard_aside.html.erb +5 -3
  38. data/app/views/decidim/proposals/proposals/compare.html.erb +1 -1
  39. data/app/views/decidim/proposals/proposals/participatory_texts/_proposal_vote_button.html.erb +1 -1
  40. data/app/views/decidim/proposals/proposals/show.html.erb +20 -10
  41. data/config/locales/ar-SA.yml +139 -10
  42. data/config/locales/ca.yml +59 -44
  43. data/config/locales/cs-CZ.yml +13 -1
  44. data/config/locales/cs.yml +790 -0
  45. data/config/locales/de.yml +21 -6
  46. data/config/locales/en.yml +111 -95
  47. data/config/locales/es-MX.yml +22 -7
  48. data/config/locales/es-PY.yml +21 -6
  49. data/config/locales/es.yml +77 -62
  50. data/config/locales/eu.yml +25 -10
  51. data/config/locales/fi-pl.yml +15 -3
  52. data/config/locales/fi-plain.yml +766 -0
  53. data/config/locales/fi.yml +85 -70
  54. data/config/locales/fr.yml +21 -6
  55. data/config/locales/gl.yml +21 -6
  56. data/config/locales/hu.yml +22 -7
  57. data/config/locales/id-ID.yml +21 -6
  58. data/config/locales/it.yml +22 -7
  59. data/config/locales/nl.yml +25 -10
  60. data/config/locales/pl.yml +22 -7
  61. data/config/locales/pt-BR.yml +21 -6
  62. data/config/locales/pt.yml +21 -6
  63. data/config/locales/ru.yml +0 -7
  64. data/config/locales/sv.yml +21 -6
  65. data/config/locales/tr-TR.yml +21 -6
  66. data/config/locales/uk.yml +0 -7
  67. data/lib/decidim/content_renderers/proposal_renderer.rb +5 -7
  68. data/lib/decidim/proposals/admin_engine.rb +8 -9
  69. data/lib/decidim/proposals/doc_to_markdown.rb +10 -0
  70. data/lib/decidim/proposals/markdown_to_proposals.rb +15 -1
  71. data/lib/decidim/proposals/version.rb +1 -1
  72. metadata +23 -18
@@ -36,7 +36,7 @@ module Decidim
36
36
  manifest.participatory_spaces.call(@organization).public_spaces
37
37
  end
38
38
  components = Decidim::Component.where(participatory_space: spaces).published
39
- proposals = Decidim::Proposals::Proposal.where(component: components).except_withdrawn
39
+ proposals = Decidim::Proposals::Proposal.where(component: components).except_withdrawn.not_hidden
40
40
  @query = Decidim::Proposals::ProposalVote.joins(proposal: :component)
41
41
  .left_outer_joins(proposal: :category)
42
42
  .where(proposal: proposals)
@@ -23,6 +23,26 @@ module Decidim
23
23
 
24
24
  module_function :create
25
25
 
26
+ # Public: Creates a new Proposal with the authors of the `original_proposal`.
27
+ #
28
+ # attributes - The Hash of attributes to create the Proposal with.
29
+ # action_user - The User to be used as the user who is creating the proposal in the traceability logs.
30
+ # original_proposal - The proposal from which authors will be copied.
31
+ #
32
+ # Returns a Proposal.
33
+ def create_with_authors(attributes:, action_user:, original_proposal:)
34
+ Decidim.traceability.perform_action!(:create, Proposal, action_user, visibility: "all") do
35
+ proposal = Proposal.new(attributes)
36
+ original_proposal.coauthorships.each do |coauthorship|
37
+ proposal.add_coauthor(coauthorship.author, user_group: coauthorship.user_group)
38
+ end
39
+ proposal.save!
40
+ proposal
41
+ end
42
+ end
43
+
44
+ module_function :create_with_authors
45
+
26
46
  # Public: Creates a new Proposal by copying the attributes from another one.
27
47
  #
28
48
  # original_proposal - The Proposal to be used as base to create the new one.
@@ -54,12 +74,20 @@ module Decidim
54
74
  extra_attributes
55
75
  )
56
76
 
57
- proposal = create(
58
- attributes: origin_attributes,
59
- author: author,
60
- user_group_author: user_group_author,
61
- action_user: action_user
62
- )
77
+ proposal = if author.nil?
78
+ create_with_authors(
79
+ attributes: origin_attributes,
80
+ original_proposal: original_proposal,
81
+ action_user: action_user
82
+ )
83
+ else
84
+ create(
85
+ attributes: origin_attributes,
86
+ author: author,
87
+ user_group_author: user_group_author,
88
+ action_user: action_user
89
+ )
90
+ end
63
91
 
64
92
  proposal.link_resources(original_proposal, "copied_from_component") unless skip_link
65
93
  proposal
@@ -21,7 +21,7 @@
21
21
  <div class="grid-x">
22
22
  <div class="cell">
23
23
  <fieldset>
24
- <legend><%= t(".document_legend") %></legend>
24
+ <legend> <%= t(".document_legend", valid_mime_types: mime_types_with_document_examples).html_safe %> </legend>
25
25
  <div class="row column">
26
26
  <%= form.upload :document, optional: false %>
27
27
  </div>
@@ -23,7 +23,6 @@
23
23
  </td>
24
24
  <% end %>
25
25
  <td>
26
- <%= t("decidim/amendment", scope: "activerecord.models", count: 1) if proposal.emendation? %>
27
26
  <strong class="<%= proposal_state_css_class proposal.state %>">
28
27
  <%= t("decidim/amendment", scope: "activerecord.models", count: 1) if proposal.emendation? %>
29
28
  <%= humanize_proposal_state proposal.state %>
@@ -13,6 +13,9 @@
13
13
  <%= f.label t(".select_states") %>
14
14
  <%= f.collection_check_boxes :states, @form.states_collection, :value, :name %>
15
15
  </div>
16
+ <div class="row column">
17
+ <%= f.check_box :keep_authors %>
18
+ </div>
16
19
  <div class="row column">
17
20
  <%= f.check_box :import_proposals %>
18
21
  </div>
@@ -1,4 +1,4 @@
1
- <% if allowed_to?(:edit, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
1
+ <% if allowed_to?(:react_to_request_access, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
2
2
  <%= decidim_form_for(@accept_request_form, url: request_accept_collaborative_draft_path(@collaborative_draft)) do |form| %>
3
3
  <%= form.hidden_field :id, value: @collaborative_draft.id %>
4
4
  <%= form.hidden_field :state, value: @collaborative_draft.state %>
@@ -1,4 +1,4 @@
1
- <% if @collaborative_draft.requesters.presence && allowed_to?(:edit, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
1
+ <% if @collaborative_draft.requesters.presence && allowed_to?(:react_to_request_access, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
2
2
  <div class="card extra">
3
3
  <div class="definition-data__item">
4
4
  <span class="definition-data__title">
@@ -1,4 +1,4 @@
1
- <% if allowed_to?(:edit, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
1
+ <% if allowed_to?(:react_to_request_access, :collaborative_draft, collaborative_draft: @collaborative_draft) %>
2
2
  <%= decidim_form_for(@reject_request_form, url: request_reject_collaborative_draft_path(@collaborative_draft)) do |form| %>
3
3
  <%= form.hidden_field :id, value: @collaborative_draft.id %>
4
4
  <%= form.hidden_field :state, value: @collaborative_draft.state %>
@@ -0,0 +1,16 @@
1
+ <div class="columns large-3">
2
+ <div class="m-bottom">
3
+ <%= link_to :back do %>
4
+ <%= icon "chevron-left", class: "icon--small" %>
5
+ <%= wizard_aside_back_text %>
6
+ <% end %>
7
+ </div>
8
+ <div class="section">
9
+ <p>
10
+ <%= wizard_aside_info_text %>
11
+ </p>
12
+ </div>
13
+ <div class="show-for-large">
14
+ <%= proposal_wizard_stepper(@step) %>
15
+ </div>
16
+ </div>
@@ -1,5 +1,5 @@
1
1
  <div class="row">
2
- <%= render partial: "decidim/proposals/proposals/wizard_aside" %>
2
+ <%= render partial: "wizard_aside" %>
3
3
 
4
4
  <div class="columns large-6">
5
5
  <%= render partial: "decidim/proposals/proposals/wizard_header", locals: { callout_step_help_text_class: "warning" } %>
@@ -1,5 +1,5 @@
1
1
  <div class="row">
2
- <%= render partial: "decidim/proposals/proposals/wizard_aside" %>
2
+ <%= render partial: "wizard_aside" %>
3
3
 
4
4
  <div class="columns large-6">
5
5
  <%= render partial: "decidim/proposals/proposals/wizard_header" %>
@@ -1,5 +1,5 @@
1
1
  <div class="row">
2
- <%= render partial: "decidim/proposals/proposals/wizard_aside" %>
2
+ <%= render partial: "wizard_aside" %>
3
3
 
4
4
  <div class="columns large-6">
5
5
  <%= render partial: "decidim/proposals/proposals/wizard_header" %>
@@ -1 +1,11 @@
1
- <%= card_for proposal, size: :m %>
1
+ <div class="row column view-header">
2
+ <h2 class="heading2"><%= present(@proposal).title(links: true) %></h2>
3
+ <% unless component_settings.participatory_texts_enabled? %>
4
+ <%= cell("decidim/coauthorships", @proposal) %>
5
+ <% end %>
6
+ </div>
7
+ <div class="row column">
8
+ <%= simple_format present(@proposal).body(links: true) %>
9
+ </div>
10
+ <br />
11
+ <%= attachments_for(@proposal) %>
@@ -1,4 +1,4 @@
1
- <% if proposal.rejected? %>
1
+ <% if proposal.rejected? || proposal.withdrawn? %>
2
2
  <div></div>
3
3
  <% else %>
4
4
  <% if component_settings.participatory_texts_enabled? && from_proposals_list %>
@@ -1,8 +1,10 @@
1
1
  <div class="columns large-3">
2
2
  <div class="m-bottom">
3
- <%= link_to :back do %>
4
- <%= icon "chevron-left", class: "icon--small" %>
5
- <%= wizard_aside_back_text %>
3
+ <% unless @step == :step_2 %>
4
+ <%= link_to proposal_wizard_aside_link_to_back(@step) do %>
5
+ <%= icon "chevron-left", class: "icon--small" %>
6
+ <%= wizard_aside_back_text %>
7
+ <% end %>
6
8
  <% end %>
7
9
  </div>
8
10
  <div class="section">
@@ -13,7 +13,7 @@
13
13
  <% end %>
14
14
 
15
15
  <div class="row column text-center">
16
- <%= link_to t(".mine_is_different"), complete_proposal_path(@proposal), class: "button small" %>
16
+ <%= link_to t(".continue"), complete_proposal_path(@proposal), class: "button small" %>
17
17
  </div>
18
18
  </div>
19
19
 
@@ -1,4 +1,4 @@
1
- <% if proposal.rejected? %>
1
+ <% if proposal.rejected? || proposal.withdrawn? %>
2
2
  <div></div>
3
3
  <% else %>
4
4
  <div id="proposal-<%= proposal.id %>-vote-button">
@@ -59,17 +59,27 @@ edit_link(
59
59
  <%= emendation_actions_for @proposal %>
60
60
 
61
61
  <% if current_settings.votes_enabled? || show_endorsements_card? || current_user %>
62
- <div class="card">
63
- <div class="card__content">
64
- <% if current_settings.votes_enabled? %>
65
- <%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
66
- <%= render partial: "vote_button", locals: { proposal: @proposal, from_proposals_list: false } %>
67
- <% end %>
68
- <%= render partial: "endorsements_card_row", locals: { proposal: @proposal } %>
69
- <br />
70
- <%= follow_button_for(@proposal) %>
62
+ <% if @proposal.withdrawn? %>
63
+ <div class="card">
64
+ <div class="card__content">
65
+ <% if current_settings.votes_enabled? %>
66
+ <%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
67
+ <% end %>
68
+ </div>
71
69
  </div>
72
- </div>
70
+ <% else %>
71
+ <div class="card">
72
+ <div class="card__content">
73
+ <% if current_settings.votes_enabled? %>
74
+ <%= render partial: "votes_count", locals: { proposal: @proposal, from_proposals_list: false } %>
75
+ <%= render partial: "vote_button", locals: { proposal: @proposal, from_proposals_list: false } %>
76
+ <% end %>
77
+ <%= render partial: "endorsements_card_row", locals: { proposal: @proposal } %>
78
+ <br />
79
+ <%= follow_button_for(@proposal) %>
80
+ </div>
81
+ </div>
82
+ <% end %>
73
83
  <% end %>
74
84
 
75
85
  <%= amenders_list_for(@proposal) %>
@@ -2,6 +2,7 @@ ar:
2
2
  activemodel:
3
3
  attributes:
4
4
  collaborative_draft:
5
+ address: عنوان
5
6
  body: الجسم
6
7
  category_id: الفئة
7
8
  decidim_scope_id: نطاق
@@ -10,6 +11,7 @@ ar:
10
11
  title: عنوان
11
12
  user_group_id: إنشاء مسودة تعاونية كـ
12
13
  proposal:
14
+ address: عنوان
13
15
  answer: إجابة
14
16
  answered_at: أجاب في
15
17
  automatic_hashtags: علامات التصنيف المضافة تلقائيًا
@@ -26,8 +28,15 @@ ar:
26
28
  proposals_copy:
27
29
  copy_proposals: أدرك أن هذا سيؤدي إلى استيراد جميع المقترحات من المكون المحدد إلى المكون الحالي وأنه لا يمكن عكس هذا الإجراء.
28
30
  origin_component_id: مكون لنسخ المقترحات من
31
+ proposals_import:
32
+ import_proposals: مقترحات الاستيراد
33
+ keep_authors: الحفاظ على المؤلفين الأصلي
29
34
  errors:
30
35
  models:
36
+ participatory_text:
37
+ attributes:
38
+ document:
39
+ invalid_document_type: 'نوع المستند غير صالح. التنسيقات المقبولة هي: %{valid_mime_types}'
31
40
  proposal:
32
41
  attributes:
33
42
  attachment:
@@ -73,13 +82,20 @@ ar:
73
82
  few: ملاحظات
74
83
  many: ملاحظات
75
84
  other: ملاحظات
85
+ decidim/proposals/proposal_vote:
86
+ zero: الدعم
87
+ one: الدعم
88
+ two: الدعم
89
+ few: الدعم
90
+ many: الدعم
91
+ other: الدعم
76
92
  decidim:
77
93
  components:
78
94
  proposals:
79
95
  actions:
80
96
  create: خلق
81
97
  endorse: تأييد
82
- vote: تصويت
98
+ vote: الدعم
83
99
  withdraw: سحب
84
100
  name: اقتراحات
85
101
  settings:
@@ -91,18 +107,21 @@ ar:
91
107
  collaborative_drafts_enabled: تم تمكين المسودات التعاونية
92
108
  comments_enabled: تم تمكين التعليقات
93
109
  geocoding_enabled: تم تمكين الترميز الجغرافي
110
+ minimum_votes_per_user: الحد الأدنى من الدعم لكل مستخدم
94
111
  new_proposal_help_text: نص مساعدة اقتراح جديد
95
112
  official_proposals_enabled: تم تمكين المقترحات الرسمية
96
113
  participatory_texts_enabled: تم تمكين النصوص التشاركية
97
114
  proposal_answering_enabled: تم تمكين الرد على الاقتراح
98
115
  proposal_edit_before_minutes: يمكن تحرير المقترحات من قبل المؤلفين قبل مرور عدة دقائق
99
116
  proposal_length: الحد الأقصى لطول الاقتراح المقترح
117
+ proposal_limit: حد الاقتراح لكل مشارك
100
118
  proposal_wizard_step_1_help_text: اقتراح الاقتراح "إنشاء" نص مساعدة الخطوة
101
119
  proposal_wizard_step_2_help_text: اقتراح الاقتراح "قارن" نص خطوة المساعدة
102
120
  proposal_wizard_step_3_help_text: نص اقتراح "إكمال" تعليمات نص المعالج
103
121
  proposal_wizard_step_4_help_text: اقتراح الاقتراح "نشر" نص تعليمات الخطوة
104
122
  resources_permissions_enabled: يمكن تعيين أذونات الإجراءات لكل اقتراح
105
123
  threshold_per_proposal: عتبة لكل اقتراح
124
+ vote_limit: حد الدعم لكل مشارك
106
125
  step:
107
126
  announcement: إعلان
108
127
  automatic_hashtags: علامات التصنيف المضافة إلى جميع المقترحات
@@ -111,6 +130,10 @@ ar:
111
130
  endorsements_blocked: المصادقة المحظورة
112
131
  endorsements_enabled: تم التصديق
113
132
  proposal_answering_enabled: تم تمكين الرد على الاقتراح
133
+ suggested_hashtags: اقترح علامات التصنيف للمشاركين لتقديم مقترحات جديدة
134
+ votes_blocked: يدعم المحظورة
135
+ votes_enabled: يدعم تمكين
136
+ votes_hidden: يدعم مخفي (إذا تم تمكين الدعم ، سيؤدي تحديد هذا إلى إخفاء عدد الدعم)
114
137
  events:
115
138
  proposals:
116
139
  collaborative_draft_access_accepted:
@@ -182,6 +205,7 @@ ar:
182
205
  notification_title: تم نشر مقترح <a href="%{resource_path}">%{resource_title}</a> بواسطة <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
183
206
  proposal_published_for_space:
184
207
  email_intro: تمت إضافة الاقتراح "%{resource_title}" إلى "%{participatory_space_title}" الذي تتابعه.
208
+ email_outro: لقد تلقيت هذا الإشعار لأنك تتابع "%{participatory_space_title}". يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
185
209
  email_subject: تمت إضافة اقتراح جديد "%{resource_title}" إلى %{participatory_space_title}
186
210
  notification_title: تمت إضافة الاقتراح <a href="%{resource_path}">%{resource_title}</a> إلى %{participatory_space_title}
187
211
  proposal_rejected:
@@ -191,11 +215,15 @@ ar:
191
215
  email_subject: تم رفض اقتراحك
192
216
  notification_title: تم رفض اقتراحك <a href="%{resource_path}">%{resource_title}</a>.
193
217
  proposal_update_category:
218
+ email_intro: 'قام المشرف بتحديث فئة اقتراحك "%{resource_title}" ، تحقق من ذلك في هذه الصفحة:'
194
219
  email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف الاقتراح.
195
220
  email_subject: تم تحديث فئة %{resource_title} اقتراح
196
221
  notification_title: تم تحديث فئة اقتراح <a href="%{resource_path}">%{resource_title}</a> بواسطة مسؤول.
197
222
  voting_enabled:
223
+ email_intro: 'يمكنك دعم المقترحات في %{participatory_space_title}! ابدأ المشاركة في هذه الصفحة:'
198
224
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{participatory_space_title}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
225
+ email_subject: بدأ دعم الاقتراح لمدة %{participatory_space_title}
226
+ notification_title: يمكنك الآن بدء <a href="%{resource_path}">دعم المقترحات</a> في <a href="%{participatory_space_url}">%{participatory_space_title}</a>
199
227
  gamification:
200
228
  badges:
201
229
  accepted_proposals:
@@ -203,39 +231,51 @@ ar:
203
231
  - اختر مساحة المشاركة التي تهمك مع تمكين تقديم المقترحات
204
232
  - حاول تقديم مقترحات يمكن تنفيذها. بهذه الطريقة هم أكثر عرضة للقبول.
205
233
  description: تُمنح هذه الشارة عندما تشارك بفعالية في المقترحات الجديدة ويتم قبولها.
234
+ description_another: هذا المشارك لديه %{score} مقترحات مقبولة.
206
235
  description_own: حصلت على %{score} مقترحات مقبولة.
207
236
  name: مقترحات مقبولة
208
237
  next_level_in: احصل على %{score} مقترحات أخرى مقبولة للوصول إلى المستوى التالي!
238
+ unearned_another: هذا المشارك لم يكن لديه أي مقترحات مقبولة.
209
239
  unearned_own: لم تحصل على اقتراحات مقبولة حتى الآن.
210
240
  proposal_votes:
211
241
  conditions:
212
242
  - تصفح وقضاء بعض الوقت في قراءة اقتراحات الآخرين
213
243
  - قدم الدعم للمقترحات التي تحبها أو تجدها مثيرة للاهتمام
214
244
  description: تُمنح هذه الشارة عند دعم اقتراحات الآخرين.
245
+ description_another: قدم هذا المشارك الدعم إلى %{score} مقترحات.
215
246
  description_own: لقد قدمت الدعم إلى %{score} مقترحات.
216
247
  name: يدعم الاقتراح
217
248
  next_level_in: تقديم الدعم ل %{score} مقترحات أخرى للوصول إلى المستوى التالي!
249
+ unearned_another: لم يقدم هذا المشارك الدعم لأي مقترحات حتى الآن.
218
250
  unearned_own: لقد قدمت الدعم لأية مقترحات حتى الآن.
219
251
  proposals:
220
252
  conditions:
221
253
  - اختر مساحة المشاركة التي تهمك مع تمكين تقديم المقترحات
222
254
  - إنشاء اقتراح جديد
223
255
  description: تُمنح هذه الشارة عندما تشارك بنشاط في مقترحات جديدة.
256
+ description_another: قام هذا المشارك بإنشاء %{score} مقترحات.
224
257
  description_own: لقد قمت بإنشاء %{score} مقترحات.
225
258
  name: اقتراحات
226
259
  next_level_in: إنشاء %{score} المزيد من المقترحات للوصول إلى المستوى التالي!
260
+ unearned_another: لم ينشئ هذا المشارك أي مقترحات حتى الآن.
227
261
  unearned_own: لم تنشئ اقتراحات بعد.
228
262
  metrics:
229
263
  accepted_proposals:
264
+ description: عدد المقترحات المقبولة
230
265
  object: اقتراحات
266
+ title: مقترحات مقبولة
231
267
  endorsements:
268
+ description: عدد موافقات المقترحات
232
269
  object: موافقات
233
270
  title: موافقات
234
271
  proposals:
272
+ description: عدد المقترحات
235
273
  object: اقتراحات
236
274
  title: اقتراحات
237
275
  votes:
238
- title: الأصوات
276
+ description: عدد الدعم للمقترحات
277
+ object: الدعم
278
+ title: الدعم
239
279
  participatory_processes:
240
280
  participatory_process_groups:
241
281
  highlighted_proposals:
@@ -264,16 +304,24 @@ ar:
264
304
  participatory_texts:
265
305
  bulk-actions:
266
306
  are_you_sure: هل أنت متأكد من تجاهل مشروع النص التشاركي بأكمله؟
267
- import_doc: استيراد المستند
268
307
  discard_all: تجاهل كل
308
+ import_doc: استيراد المستند
309
+ discard:
310
+ success: تم تجاهل جميع المسودات النصية التشاركية.
269
311
  import:
270
312
  invalid: النموذج غير صالح!
313
+ success: مبروك ، تم تحويل الأقسام التالية إلى مقترحات. يمكنك الآن مراجعتها وضبطها قبل النشر.
271
314
  index:
315
+ info_1: تم تحويل الأقسام التالية إلى مقترحات. يمكنك الآن مراجعتها وضبطها قبل النشر.
272
316
  publish_document: نشر المستند
273
317
  save_draft: حفظ المسودة
274
318
  title: عرض نص المشاركة
275
319
  new_import:
320
+ accepted_mime_types:
321
+ md: تخفيض السعر
322
+ odt: ODT
276
323
  bottom_hint: "(سوف تكون قادرًا على معاينة وفرز أقسام المستندات)"
324
+ document_legend: 'أضف مستندًا أقل من 2 ميغابايت ، وسيتم تحليل كل قسم حتى عمق 3 مستويات في الاقتراحات. التنسيقات المدعومة هي: %{valid_mime_types}'
277
325
  title: إضافة وثيقة
278
326
  upload_document: تحميل المستند
279
327
  publish:
@@ -283,6 +331,8 @@ ar:
283
331
  article: "<em>المادة</em>"
284
332
  section: "<em>القسم:</em> <strong>%{title}</strong>"
285
333
  sub-section: "<em>القسم الفرعي:</em> %{title}"
334
+ update:
335
+ success: تم تحديث النص التشاركي بنجاح.
286
336
  proposal_answers:
287
337
  edit:
288
338
  accepted: وافقت
@@ -292,6 +342,7 @@ ar:
292
342
  title: الإجابة على الاقتراح %{title}
293
343
  proposal_notes:
294
344
  create:
345
+ error: حدثت مشكلة أثناء إنشاء مذكرة الاقتراح هذه
295
346
  success: تم إنشاء ملاحظة الاقتراح بنجاح
296
347
  form:
297
348
  note: ملحوظة
@@ -335,21 +386,26 @@ ar:
335
386
  success: 'تم تحديث الاقتراحات بنجاح إلى فئة %{category} : %{proposals}.'
336
387
  proposals_imports:
337
388
  create:
389
+ invalid: كانت هناك مشكلة في استيراد المقترحات
338
390
  success: "%{number} مقترحات تم استيرادها بنجاح"
339
391
  new:
340
392
  create: مقترحات الاستيراد
341
393
  no_components: لا توجد مكونات اقتراح أخرى في هذه المساحة التشاركية لاستيراد المقترحات منها.
342
394
  select_component: يرجى اختيار عنصر
395
+ select_states: تحقق من حالة مقترحات الاستيراد
343
396
  proposals_merges:
344
397
  create:
398
+ invalid: كانت هناك مشكلة في دمج المقترحات المحددة.
345
399
  success: دمج المقترحات بنجاح في واحدة جديدة.
346
400
  proposals_splits:
347
401
  create:
402
+ invalid: كانت هناك مشكلة في تقسيم المقترحات المحددة.
348
403
  success: تم تقسيم المقترحات بنجاح إلى مقترحات جديدة.
349
404
  shared:
350
405
  info_proposal:
351
406
  body: الجسم
352
407
  created_at: تاريخ الإنشاء
408
+ proposal_votes_count: يدعم العد
353
409
  proposals: اقتراحات
354
410
  admin_log:
355
411
  proposal:
@@ -368,6 +424,7 @@ ar:
368
424
  filter_origin_values:
369
425
  all: الكل
370
426
  meetings: اجتماعات
427
+ user_groups: المجموعات
371
428
  filter_state_values:
372
429
  accepted: وافقت
373
430
  all: الكل
@@ -380,6 +437,7 @@ ar:
380
437
  collaborative_drafts:
381
438
  collaborative_draft:
382
439
  publish:
440
+ error: حدثت مشكلة أثناء نشر المسودة التعاونية.
383
441
  irreversible_action_modal:
384
442
  body: بعد نشر المسودة كاقتراح ، لن تكون المسودة قابلة للتحرير بعد الآن. لن يقبل الاقتراح مؤلفين أو مساهمات جديدة.
385
443
  cancel: إلغاء
@@ -388,6 +446,7 @@ ar:
388
446
  success: مسودة تعاونية تم نشرها بنجاح كمقترح
389
447
  view_collaborative_draft: عرض المسودة التعاونية
390
448
  withdraw:
449
+ error: حدثت مشكلة أثناء إغلاق المسودة التعاونية.
391
450
  irreversible_action_modal:
392
451
  body: بعد إغلاق المسودة ، لن تكون المسودة قابلة للتحرير بعد الآن. لن يقبل المسودة مؤلفين أو مساهمات جديدة.
393
452
  cancel: إلغاء
@@ -401,7 +460,16 @@ ar:
401
460
  complete:
402
461
  send: إرسال
403
462
  title: أكمل مسودتك التعاونية
463
+ count:
464
+ drafts_count:
465
+ zero: "%{count} مسودات تعاونية"
466
+ one: "%{count} مشروع تعاوني"
467
+ two: "%{count} مسودات تعاونية"
468
+ few: "%{count} مسودات تعاونية"
469
+ many: "%{count} مسودات تعاونية"
470
+ other: "%{count} مسودات تعاونية"
404
471
  create:
472
+ error: كانت هناك مشكلة في إنشاء هذه المسودات التعاونية
405
473
  success: تم إنشاء مشروع تعاوني بنجاح.
406
474
  edit:
407
475
  attachment_legend: "(اختياري) إضافة مرفق"
@@ -418,7 +486,7 @@ ar:
418
486
  published: نشرت
419
487
  related_to: متعلق ب
420
488
  search: بحث
421
- state: حالة
489
+ state: الحالة
422
490
  withdrawn: سحب
423
491
  filters_small_view:
424
492
  close_modal: إغلاق مشروط
@@ -437,15 +505,23 @@ ar:
437
505
  recent: الأخيرة
438
506
  requests:
439
507
  accepted_request:
508
+ error: لا يمكن قبول كمتعاون ، يرجى المحاولة مرة أخرى في وقت لاحق.
440
509
  success: "تم قبول @%{user} كمتعاون بنجاح"
510
+ access_requested:
511
+ error: تعذر إكمال طلبك ، يرجى إعادة المحاولة لاحقًا.
512
+ success: تم إرسال طلبك للتعاون بنجاح
441
513
  collaboration_requests:
442
514
  accept_request: قبول
443
515
  reject_request: رفض
444
516
  title: طلبات التعاون
517
+ rejected_request:
518
+ error: لا يمكن الرفض كمتعاون ، يرجى المحاولة مرة أخرى لاحقًا.
519
+ success: "تم رفض @%{user} بنجاح كمتعاون"
445
520
  show:
446
521
  back: الى الخلف
447
522
  edit: تحرير المسودة التعاونية
448
523
  final_proposal: الاقتراح النهائي
524
+ final_proposal_help_text: انتهى هذا المشروع. تحقق من الاقتراح النهائي
449
525
  hidden_authors_count:
450
526
  zero: و %{count} المزيد من الناس
451
527
  one: و %{count} شخص آخر
@@ -468,6 +544,9 @@ ar:
468
544
  open: افتح
469
545
  published: نشرت
470
546
  withdrawn: سحب
547
+ update:
548
+ error: حدثت مشكلة في حفظ المسودة التعاونية.
549
+ success: تم تحديث المسودة التعاونية بنجاح.
471
550
  wizard_aside:
472
551
  back: الى الخلف
473
552
  info: إنك لعلى خلق <strong>مشروع تعاوني</strong>.
@@ -477,7 +556,11 @@ ar:
477
556
  step_2: قارن مع المسودات التعاونية
478
557
  step_3: أكمل مسودتك التعاونية
479
558
  step_of: الخطوة %{current_step_num} من %{total_steps}
559
+ create:
560
+ error: كانت هناك مشكلة في حفظ الاقتراح.
561
+ success: تم إنشاء الاقتراح بنجاح. تم الحفظ كمسودة.
480
562
  destroy_draft:
563
+ error: حدثت مشكلة في حذف المسودة التعاونية.
481
564
  success: تم حذف مسودة الاقتراح بنجاح.
482
565
  last_activity:
483
566
  new_proposal_at_html: "<span>اقتراح جديد في %{link}</span>"
@@ -497,7 +580,7 @@ ar:
497
580
  official_proposal: الاقتراح الرسمي
498
581
  published_at: نشرت في
499
582
  scope: نطاق
500
- state: حالة
583
+ state: الحالة
501
584
  title: عنوان
502
585
  votes: الأصوات
503
586
  new:
@@ -510,6 +593,8 @@ ar:
510
593
  comments: تعليقات
511
594
  endorse: تأييد
512
595
  proposal_endorsements:
596
+ create:
597
+ error: كانت هناك مشكلة في تأييد الاقتراح.
513
598
  identities:
514
599
  done: فعله
515
600
  select_identity: حدد الهوية
@@ -519,9 +604,12 @@ ar:
519
604
  endorse: تأييد
520
605
  render_endorsements_button_card_part:
521
606
  endorse: تأييد
607
+ proposal_votes:
608
+ create:
609
+ error: كانت هناك مشكلة في دعم الاقتراح.
522
610
  proposals:
523
611
  compare:
524
- mine_is_different: اقتراحي مختلف
612
+ continue: استمر
525
613
  no_similars_found: أحسنت! لم يتم العثور على مقترحات مماثلة
526
614
  title: مقترحات مماثلة
527
615
  complete:
@@ -552,13 +640,14 @@ ar:
552
640
  comments: تعليقات
553
641
  filters:
554
642
  activity: نشاط
643
+ amendment_type: نوع
555
644
  category: الفئة
556
645
  category_prompt: اختر تصنيف
557
646
  origin: الأصل
558
647
  related_to: متعلق ب
559
648
  search: بحث
560
- state: حالة
561
- amendment_type: نوع
649
+ state: الحالة
650
+ voted: أيد
562
651
  filters_small_view:
563
652
  close_modal: إغلاق مشروط
564
653
  filter: منقي
@@ -569,11 +658,20 @@ ar:
569
658
  new_proposal: عرض جديد
570
659
  see_all_withdrawn: الاطلاع على جميع المقترحات المسحوبة
571
660
  view_proposal: عرض الاقتراح
661
+ linked_proposals:
662
+ proposal_votes:
663
+ zero: الدعم
664
+ one: الدعم
665
+ two: الدعم
666
+ few: الدعم
667
+ many: الدعم
668
+ other: الدعم
572
669
  new:
573
670
  send: استمر
574
671
  title: إنشاء اقتراحك
575
672
  orders:
576
673
  label: 'ترتيب المقترحات حسب:'
674
+ most_voted: معظم الدعم
577
675
  random: عشوائية
578
676
  recent: الأخيرة
579
677
  participatory_texts:
@@ -613,25 +711,44 @@ ar:
613
711
  proposal_rejected_reason: 'تم رفض هذا الاقتراح بسبب:'
614
712
  report: أبلغ عن
615
713
  withdraw_btn_hint: يمكنك سحب اقتراحك إذا غيرت رأيك ، طالما أنك لم تتلق أي دعم. لم يتم حذف الاقتراح ، وسوف يظهر في قائمة المقترحات المسحوبة.
616
- withdraw_confirmation: هل أنت متأكد من سحب هذا الاقتراح؟
714
+ withdraw_confirmation: هل أنت متأكد أنك تريد سحب هذا الاقتراح؟
617
715
  withdraw_proposal: سحب الاقتراح
618
716
  tags:
619
717
  changed_from: "(تم التغيير من <u>%{previous_category}</u> بواسطة مسؤول)"
620
718
  filed_as: قدم كما
719
+ vote_button:
720
+ already_voted: معتمد بالفعل
721
+ already_voted_hover: سحب الدعم
722
+ maximum_votes_reached: تم الوصول إلى حد الدعم
723
+ no_votes_remaining: لا يدعم المتبقية
724
+ vote: الدعم
725
+ votes_blocked: يدعم المعوقين
621
726
  votes_count:
727
+ count:
728
+ zero: يدعم
729
+ one: الدعم
730
+ two: يدعم
731
+ few: يدعم
732
+ many: يدعم
733
+ other: يدعم
622
734
  most_popular_proposal: الاقتراح الأكثر شعبية
735
+ need_more_votes: بحاجة الى مزيد من الدعم
623
736
  voting_rules:
624
737
  can_accumulate_supports_beyond_threshold:
625
738
  description: كل اقتراح يمكن أن تتراكم أكثر من %{limit} يدعم
626
739
  minimum_votes_per_user:
740
+ description: يجب عليك توزيع ما لا يقل عن %{votes} دعما بين المقترحات المختلفة.
627
741
  given_enough_votes: لقد قدمت ما يكفي من الدعم.
742
+ supports_remaining: يجب عليك دعم %{remaining_votes} مقترحات أخرى ليتم أخذها في الاعتبار.
628
743
  proposal_limit:
629
744
  description: يمكنك إنشاء ما يصل إلى %{limit} مقترحات.
630
745
  threshold_per_proposal:
631
746
  description: من أجل التحقق من صحة المقترحات تحتاج إلى الوصول إلى %{limit} الدعم
747
+ title: 'الدعامات تخضع للقواعد التالية:'
632
748
  vote_limit:
749
+ description: يمكنك دعم ما يصل إلى %{limit} مقترحات.
633
750
  left: متبق
634
- votes: الأصوات
751
+ votes: الدعم
635
752
  wizard_aside:
636
753
  back: الى الخلف
637
754
  info: إنك لعلى خلق <strong>اقتراح</strong>.
@@ -642,6 +759,15 @@ ar:
642
759
  step_3: اكتمال
643
760
  step_4: نشر اقتراحك
644
761
  step_of: الخطوة %{current_step_num} من %{total_steps}
762
+ publish:
763
+ error: كانت هناك مشكلة في نشر الاقتراح.
764
+ success: تم نشر الاقتراح بنجاح.
765
+ update:
766
+ error: كانت هناك مشكلة في حفظ الاقتراح.
767
+ success: تم تحديث الاقتراح بنجاح.
768
+ update_draft:
769
+ error: حدثت مشكلة في حفظ المسودة التعاونية.
770
+ success: تم تحديث مسودة الاقتراح بنجاح.
645
771
  versions:
646
772
  changes_at_title: التغييرات في "%{title}"
647
773
  index:
@@ -657,6 +783,9 @@ ar:
657
783
  version_number_out_of_total: "%{current_version} من %{total_count}"
658
784
  version:
659
785
  version_index: الإصدار %{index}
786
+ withdraw:
787
+ errors:
788
+ has_supports: لا يمكن سحب هذا الاقتراح لأنه تلقى دعما مِن قَبل.
660
789
  resource_links:
661
790
  copied_from_component:
662
791
  proposal_proposal: المقترحات ذات الصلة