decidim-conferences 0.16.1 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheet/decidim/conferences/conferences.scss +3 -0
- data/app/cells/decidim/conferences/conference_address/show.erb +1 -1
- data/app/cells/decidim/conferences/conference_m/footer.erb +1 -1
- data/app/cells/decidim/conferences/conference_speaker/show.erb +2 -2
- data/app/cells/decidim/conferences/conference_speaker_cell.rb +6 -2
- data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_cell.rb +0 -1
- data/app/cells/decidim/conferences/linked_participatory_spaces_cell.rb +6 -0
- data/app/cells/decidim/conferences/partner_cell.rb +2 -0
- data/app/cells/decidim/conferences/photos_list_cell.rb +1 -0
- data/app/cells/decidim/conferences/registration_type_cell.rb +2 -0
- data/app/commands/decidim/conferences/admin/confirm_conference_registration.rb +1 -0
- data/app/commands/decidim/conferences/admin/create_conference.rb +0 -10
- data/app/commands/decidim/conferences/admin/create_conference_admin.rb +1 -0
- data/app/commands/decidim/conferences/admin/publish_conference.rb +12 -0
- data/app/commands/decidim/conferences/admin/update_conference.rb +6 -2
- data/app/commands/decidim/conferences/admin/update_diploma.rb +1 -0
- data/app/commands/decidim/conferences/join_conference.rb +2 -0
- data/app/commands/decidim/conferences/leave_conference.rb +1 -0
- data/app/controllers/decidim/conferences/admin/application_controller.rb +5 -4
- data/app/controllers/decidim/conferences/admin/concerns/conference_admin.rb +6 -4
- data/app/controllers/decidim/conferences/admin/conference_registrations_controller.rb +1 -0
- data/app/controllers/decidim/conferences/application_controller.rb +6 -5
- data/app/controllers/decidim/conferences/conference_program_controller.rb +4 -1
- data/app/controllers/decidim/conferences/conference_registrations_controller.rb +1 -0
- data/app/controllers/decidim/conferences/conference_speakers_controller.rb +1 -0
- data/app/controllers/decidim/conferences/media_controller.rb +1 -0
- data/app/controllers/decidim/conferences/registration_types_controller.rb +1 -0
- data/app/forms/decidim/conferences/admin/conference_form.rb +4 -0
- data/app/forms/decidim/conferences/admin/conference_speaker_form.rb +1 -0
- data/app/forms/decidim/conferences/admin/registration_type_form.rb +1 -0
- data/app/helpers/decidim/conferences/conference_helper.rb +1 -0
- data/app/models/decidim/conference.rb +9 -4
- data/app/models/decidim/conference_user_role.rb +1 -0
- data/app/permissions/decidim/conferences/permissions.rb +6 -0
- data/app/presenters/decidim/conferences/admin_log/value_types/role_presenter.rb +1 -0
- data/app/presenters/decidim/log/value_types/conference_presenter.rb +1 -0
- data/app/queries/decidim/conferences/admin/admin_users.rb +8 -1
- data/app/queries/decidim/conferences/admin/conference_invites.rb +1 -0
- data/app/queries/decidim/conferences/admin/conference_speakers.rb +1 -0
- data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +3 -3
- data/app/views/decidim/conferences/admin/conferences/index.html.erb +3 -3
- data/app/views/decidim/conferences/admin/send_conference_diploma_mailer/diploma_user.html.erb +1 -1
- data/app/views/decidim/conferences/conferences/_partners.html.erb +1 -1
- data/app/views/decidim/conferences/conferences/_promoted_conference.html.erb +1 -1
- data/app/views/decidim/conferences/conferences/show.html.erb +3 -3
- data/app/views/decidim/conferences/media/index.html.erb +2 -2
- data/app/views/layouts/decidim/_conference_hero.html.erb +3 -3
- data/app/views/layouts/decidim/diploma.html.erb +2 -2
- data/config/locales/ar-SA.yml +132 -22
- data/config/locales/ar.yml +589 -0
- data/config/locales/ca.yml +192 -191
- data/config/locales/cs-CZ.yml +3 -3
- data/config/locales/cs.yml +581 -0
- data/config/locales/de.yml +15 -14
- data/config/locales/en.yml +87 -85
- data/config/locales/eo-UY.yml +1 -0
- data/config/locales/es-MX.yml +7 -6
- data/config/locales/es-PY.yml +8 -7
- data/config/locales/es.yml +161 -160
- data/config/locales/eu.yml +6 -5
- data/config/locales/fi-pl.yml +3 -3
- data/config/locales/fi-plain.yml +571 -0
- data/config/locales/fi.yml +65 -64
- data/config/locales/fr.yml +100 -99
- data/config/locales/gl.yml +6 -5
- data/config/locales/hu.yml +9 -8
- data/config/locales/id-ID.yml +6 -5
- data/config/locales/it.yml +9 -8
- data/config/locales/nl.yml +8 -7
- data/config/locales/no.yml +5 -0
- data/config/locales/pl.yml +6 -5
- data/config/locales/pt-BR.yml +6 -5
- data/config/locales/pt.yml +6 -5
- data/config/locales/sv.yml +206 -205
- data/config/locales/tr-TR.yml +6 -5
- data/lib/decidim/conferences/admin_engine.rb +1 -0
- data/lib/decidim/conferences/participatory_space.rb +2 -0
- data/lib/decidim/conferences/version.rb +1 -1
- metadata +26 -21
@@ -50,6 +50,7 @@ module Decidim
|
|
50
50
|
def conference_meetings
|
51
51
|
meeting_components = current_participatory_space.components.where(manifest_name: "meetings")
|
52
52
|
return unless meeting_components || conference_meeting_ids.delete("").present?
|
53
|
+
|
53
54
|
@conference_meetings ||= Decidim::ConferenceMeeting.where(component: meeting_components).where(id: conference_meeting_ids)
|
54
55
|
end
|
55
56
|
|
@@ -36,6 +36,7 @@ module Decidim
|
|
36
36
|
def conference_meetings
|
37
37
|
meeting_components = current_participatory_space.components.where(manifest_name: "meetings")
|
38
38
|
return unless meeting_components || conference_meeting_ids.delete("").present?
|
39
|
+
|
39
40
|
@conference_meetings ||= Decidim::ConferenceMeeting.where(component: meeting_components).where(id: conference_meeting_ids)
|
40
41
|
end
|
41
42
|
end
|
@@ -8,6 +8,7 @@ module Decidim
|
|
8
8
|
#
|
9
9
|
def render_date(conference)
|
10
10
|
return l(conference.start_date, format: :decidim_with_month_name_short) if conference.start_date == conference.end_date
|
11
|
+
|
11
12
|
"#{l(conference.start_date, format: :decidim_with_month_name_short)} - #{l(conference.end_date, format: :decidim_with_month_name_short)}"
|
12
13
|
end
|
13
14
|
end
|
@@ -20,10 +20,7 @@ module Decidim
|
|
20
20
|
belongs_to :organization,
|
21
21
|
foreign_key: "decidim_organization_id",
|
22
22
|
class_name: "Decidim::Organization"
|
23
|
-
|
24
|
-
foreign_key: "decidim_area_id",
|
25
|
-
class_name: "Decidim::Area",
|
26
|
-
optional: true
|
23
|
+
|
27
24
|
has_many :categories,
|
28
25
|
foreign_key: "decidim_participatory_space_id",
|
29
26
|
foreign_type: "decidim_participatory_space_type",
|
@@ -87,6 +84,7 @@ module Decidim
|
|
87
84
|
|
88
85
|
def has_available_slots?
|
89
86
|
return true if available_slots.zero?
|
87
|
+
|
90
88
|
available_slots > conference_registrations.count
|
91
89
|
end
|
92
90
|
|
@@ -96,7 +94,14 @@ module Decidim
|
|
96
94
|
|
97
95
|
def diploma_sent?
|
98
96
|
return false if diploma_sent_at.nil?
|
97
|
+
|
99
98
|
true
|
100
99
|
end
|
100
|
+
|
101
|
+
def closed?
|
102
|
+
return false if end_date.blank?
|
103
|
+
|
104
|
+
end_date < Date.current
|
105
|
+
end
|
101
106
|
end
|
102
107
|
end
|
@@ -24,6 +24,7 @@ module Decidim
|
|
24
24
|
# Private: check if the process and the user have the same organization
|
25
25
|
def user_and_conference_same_organization
|
26
26
|
return if !conference || !user
|
27
|
+
|
27
28
|
errors.add(:conference, :invalid) unless user.organization == conference.organization
|
28
29
|
end
|
29
30
|
end
|
@@ -30,6 +30,7 @@ module Decidim
|
|
30
30
|
end
|
31
31
|
|
32
32
|
return permission_action unless user
|
33
|
+
|
33
34
|
if !has_manageable_conferences? && !user.admin?
|
34
35
|
disallow!
|
35
36
|
return permission_action
|
@@ -94,12 +95,14 @@ module Decidim
|
|
94
95
|
# Checks if it has any manageable conference, with any possible role.
|
95
96
|
def has_manageable_conferences?(role: :any)
|
96
97
|
return unless user
|
98
|
+
|
97
99
|
conferences_with_role_privileges(role).any?
|
98
100
|
end
|
99
101
|
|
100
102
|
# Whether the user can manage the given conference or not.
|
101
103
|
def can_manage_conference?(role: :any)
|
102
104
|
return unless user
|
105
|
+
|
103
106
|
conferences_with_role_privileges(role).include? conference
|
104
107
|
end
|
105
108
|
|
@@ -123,6 +126,7 @@ module Decidim
|
|
123
126
|
|
124
127
|
return allow! if user&.admin?
|
125
128
|
return allow! if conference.published?
|
129
|
+
|
126
130
|
toggle_allow(can_manage_conference?)
|
127
131
|
end
|
128
132
|
|
@@ -222,12 +226,14 @@ module Decidim
|
|
222
226
|
# Everyone can read the conference list
|
223
227
|
def user_can_read_conference_list?
|
224
228
|
return unless read_conference_list_permission_action?
|
229
|
+
|
225
230
|
toggle_allow(user.admin? || has_manageable_conferences?)
|
226
231
|
end
|
227
232
|
|
228
233
|
def user_can_read_current_conference?
|
229
234
|
return unless read_conference_list_permission_action?
|
230
235
|
return if permission_action.subject == :conference_list
|
236
|
+
|
231
237
|
toggle_allow(user.admin? || can_manage_conference?)
|
232
238
|
end
|
233
239
|
|
@@ -23,7 +23,7 @@ module Decidim
|
|
23
23
|
#
|
24
24
|
# Returns an ActiveRecord::Relation.
|
25
25
|
def query
|
26
|
-
Decidim::User.where(id: organization_admins)
|
26
|
+
Decidim::User.where(id: organization_admins).or(conference_user_admins)
|
27
27
|
end
|
28
28
|
|
29
29
|
private
|
@@ -33,6 +33,13 @@ module Decidim
|
|
33
33
|
def organization_admins
|
34
34
|
conference.organization.admins
|
35
35
|
end
|
36
|
+
|
37
|
+
def conference_user_admins
|
38
|
+
conference_user_admin_ids = Decidim::ConferenceUserRole
|
39
|
+
.where(conference: conference, role: :admin)
|
40
|
+
.pluck(:decidim_user_id)
|
41
|
+
Decidim::User.where(id: conference_user_admin_ids)
|
42
|
+
end
|
36
43
|
end
|
37
44
|
end
|
38
45
|
end
|
@@ -36,6 +36,7 @@ module Decidim
|
|
36
36
|
|
37
37
|
def filter_by_search(conference_invites)
|
38
38
|
return conference_invites if @query.blank?
|
39
|
+
|
39
40
|
conference_invites.joins(:user).where(
|
40
41
|
User.arel_table[:name].lower.matches("%#{@query}%").or(User.arel_table[:email].lower.matches("%#{@query}%"))
|
41
42
|
)
|
@@ -25,10 +25,10 @@
|
|
25
25
|
<% @conference_user_roles.each do |role| %>
|
26
26
|
<tr>
|
27
27
|
<td>
|
28
|
-
<%= role.user.name %><br
|
28
|
+
<%= role.user.name %><br>
|
29
29
|
</td>
|
30
30
|
<td>
|
31
|
-
<%= role.user.email %><br
|
31
|
+
<%= role.user.email %><br>
|
32
32
|
</td>
|
33
33
|
<td>
|
34
34
|
<% if role.user.invitation_sent_at %>
|
@@ -41,7 +41,7 @@
|
|
41
41
|
<% end %>
|
42
42
|
</td>
|
43
43
|
<td>
|
44
|
-
<%= t("#{role.role}", scope: "decidim.admin.models.conference_user_role.roles") %><br
|
44
|
+
<%= t("#{role.role}", scope: "decidim.admin.models.conference_user_role.roles") %><br>
|
45
45
|
</td>
|
46
46
|
<td class="table-list__actions">
|
47
47
|
<% if allowed_to?(:invite, :conference_user_role, user_role: role) && role.user.invited_to_sign_up? %>
|
@@ -26,11 +26,11 @@
|
|
26
26
|
</span>
|
27
27
|
<% end %>
|
28
28
|
<% if allowed_to? :update, :conference, conference: conference %>
|
29
|
-
<%= link_to translated_attribute(conference.title), edit_conference_path(conference) %><br
|
29
|
+
<%= link_to translated_attribute(conference.title), edit_conference_path(conference) %><br>
|
30
30
|
<% elsif allowed_to? :preview, :conference, conference: conference %>
|
31
|
-
<%= link_to translated_attribute(conference.title), decidim_conferences.conference_path(conference) %><br
|
31
|
+
<%= link_to translated_attribute(conference.title), decidim_conferences.conference_path(conference) %><br>
|
32
32
|
<% elsif allowed_to? :read, :moderation, conference: conference %>
|
33
|
-
<%= link_to translated_attribute(conference.title), moderations_path(conference) %><br
|
33
|
+
<%= link_to translated_attribute(conference.title), moderations_path(conference) %><br>
|
34
34
|
<% else %>
|
35
35
|
<%= translated_attribute(conference.title) %>
|
36
36
|
<% end %>
|
data/app/views/decidim/conferences/admin/send_conference_diploma_mailer/diploma_user.html.erb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
<h3><%= t("decidim.conferences.admin.send_conference_diploma_mailer.diploma_user.certificate_of_attendance") %></h3>
|
11
11
|
<p><%= t("decidim.conferences.admin.send_conference_diploma_mailer.diploma_user.certificate_of_attendance_description", user: @user.name, title: translated_attribute(@conference.title), location: @conference.location, start: l(@conference.start_date, format: :decidim_short), end: l(@conference.end_date, format: :decidim_short) ).html_safe %></p>
|
12
12
|
</div>
|
13
|
-
<hr class="reset mt-m mb-m"
|
13
|
+
<hr class="reset mt-m mb-m">
|
14
14
|
<div class="diploma__attendance">
|
15
15
|
<strong><%= t("decidim.conferences.admin.send_conference_diploma_mailer.diploma_user.attendance_verified_by") %></strong>
|
16
16
|
<div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if conference.partners.any? %>
|
2
2
|
<div id="conference-partners">
|
3
3
|
<% conference.partners.group_by(&:partner_type).each do |partner_type, partners| %>
|
4
|
-
<hr class="reset mt-none mb-m"
|
4
|
+
<hr class="reset mt-none mb-m">
|
5
5
|
<section class="section">
|
6
6
|
<h1 class="section-heading"><%= t(".#{partner_type.pluralize}") %></h1>
|
7
7
|
<div class="row small-up-2 medium-up-3 card-grid">
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<div class="card__content row collapse">
|
18
18
|
<div class="large-6 large-offset-6 columns">
|
19
19
|
<%= link_to conference_path(promoted_conference), class: "button expanded button--sc" do %>
|
20
|
-
<%= t(
|
20
|
+
<%= t(promoted_conference.cta_button_text_key, scope: "layouts.decidim.conferences.promoted_conference") %>
|
21
21
|
<% end %>
|
22
22
|
</div>
|
23
23
|
</div>
|
@@ -22,7 +22,7 @@ edit_link(
|
|
22
22
|
<h4 class="section-heading"><%= t("conferences.show.introduction", scope: "decidim") %></h4>
|
23
23
|
<%= decidim_sanitize translated_attribute(current_participatory_space.short_description) %>
|
24
24
|
</section>
|
25
|
-
<hr class="reset mt-none mb-m"
|
25
|
+
<hr class="reset mt-none mb-m">
|
26
26
|
<section class="section">
|
27
27
|
<h4 class="section-heading"><%= t("conferences.show.details", scope: "decidim") %></h4>
|
28
28
|
<%= decidim_sanitize translated_attribute(current_participatory_space.description) %>
|
@@ -53,7 +53,7 @@ edit_link(
|
|
53
53
|
<%= render_hook(:conference_venues) %>
|
54
54
|
|
55
55
|
<% if current_participatory_space.registrations_enabled? %>
|
56
|
-
<hr class="reset mt-none mb-m"
|
56
|
+
<hr class="reset mt-none mb-m">
|
57
57
|
<section class="section">
|
58
58
|
<h4 class="section-heading"><%= t(".register") %></h4>
|
59
59
|
<% if current_user.present? %>
|
@@ -72,7 +72,7 @@ edit_link(
|
|
72
72
|
</section>
|
73
73
|
<% end %>
|
74
74
|
|
75
|
-
<hr class="reset mt-none mb-m"
|
75
|
+
<hr class="reset mt-none mb-m">
|
76
76
|
|
77
77
|
<% unless translated_attribute(current_participatory_space.objectives).blank? %>
|
78
78
|
<section class="section">
|
@@ -16,7 +16,7 @@ edit_link(
|
|
16
16
|
<h1 class="section-heading"><%= t("media.index.title", scope: "decidim") %></h1>
|
17
17
|
<p><%= t("media.index.description", scope: "decidim") %></p>
|
18
18
|
</section>
|
19
|
-
<hr class="reset mt-none mb-s"
|
19
|
+
<hr class="reset mt-none mb-s">
|
20
20
|
<section class="media-links">
|
21
21
|
<ul class="list-reset">
|
22
22
|
<% @media_links.each do |media_link| %>
|
@@ -24,7 +24,7 @@ edit_link(
|
|
24
24
|
<% end %>
|
25
25
|
</ul>
|
26
26
|
</section>
|
27
|
-
<hr class="reset mt-none mb-s"
|
27
|
+
<hr class="reset mt-none mb-s">
|
28
28
|
<% end %>
|
29
29
|
<%= attachments_for_conference current_participatory_space %>
|
30
30
|
</div>
|
@@ -19,10 +19,10 @@
|
|
19
19
|
<div class="row">
|
20
20
|
<div class="row column medium-8 text-left mt-m">
|
21
21
|
<div class="column medium-6">
|
22
|
-
<
|
23
|
-
<%= render_date(current_participatory_space) %>
|
22
|
+
<div class="conference--date button hollow light expanded">
|
23
|
+
<%= participatory_space_helpers.render_date(current_participatory_space) %>
|
24
24
|
<%= current_participatory_space.location %>
|
25
|
-
</
|
25
|
+
</div>
|
26
26
|
</div>
|
27
27
|
<% if current_participatory_space.registrations_enabled? %>
|
28
28
|
<div class="column medium-3 end">
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html lang="<%= I18n.locale %>" class="no-js">
|
3
3
|
<head>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
|
5
|
-
<meta name="viewport" content="width=device-width"
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width">
|
6
6
|
<%= wicked_pdf_stylesheet_link_tag "decidim/conference-diploma" %>
|
7
7
|
</head>
|
8
8
|
<body>
|
data/config/locales/ar-SA.yml
CHANGED
@@ -12,14 +12,15 @@ ar:
|
|
12
12
|
description: وصف
|
13
13
|
hashtag: رابطة هاشتاق
|
14
14
|
hero_image: الصورة الرئيسية
|
15
|
-
|
15
|
+
participatory_processes_ids: العمليات التشاركية ذات الصلة
|
16
|
+
promoted: سلط الضوء
|
16
17
|
published_at: نشرت في
|
17
18
|
scope_id: نطاق
|
18
19
|
scopes_enabled: تم تمكين النطاقات
|
19
20
|
short_description: وصف قصير
|
20
|
-
show_statistics: عرض
|
21
|
+
show_statistics: عرض الإحصائيات
|
21
22
|
slogan: شعار
|
22
|
-
slug: سبيكة
|
23
|
+
slug: سبيكة العنوان الشبكي
|
23
24
|
title: عنوان
|
24
25
|
conference_speaker:
|
25
26
|
full_name: الاسم الكامل
|
@@ -67,21 +68,55 @@ ar:
|
|
67
68
|
copy: نسخ
|
68
69
|
select: حدد البيانات التي ترغب في تكرارها
|
69
70
|
title: مؤتمر مكرر
|
71
|
+
conference_publications:
|
72
|
+
create:
|
73
|
+
error: كانت هناك مشكلة في نشر هذا المؤتمر.
|
74
|
+
success: تم نشر المؤتمر بنجاح.
|
75
|
+
destroy:
|
76
|
+
error: كانت هناك مشكلة في إلغاء نشر هذا المؤتمر.
|
77
|
+
success: مؤتمر غير منشور بنجاح.
|
78
|
+
conference_registration:
|
79
|
+
confirm:
|
80
|
+
error: حدثت مشكلة في تأكيد تسجيل المؤتمر هذا.
|
81
|
+
success: تم تأكيد تسجيل المؤتمر بنجاح.
|
70
82
|
conference_speakers:
|
83
|
+
create:
|
84
|
+
error: حدثت مشكلة أثناء إضافة متحدث إلى هذا المؤتمر.
|
85
|
+
success: رئيس المؤتمر تم إنشاؤه بنجاح.
|
86
|
+
destroy:
|
87
|
+
success: تم حذف رئيس المؤتمر بنجاح.
|
71
88
|
edit:
|
72
89
|
title: تحديث المتحدث المؤتمر.
|
73
90
|
update: تحديث
|
74
91
|
index:
|
75
92
|
conference_speakers_title: المتحدثون في المؤتمر
|
76
93
|
new:
|
77
|
-
create:
|
94
|
+
create: إنشاء
|
78
95
|
title: رئيس المؤتمر الجديد.
|
96
|
+
update:
|
97
|
+
error: حدثت مشكلة أثناء تحديث متحدث المؤتمر هذا.
|
98
|
+
success: تم تحديث مكبر صوت المؤتمر بنجاح.
|
79
99
|
conference_user_roles:
|
100
|
+
create:
|
101
|
+
error: حدثت مشكلة أثناء إضافة مشرف إلى هذا المؤتمر.
|
102
|
+
success: تمت إضافة مسؤول المؤتمر بنجاح.
|
103
|
+
destroy:
|
104
|
+
success: تمت إزالة مسؤول المؤتمر بنجاح.
|
80
105
|
edit:
|
106
|
+
title: تحديث مسؤول المؤتمر.
|
81
107
|
update: تحديث
|
108
|
+
index:
|
109
|
+
conference_admins_title: مدراء المؤتمر
|
82
110
|
new:
|
83
|
-
create:
|
111
|
+
create: إنشاء
|
112
|
+
title: مشرف المؤتمر الجديد.
|
113
|
+
update:
|
114
|
+
error: حدثت مشكلة أثناء تحديث مشرف المؤتمر هذا.
|
115
|
+
success: تم تحديث مشرف المؤتمر بنجاح.
|
84
116
|
conferences:
|
117
|
+
create:
|
118
|
+
error: كانت هناك مشكلة في إنشاء هذا المؤتمر.
|
119
|
+
success: تم إنشاء المؤتمر بنجاح.
|
85
120
|
edit:
|
86
121
|
update: تحديث
|
87
122
|
exports:
|
@@ -92,17 +127,32 @@ ar:
|
|
92
127
|
not_published: غير منشور
|
93
128
|
published: نشرت
|
94
129
|
new:
|
95
|
-
create:
|
130
|
+
create: إنشاء
|
96
131
|
title: مؤتمر
|
132
|
+
update:
|
133
|
+
error: حدثت مشكلة أثناء تحديث هذا المؤتمر.
|
134
|
+
success: تم تحديث المؤتمر بنجاح.
|
135
|
+
conferences_copies:
|
136
|
+
create:
|
137
|
+
error: كانت هناك مشكلة في تكرار هذا المؤتمر.
|
138
|
+
success: تم تكرار المؤتمر بنجاح.
|
97
139
|
media_links:
|
140
|
+
create:
|
141
|
+
error: حدثت مشكلة أثناء إنشاء رابط وسائط جديد.
|
142
|
+
success: تم إنشاء رابط الوسائط بنجاح.
|
143
|
+
destroy:
|
144
|
+
success: تم حذف رابط الوسائط بنجاح.
|
98
145
|
edit:
|
99
146
|
title: تحديث رابط الوسائط.
|
100
147
|
update: تحديث
|
101
148
|
index:
|
102
149
|
media_links_title: روابط الوسائط
|
103
150
|
new:
|
104
|
-
create:
|
151
|
+
create: إنشاء
|
105
152
|
title: وصلة الوسائط
|
153
|
+
update:
|
154
|
+
error: حدثت مشكلة أثناء تحديث رابط الوسائط هذا.
|
155
|
+
success: تم تحديث رابط الوسائط بنجاح.
|
106
156
|
menu:
|
107
157
|
conferences: المؤتمرات
|
108
158
|
conferences_submenu:
|
@@ -125,6 +175,7 @@ ar:
|
|
125
175
|
conference:
|
126
176
|
fields:
|
127
177
|
created_at: أنشئت في
|
178
|
+
promoted: سلط الضوء
|
128
179
|
published: نشرت
|
129
180
|
title: عنوان
|
130
181
|
conference_speaker:
|
@@ -138,6 +189,7 @@ ar:
|
|
138
189
|
email: البريد الإلكتروني
|
139
190
|
name: اسم
|
140
191
|
role: وظيفة
|
192
|
+
name: إدارة المؤتمر
|
141
193
|
roles:
|
142
194
|
admin: مدير
|
143
195
|
collaborator: متعاون
|
@@ -167,41 +219,66 @@ ar:
|
|
167
219
|
weight: وزن
|
168
220
|
name: نوع التسجيل
|
169
221
|
partners:
|
222
|
+
create:
|
223
|
+
error: حدثت مشكلة أثناء إضافة شريك لهذا المؤتمر.
|
224
|
+
success: وأضاف شريك المؤتمر بنجاح.
|
225
|
+
destroy:
|
226
|
+
success: تمت إزالة شريك المؤتمر بنجاح.
|
170
227
|
edit:
|
171
228
|
title: تحديث شريك.
|
172
229
|
update: تحديث
|
173
230
|
new:
|
174
|
-
create:
|
231
|
+
create: إنشاء
|
175
232
|
title: شريك جديد
|
233
|
+
update:
|
234
|
+
error: حدثت مشكلة أثناء تحديث شريك لهذا المؤتمر.
|
235
|
+
success: تم تحديث شريك المؤتمر بنجاح.
|
236
|
+
registration_type_publications:
|
237
|
+
create:
|
238
|
+
error: حدثت مشكلة أثناء نشر نوع التسجيل هذا.
|
239
|
+
success: نوع التسجيل نشر بنجاح.
|
240
|
+
destroy:
|
241
|
+
error: حدثت مشكلة في إلغاء نشر نوع التسجيل هذا.
|
242
|
+
success: نوع التسجيل غير منشور بنجاح.
|
176
243
|
registration_types:
|
244
|
+
create:
|
245
|
+
error: حدثت مشكلة أثناء إضافة نوع التسجيل لهذا المؤتمر.
|
246
|
+
success: تمت إضافة نوع تسجيل المؤتمر بنجاح.
|
247
|
+
destroy:
|
248
|
+
success: تمت إزالة نوع تسجيل المؤتمر بنجاح.
|
177
249
|
edit:
|
178
250
|
title: تحديث نوع التسجيل.
|
179
251
|
update: تحديث
|
180
252
|
new:
|
181
|
-
create:
|
253
|
+
create: إنشاء
|
182
254
|
title: نوع التسجيل الجديد
|
255
|
+
update:
|
256
|
+
error: حدثت مشكلة أثناء تحديث نوع التسجيل لهذا المؤتمر.
|
257
|
+
success: تم تحديث نوع تسجيل المؤتمر بنجاح.
|
183
258
|
titles:
|
184
259
|
conferences: المؤتمرات
|
185
260
|
admin_log:
|
186
261
|
conference:
|
187
|
-
create: "%{user_name}
|
262
|
+
create: "%{user_name} أنشأ المؤتمر %{resource_name}"
|
188
263
|
publish: "%{user_name} نشر المؤتمر %{resource_name}"
|
189
264
|
send_conference_diplomas: "أرسلت %{user_name} شهادات حضور إلى %{resource_name} atendees المؤتمر"
|
190
265
|
unpublish: "%{user_name} غير منشور في المؤتمر %{resource_name}"
|
191
266
|
update: "%{user_name} تحديث المؤتمر %{resource_name}"
|
192
267
|
update_diploma: "%{user_name} تحديث شهادات تكوين الحضور لمؤتمر %{resource_name}"
|
193
268
|
conference_speaker:
|
194
|
-
create: "%{user_name}
|
269
|
+
create: "%{user_name} أنشأ المتكلم %{resource_name} في المؤتمر %{space_name}"
|
195
270
|
delete: "%{user_name} أزال المتحدث %{resource_name} من المؤتمر %{space_name}"
|
196
271
|
update: "%{user_name} تحديث المتكلم %{resource_name} في المؤتمر %{space_name}"
|
197
272
|
conference_user_role:
|
198
273
|
create: "%{user_name} دعا %{resource_name} إلى %{space_name} المؤتمر"
|
274
|
+
delete: "%{user_name} أزال المشرف %{resource_name} من المؤتمر %{space_name}"
|
199
275
|
update: "%{user_name} غير دور %{resource_name} في المؤتمر %{space_name}"
|
200
276
|
conferences:
|
201
277
|
conference_registration:
|
202
278
|
confirm: "%{user_name} أكد تسجيل مؤتمر في مؤتمر %{resource_name}"
|
203
279
|
partner:
|
204
|
-
create: "%{user_name}
|
280
|
+
create: "%{user_name} أنشأ %{resource_name} إلى %{space_name} المؤتمر"
|
281
|
+
delete: "%{user_name} أزال المشرف %{resource_name} من المؤتمر %{space_name}"
|
205
282
|
update: "%{user_name} محدث %{resource_name} في المؤتمر %{space_name}"
|
206
283
|
registration_type:
|
207
284
|
create: "%{user_name} أنشأ نوع التسجيل %{resource_name} في المؤتمر %{space_name}"
|
@@ -224,8 +301,15 @@ ar:
|
|
224
301
|
form:
|
225
302
|
slug_help: 'يتم استخدام slugs URL لإنشاء عناوين URL التي تشير إلى هذا المؤتمر. يقبل الحروف والأرقام والشرطات فقط ، ويجب أن يبدأ بحرف. مثال: %{url}'
|
226
303
|
conference_invites:
|
304
|
+
create:
|
305
|
+
error: حدثت مشكلة أثناء دعوة المشارك للانضمام إلى المؤتمر.
|
306
|
+
success: تمت دعوة المشارك بنجاح للانضمام إلى المؤتمر.
|
227
307
|
form:
|
228
308
|
attendee_type: نوع الحضور
|
309
|
+
existing_user: المشارك الحالي
|
310
|
+
invite_explanation: سيتم دعوة المشارك للانضمام إلى المؤتمر وإلى المنظمة أيضًا.
|
311
|
+
non_user: مشارك غير موجود
|
312
|
+
select_user: اختر المشارك
|
229
313
|
index:
|
230
314
|
filter:
|
231
315
|
accepted: وافقت
|
@@ -233,18 +317,22 @@ ar:
|
|
233
317
|
rejected: مرفوض
|
234
318
|
sent: أرسلت
|
235
319
|
filter_by: مصنف بواسطة
|
320
|
+
invite_attendee: دعوة مشارك
|
236
321
|
invites: تدعو
|
237
322
|
search: بحث
|
238
323
|
new:
|
324
|
+
explanation: سيدعى المشارك للانضمام إلى مؤتمر. إذا لم يتم تسجيل بريدها الإلكتروني ، فستتم دعوتها إلى المنظمة أيضًا.
|
239
325
|
invite: دعا
|
240
|
-
new_invite: دعوة
|
326
|
+
new_invite: دعوة مشارك
|
241
327
|
conference_registrations:
|
242
328
|
index:
|
243
329
|
registrations: التسجيلات
|
244
330
|
conference_speakers:
|
245
331
|
form:
|
246
|
-
|
247
|
-
|
332
|
+
existing_user: المشارك الحالي
|
333
|
+
non_user: غير مشارك
|
334
|
+
select_user: اختر المشارك
|
335
|
+
user_type: نوع المشارك
|
248
336
|
index:
|
249
337
|
search: بحث
|
250
338
|
conferences:
|
@@ -282,12 +370,16 @@ ar:
|
|
282
370
|
attendance_verified_by: تم التحقق من الحضور بواسطة
|
283
371
|
certificate_of_attendance: شهادة حضور
|
284
372
|
certificate_of_attendance_description: هذا هو التأكيد على أن <strong>%{user}</strong> قد حضر وشارك في <strong>%{title}</strong> الذي عقد في <strong>%{location}</strong> في <strong>%{start} - %{end}</strong>
|
373
|
+
send_diploma:
|
374
|
+
error: حدثت مشكلة أثناء إرسال شهادات حضور المؤتمر.
|
375
|
+
success: تم إرسال شهادات حضور المؤتمر بنجاح
|
285
376
|
conference:
|
286
377
|
registration_confirm:
|
287
378
|
cancel: إلغاء
|
288
379
|
confirm: تؤكد
|
289
380
|
show:
|
290
381
|
free: حر
|
382
|
+
going: حضور
|
291
383
|
no_slots_available: لا فتحات المتاحة
|
292
384
|
registration: التسجيل
|
293
385
|
conference_program:
|
@@ -306,15 +398,26 @@ ar:
|
|
306
398
|
pending_validation:
|
307
399
|
confirmation_pending: سوف تتلقى التأكيد قريبا
|
308
400
|
details: 'لقد قمت بالتسجيل إلى %{registration_type} نوع بتكلفة %{price} ويمكنك حضور الأحداث التالية:'
|
401
|
+
pending_html: تسجيلك في المؤتمر <a href="%{url}">%{title}</a> انتظار التأكيد.
|
402
|
+
conference_registrations:
|
403
|
+
create:
|
404
|
+
invalid: كانت هناك مشكلة في الانضمام إلى هذا المؤتمر.
|
405
|
+
success: لقد انضممت بنجاح إلى المؤتمر.
|
406
|
+
decline_invitation:
|
407
|
+
invalid: حدثت مشكلة في رفض الدعوة.
|
408
|
+
success: لقد رفضت الدعوة بنجاح.
|
409
|
+
destroy:
|
410
|
+
invalid: حدثت مشكلة أثناء مغادرة هذا المؤتمر.
|
411
|
+
success: لقد تركت المؤتمر بنجاح.
|
309
412
|
conference_speaker:
|
310
413
|
go_to_twitter: انتقل إلى تويتر
|
311
414
|
more_info: مزيد من المعلومات
|
312
|
-
personal_website: موقع
|
415
|
+
personal_website: موقع الويب الشخصي
|
313
416
|
show:
|
314
417
|
more_info: مزيد من المعلومات
|
315
418
|
conference_speaker_cell:
|
316
419
|
personal_url:
|
317
|
-
personal_website: موقع
|
420
|
+
personal_website: موقع الويب الشخصي
|
318
421
|
twitter_handle:
|
319
422
|
go_to_twitter: انتقل إلى تويتر
|
320
423
|
conference_speakers:
|
@@ -337,6 +440,8 @@ ar:
|
|
337
440
|
conference_registration_mailer:
|
338
441
|
confirmation:
|
339
442
|
subject: تم تأكيد تسجيل مؤتمرك
|
443
|
+
pending_validation:
|
444
|
+
subject: تسجيل مؤتمرك في انتظار التأكيد
|
340
445
|
invite_join_conference_mailer:
|
341
446
|
invite:
|
342
447
|
subject: دعوة للانضمام إلى مؤتمر
|
@@ -360,6 +465,7 @@ ar:
|
|
360
465
|
email: البريد الإلكتروني
|
361
466
|
name: اسم
|
362
467
|
registration_type: نوع التسجيل
|
468
|
+
state: الحالة
|
363
469
|
states:
|
364
470
|
confirmed: تم تأكيد
|
365
471
|
pending: قيد الانتظار
|
@@ -374,7 +480,7 @@ ar:
|
|
374
480
|
photo: صورة
|
375
481
|
photos_list:
|
376
482
|
show:
|
377
|
-
related_photos:
|
483
|
+
related_photos: صور
|
378
484
|
registration_types:
|
379
485
|
index:
|
380
486
|
choose_an_option: 'اختر خيار التسجيل الخاص بك:'
|
@@ -392,6 +498,7 @@ ar:
|
|
392
498
|
objectives: الأهداف
|
393
499
|
related_assemblies: الجمعيات ذات الصلة
|
394
500
|
related_consultations: المشاورات ذات الصلة
|
501
|
+
related_participatory_processes: العمليات التشاركية ذات الصلة
|
395
502
|
statistics:
|
396
503
|
answers_count: الأجوبة
|
397
504
|
comments_count: تعليقات
|
@@ -400,7 +507,7 @@ ar:
|
|
400
507
|
endorsements_count: موافقات
|
401
508
|
headline: نشاط
|
402
509
|
meetings_count: اجتماعات
|
403
|
-
orders_count:
|
510
|
+
orders_count: الدعم
|
404
511
|
pages_count: صفحات
|
405
512
|
posts_count: المشاركات
|
406
513
|
projects_count: مشاريع
|
@@ -408,13 +515,13 @@ ar:
|
|
408
515
|
results_count: النتائج
|
409
516
|
surveys_count: الدراسات الاستقصائية
|
410
517
|
users_count: المشاركين
|
411
|
-
votes_count:
|
518
|
+
votes_count: الدعم
|
412
519
|
events:
|
413
520
|
conferences:
|
414
|
-
conference_registration_validation_pending:
|
415
|
-
notification_title: تسجيلك في المؤتمر <a href="%{resource_url}">%{resource_title}</a> انتظار التأكيد.
|
416
521
|
conference_registration_confirmed:
|
417
522
|
notification_title: تم تأكيد تسجيلك للمؤتمر <a href="%{resource_url}">%{resource_title}</a>.
|
523
|
+
conference_registration_validation_pending:
|
524
|
+
notification_title: تسجيلك في المؤتمر <a href="%{resource_url}">%{resource_title}</a> انتظار التأكيد.
|
418
525
|
conference_registrations_over_percentage:
|
419
526
|
email_intro: فتحات "%{resource_title}" التي شغلها المؤتمر تجاوزت %{percentage}٪.
|
420
527
|
email_outro: لقد تلقيت هذا الإشعار لأنك مسؤول عن المساحة التشاركية للمؤتمر.
|
@@ -458,7 +565,10 @@ ar:
|
|
458
565
|
take_part: خذ جزء
|
459
566
|
conferences:
|
460
567
|
conference:
|
568
|
+
more_info: مزيد من المعلومات
|
461
569
|
take_part: خذ جزء
|
570
|
+
index:
|
571
|
+
promoted_conferences: المؤتمرات البارزة
|
462
572
|
order_by_conferences:
|
463
573
|
conferences:
|
464
574
|
zero: "%{count} مؤتمرات"
|