decidim-meetings 0.26.5 → 0.26.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/meetings/admin/create_meeting.rb +1 -0
  3. data/app/commands/decidim/meetings/admin/publish_meeting.rb +1 -1
  4. data/app/commands/decidim/meetings/admin/update_meeting.rb +1 -0
  5. data/app/forms/decidim/meetings/admin/meeting_form.rb +5 -0
  6. data/app/helpers/decidim/meetings/application_helper.rb +13 -2
  7. data/app/presenters/decidim/meetings/meeting_presenter.rb +1 -6
  8. data/app/views/decidim/meetings/admin/meetings/edit.html.erb +1 -0
  9. data/app/views/decidim/meetings/admin/meetings/index.html.erb +1 -0
  10. data/app/views/decidim/meetings/admin/meetings/new.html.erb +1 -0
  11. data/app/views/decidim/meetings/admin/registrations/_form.html.erb +1 -1
  12. data/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +1 -1
  13. data/config/environment.rb +0 -0
  14. data/config/locales/ar.yml +252 -1
  15. data/config/locales/ca.yml +3 -1
  16. data/config/locales/cs.yml +5 -3
  17. data/config/locales/de.yml +27 -6
  18. data/config/locales/el.yml +230 -4
  19. data/config/locales/en.yml +2 -0
  20. data/config/locales/es-MX.yml +4 -5
  21. data/config/locales/es-PY.yml +4 -5
  22. data/config/locales/es.yml +5 -3
  23. data/config/locales/eu.yml +17 -17
  24. data/config/locales/fa-IR.yml +1 -0
  25. data/config/locales/fi-plain.yml +5 -6
  26. data/config/locales/fi.yml +2 -3
  27. data/config/locales/fr-CA.yml +4 -5
  28. data/config/locales/fr.yml +3 -1
  29. data/config/locales/ga-IE.yml +3 -1
  30. data/config/locales/gl.yml +4 -4
  31. data/config/locales/hu.yml +3 -3
  32. data/config/locales/id-ID.yml +6 -1
  33. data/config/locales/is-IS.yml +5 -2
  34. data/config/locales/it.yml +5 -4
  35. data/config/locales/ja.yml +7 -8
  36. data/config/locales/kaa.yml +7 -0
  37. data/config/locales/lb.yml +9 -3
  38. data/config/locales/lt.yml +2 -5
  39. data/config/locales/lv.yml +6 -1
  40. data/config/locales/nl.yml +1 -4
  41. data/config/locales/no.yml +2 -2
  42. data/config/locales/pl.yml +5 -3
  43. data/config/locales/pt-BR.yml +6 -4
  44. data/config/locales/pt.yml +4 -2
  45. data/config/locales/ro-RO.yml +14 -5
  46. data/config/locales/ru.yml +8 -1
  47. data/config/locales/sk.yml +6 -1
  48. data/config/locales/sv.yml +3 -6
  49. data/config/locales/tr-TR.yml +6 -4
  50. data/config/locales/uk.yml +8 -1
  51. data/config/locales/zh-CN.yml +5 -3
  52. data/config/locales/zh-TW.yml +651 -0
  53. data/lib/decidim/meetings/version.rb +1 -1
  54. metadata +17 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34983e307fe7c41349984c0c3422e84247c750b9df85b95ebeefacc0ac05c338
4
- data.tar.gz: 4ddf72969076dce44f4dc31ecf47dff6832581a76ec0cf3df095c009ecdb22aa
3
+ metadata.gz: 37c964d1b29ad48359fdd4245f18cc4c7f4e12428cc5c80de0f38269ad9255f0
4
+ data.tar.gz: 3efde7104466a262dcc215fa2332a2884231db095c9a3417e22e23181be39cd0
5
5
  SHA512:
6
- metadata.gz: 2ab072633a6503601c8095f9a1444c81568a0c6eedef736f4cb3681e8668690f21bddafcd2cbba12ef7774c5823ba3efc08c1da3a50a165ed4601a6578332711
7
- data.tar.gz: 5a80399af3317c7086f9b04b5c1fb43baaaf439778f79174ace0e4504d3883beb0c1c6431fbd9d1b055360c6e27700e84dea29299e5ad6750e9290e66f441365
6
+ metadata.gz: e89c39781859b089775d51085ef4641be73d3e979ed91bd804a5cfe18e480ccc779ad1b0932a9fb89a6c9e1cf5c3dd3cced4b47f828942b5db5f8699ecfd4e11
7
+ data.tar.gz: a8f33ff9c3a7920746527c1acec8ae08e0a3ed82dcb6f154f74c4171964b8291e828b266100f37cd9ed66418612138bf6520305f2db2d44bd1f2970e31c1ec27
@@ -53,6 +53,7 @@ module Decidim
53
53
  transparent: form.transparent,
54
54
  author: form.current_organization,
55
55
  registration_terms: form.current_component.settings.default_registration_terms,
56
+ registrations_enabled: form.registrations_enabled,
56
57
  component: form.current_component,
57
58
  questionnaire: Decidim::Forms::Questionnaire.new,
58
59
  customize_registration_email: form.customize_registration_email,
@@ -26,7 +26,7 @@ module Decidim
26
26
 
27
27
  transaction do
28
28
  publish_meeting
29
- send_notification
29
+ send_notification unless meeting.previously_published?
30
30
  schedule_upcoming_meeting_notification
31
31
  end
32
32
 
@@ -52,6 +52,7 @@ module Decidim
52
52
  registration_type: form.registration_type,
53
53
  registration_url: form.registration_url,
54
54
  available_slots: form.available_slots,
55
+ registrations_enabled: form.registrations_enabled,
55
56
  type_of_meeting: form.clean_type_of_meeting,
56
57
  address: form.address,
57
58
  latitude: form.latitude,
@@ -13,6 +13,7 @@ module Decidim
13
13
  attribute :private_meeting, Boolean
14
14
  attribute :transparent, Boolean
15
15
  attribute :registration_type, String
16
+ attribute :registrations_enabled, Boolean, default: false
16
17
  attribute :registration_url, String
17
18
  attribute :available_slots, Integer, default: 0
18
19
  attribute :customize_registration_email, Boolean
@@ -135,6 +136,10 @@ module Decidim
135
136
  end
136
137
  end
137
138
 
139
+ def registrations_enabled
140
+ on_this_platform?
141
+ end
142
+
138
143
  def embeddable_meeting_url
139
144
  if online_meeting_url.present? && %w(embed_in_meeting_page open_in_live_event_page).include?(iframe_embed_type)
140
145
  embedder_service = Decidim::Meetings::MeetingIframeEmbedder.new(online_meeting_url)
@@ -60,12 +60,23 @@ module Decidim
60
60
  # frontend, the meeting body is considered as safe content; that's unless
61
61
  # the meeting comes from a collaborative_draft or a participatory_text.
62
62
  def safe_content?
63
- rich_text_editor_in_public_views? || @meeting.official?
63
+ rich_text_editor_in_public_views? || safe_content_admin?
64
+ end
65
+
66
+ # For admin entered content, the meeting body can contain certain extra
67
+ # tags, such as iframes.
68
+ def safe_content_admin?
69
+ @meeting.official?
64
70
  end
65
71
 
66
72
  # If the content is safe, HTML tags are sanitized, otherwise, they are stripped.
67
73
  def render_meeting_body(meeting)
68
- Decidim::ContentProcessor.render(render_sanitized_content(meeting, :description), "div")
74
+ sanitized = render_sanitized_content(meeting, :description)
75
+ if safe_content?
76
+ Decidim::ContentProcessor.render_without_format(sanitized).html_safe
77
+ else
78
+ Decidim::ContentProcessor.render(sanitized, "div")
79
+ end
69
80
  end
70
81
 
71
82
  def prevent_timeout_seconds
@@ -31,12 +31,7 @@ module Decidim
31
31
  def description(links: false, extras: true, strip_tags: false, all_locales: false)
32
32
  return unless meeting
33
33
 
34
- new_description = handle_locales(meeting.description, all_locales) do |content|
35
- renderer = Decidim::ContentRenderers::HashtagRenderer.new(sanitized(content))
36
- renderer.render(links: links).html_safe
37
- end
38
-
39
- content_handle_locale(new_description, all_locales, extras, links, strip_tags)
34
+ content_handle_locale(meeting.description, all_locales, extras, links, strip_tags)
40
35
  end
41
36
 
42
37
  def location(all_locales: false)
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, url: { action: "update" }, html: { class: "form meetings_form edit_meeting" }) do |f| %>
2
3
  <%= render partial: "form", object: f, locals: { title: t(".title") } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form meetings_form new_meeting" }) do |f| %>
2
3
  <%= render partial: "form", object: f, locals: { title: t(".title") } %>
3
4
 
@@ -42,7 +42,7 @@
42
42
  </div>
43
43
 
44
44
  <div class="row column">
45
- <%= form.translated :editor, :registration_terms %>
45
+ <%= form.translated :editor, :registration_terms, toolbar: :content %>
46
46
  </div>
47
47
  </div>
48
48
  </div>
@@ -14,7 +14,7 @@
14
14
  <%= meeting.start_time.strftime("%H:%M") %> - <%= meeting.end_time.strftime("%H:%M") %>
15
15
  </div>
16
16
  </div>
17
- <%= decidim_sanitize_editor(present(meeting).description) %>
17
+ <%= decidim_sanitize_editor present(meeting).description(strip_tags: true) %>
18
18
  </div>
19
19
  </div>
20
20
  </div>
File without changes
@@ -4,27 +4,58 @@ ar:
4
4
  close_meeting:
5
5
  attendees_count: عدد الحضور
6
6
  attending_organizations: قائمة المنظمات التي حضرت
7
+ audio_url: عنوان URL السمعي
7
8
  closing_report: الدقائق
8
9
  closing_visible: مرئي
9
10
  contributions_count: عدد المساهمات
10
11
  proposal_ids: المقترحات التي تم إنشاؤها في الاجتماع
12
+ video_url: عنوان URL الفيديو
11
13
  meeting:
12
14
  address: عنوان
13
15
  available_slots: فتحات المتاحة لهذا الاجتماع
16
+ customize_registration_email: تخصيص بريد التسجيل الإلكتروني
14
17
  decidim_category_id: الفئة
15
18
  decidim_scope_id: نطاق
19
+ decidim_user_group_id: مجموعة مستخدم
16
20
  description: وصف
21
+ end_time: وقت الانتهاء
22
+ id: المعرف ID
23
+ iframe_embed_type: نوع تضمين الاطار Iframe
17
24
  location: موقعك
18
25
  location_hints: تلميحات الموقع
26
+ online_meeting_url: رابط URL للاجتماع عبر الانترنت
27
+ organizer_gid: قم بالإنشاء كَ
19
28
  organizer_id: منظم
20
29
  private_meeting: اجتماع خاص
30
+ registration_email_custom_content: المحتوى المخصص لتسجيل البريد الإلكتروني
21
31
  registration_form_enabled: تم تمكين نموذج التسجيل
22
32
  registration_terms: شروط التسجيل
33
+ registration_type: نوع التسجيل
34
+ registration_url: رابط URL التسجيل
23
35
  registrations_enabled: تم تمكين التسجيلات
36
+ reserved_slots: خانات محجوزة لهذا الاجتماع
37
+ start_time: وقت البدء
24
38
  title: عنوان
25
39
  transparent: شفاف
40
+ type_of_meeting: النوع
41
+ meeting_agenda:
42
+ title: عنوان
43
+ visible: مرئي
44
+ meeting_agenda_items:
45
+ description: الوصف
46
+ duration: المدة الزمنية
47
+ title: العنوان
48
+ meeting_registration_invite:
49
+ email: البريد الإلكتروني
50
+ name: الإسم
51
+ validate_registration_code:
52
+ code: الرمز
26
53
  errors:
27
54
  models:
55
+ meeting:
56
+ attributes:
57
+ iframe_embed_type:
58
+ not_embeddable: لا يمكن تضمين عنوان URL هذا في صفحة الاجتماع أو الحدث المباشر
28
59
  meeting_agenda:
29
60
  attributes:
30
61
  base:
@@ -70,14 +101,30 @@ ar:
70
101
  meetings:
71
102
  category_id_eq:
72
103
  label: الفئة
104
+ closed_at_present:
105
+ label: الحالة
106
+ values:
107
+ 'false': مفتوح
108
+ 'true': مغلق
109
+ is_upcoming_true:
110
+ label: التاريخ
111
+ values:
112
+ 'false': السابق
113
+ 'true': القادم
73
114
  origin_eq:
115
+ label: الأصل
74
116
  values:
75
117
  citizen: المواطن
118
+ official: رسمي
76
119
  user_group: مجموعات المستخدمين
120
+ scope_id_eq:
121
+ label: نطاق
77
122
  type_eq:
78
123
  label: نوع الاجتماع
79
124
  values:
125
+ hybrid: هجين
80
126
  in_person: وجهًا لوجه
127
+ online: على الإنترنت
81
128
  meeting_copies:
82
129
  create:
83
130
  error: كانت هناك مشكلة في تكرار هذا الاجتماع.
@@ -89,18 +136,28 @@ ar:
89
136
  components:
90
137
  meetings:
91
138
  actions:
139
+ comment: تعليق
92
140
  join: انضم
93
141
  name: اجتماعات
94
142
  settings:
95
143
  global:
96
144
  announcement: إعلان
97
145
  comments_enabled: تم تمكين التعليقات
146
+ comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
147
+ creation_enabled_for_participants: يمكن للمشاركين إنشاء اجتماعات
98
148
  default_registration_terms: شروط التسجيل الافتراضية
99
149
  enable_pads_creation: تمكين إنشاء منصات
150
+ maps_enabled: تم تمكين الخرائط
151
+ registration_code_enabled: تم تمكين رمز التسجيل
100
152
  resources_permissions_enabled: يمكن تعيين أذونات الإجراءات لكل اجتماع
153
+ scope_id: نطاق
154
+ scopes_enabled: النطاقات مفعلة
155
+ terms_and_conditions_url_for_meeting_creators: أحكام وشروط عناوين URL لمنشئي الاجتماع
101
156
  step:
102
157
  announcement: إعلان
103
158
  comments_blocked: تم حظر التعليقات
159
+ creation_enabled_for_participants: تم تمكين إنشاء الاجتماع بواسطة المشاركين
160
+ creation_enabled_for_user_groups: تم تمكين إنشاء الاجتماع بواسطة مجموعات المستخدم
104
161
  events:
105
162
  meetings:
106
163
  meeting_closed:
@@ -110,10 +167,12 @@ ar:
110
167
  email_subject: لقد تم اغلاق الملتقى "%{resource_title}"
111
168
  notification_title: لقد تم إغلاق الملتقى <a href="%{resource_path}">%{resource_title}</a>.
112
169
  follower:
170
+ email_intro: 'تم إغلاق اجتماع %{resource_title}. يمكنك قراءة المستخلصات على الصفحة الخاصة به:'
113
171
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع اجتماع "%{resource_title}". يمكنك إلغاء تتبعه من الرابط السابق.
114
172
  email_subject: لقد تم اغلاق الملتقى "%{resource_title}"
115
173
  notification_title: لقد تم إغلاق الملتقى <a href="%{resource_path}">%{resource_title}</a>.
116
174
  meeting_created:
175
+ button_text: التسجيل في الاجتماع
117
176
  email_intro: تمت إضافة الاجتماع "%{resource_title}" إلى "%{participatory_space_title}" الذي تتابعه.
118
177
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع "%{participatory_space_title}". يمكنك إلغاء تتبعه من الرابط السابق.
119
178
  email_subject: تمت إضافة اجتماع جديد إلى %{participatory_space_title}
@@ -145,6 +204,9 @@ ar:
145
204
  email_outro: لقد تلقيت هذا الإشعار لأنك تتابع اجتماع "%{resource_title}". يمكنك إلغاء تتبعه من الرابط السابق.
146
205
  email_subject: سيبدأ الاجتماع "%{resource_title}" في أقل من 48 ساعة.
147
206
  notification_title: سيبدأ الاجتماع <a href="%{resource_path}">%{resource_title}</a> في أقل من 48 ساعة.
207
+ forms:
208
+ meetings:
209
+ attendees_count_help_text: لا تنسى أن تضمّن العدد الإجمالي للحضور في اجتماعك، سواء كانوا حاضرين شخصياً، أو على الإنترنت أو بطريقة هجينة.
148
210
  gamification:
149
211
  badges:
150
212
  attended_meetings:
@@ -166,6 +228,15 @@ ar:
166
228
  confirm_destroy: هل أنت متأكد أنك تريد حذف هذا الاجتماع؟
167
229
  destroy: حذف
168
230
  edit: تعديل
231
+ invalid_destroy:
232
+ proposals_count:
233
+ zero: 'لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به:'
234
+ one: 'لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراح مرتبط به:'
235
+ two: 'لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحين مرتبطين به:'
236
+ few: 'لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به:'
237
+ many: 'لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به:'
238
+ other: 'لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به:'
239
+ manage_poll: إدارة الاستطلاع
169
240
  new: اجتماع جديد
170
241
  preview: معاينة
171
242
  registrations: التسجيلات
@@ -202,6 +273,8 @@ ar:
202
273
  invalid: حدثت مشكلة أثناء تحديث جدول الأعمال هذا
203
274
  success: تم تحديث جدول الأعمال بنجاح
204
275
  exports:
276
+ answers: الأجوبة
277
+ meeting_comments: التعليقات
205
278
  meetings: اجتماعات
206
279
  registrations: التسجيلات
207
280
  invite_join_meeting_mailer:
@@ -241,17 +314,40 @@ ar:
241
314
  success: تم إغلاق الاجتماع بنجاح
242
315
  create:
243
316
  invalid: كانت هناك مشكلة في إنشاء هذا الاجتماع
317
+ success: تم إنشاء الاجتماع بنجاح. لاحظ أن هذا غير منشور حتى الآن، تحتاج إلى نشره بنفسك.
244
318
  destroy:
319
+ invalid:
320
+ proposals_count:
321
+ zero: لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به
322
+ one: لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراح مرتبط به
323
+ two: لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحين مرتبطين به
324
+ few: لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به
325
+ many: لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به
326
+ other: لا يمكن حذف هذا الاجتماع لأنه يحتوي على %{count} اقتراحات مرتبطة به
245
327
  success: تم حذف الاجتماع بنجاح
246
328
  edit:
329
+ title: تعديل الاجتماعات
247
330
  update: تحديث
248
331
  form:
332
+ address_help: 'العنوان: مستخدم من قبل Geocoder للعثور على الموقع'
333
+ available_slots_help: تركه على 0 إذا كان لديك أعدد غير محدود من الأماكن الشاغرة
334
+ disclaimer: 'إخلاء المسؤولية: باستخدام نظام تسجيل خارجي، أنت على علم بأن منظمي %{organization} ليسوا مسؤولين عن البيانات المقدمة من المستخدمين إلى الخدمة الخارجية.'
335
+ location_help: 'الموقع: رسالة موجهة إلى المستخدمين تعني المكان للالتقاء به في'
336
+ location_hints_help: 'توضيح حول الموقع: معلومات إضافية. على سبيل المثال: إدراج طابق المبنى في حال كان الاجتماع شخصيا، أو كلمة مرور الاجتماع إذا كان اجتماعا على الإنترنت يحتوي على تقييد الدخول.'
337
+ online_meeting_url_help: 'الرابط: السماح للمشاركين بالاتصال مباشرة باجتماعك'
249
338
  registration_email_help: سيظهر هذا النص في منتصف البريد الإلكتروني الخاص بتأكيد التسجيل مباشرة بعد رمز التسجيل.
339
+ registration_url_help: 'الرابط: يتيح للمشاركين استخدام الخدمة الخارجية التي تستخدمها للتسجيل'
340
+ select_a_meeting_type: الرجاء تحديد نوع الاجتماع
341
+ select_a_registration_type: الرجاء تحديد نوع التسجيل
342
+ select_an_iframe_access_level: الرجاء تحديد مستوى الوصول إلى iframe
250
343
  index:
251
344
  title: اجتماعات
252
345
  new:
253
346
  create: إنشاء
254
347
  title: إنشاء اجتماع
348
+ publish:
349
+ invalid: طرأت مشكلة أثناء نشر هذا الاجتماع
350
+ success: تم نشر الاجتماع بنجاح
255
351
  service:
256
352
  description: وصف
257
353
  down: أسفل
@@ -262,9 +358,18 @@ ar:
262
358
  services:
263
359
  add_service: إضافة الخدمة
264
360
  services: خدمات
361
+ unpublish:
362
+ invalid: طرأت مشكلة أثناء إلغاء نشر هذا الاجتماع
363
+ success: تم الغاء نشر الاجتماع بنجاح
265
364
  update:
266
365
  invalid: حدثت مشكلة أثناء تحديث هذا الاجتماع
267
366
  success: تم تحديث الاجتماع بنجاح
367
+ meetings_poll:
368
+ form:
369
+ title: تعديل استبيان الاستطلاع لـ %{questionnaire_for}
370
+ update:
371
+ invalid: طرأت مشكلة خلال تحديث استطلاع الرأي هذا
372
+ success: تم تحديث استطلاع الرأي الخاص بالاجتماع بنجاح
268
373
  models:
269
374
  meeting:
270
375
  name: لقاء
@@ -276,6 +381,7 @@ ar:
276
381
  form:
277
382
  available_slots_help: اتركه إلى 0 إذا كان لديك فتحات غير محدودة المتاحة.
278
383
  invites: دعوات
384
+ recommendation_message: لأسباب تتعلق بالخصوصية، نوصي بحذف نموذج التسجيل هذا حالما انتهيت منه. ويكون هذا تلقائياً بعد ثلاثة أشهر من انتهاء الاجتماع.
279
385
  registration_form: إستمارة تسجيل
280
386
  registrations_count:
281
387
  zero: كان هناك %{count} التسجيلات.
@@ -310,6 +416,10 @@ ar:
310
416
  application_helper:
311
417
  filter_category_values:
312
418
  all: الكل
419
+ filter_meeting_space_values:
420
+ all: الكل
421
+ filter_scope_values:
422
+ all: الكل
313
423
  calendar_modal:
314
424
  calendar_url: العنوان الشبكي للتقويم
315
425
  close_window: أغلق النافذة
@@ -317,14 +427,30 @@ ar:
317
427
  conference_venues: أماكن المؤتمر
318
428
  content_blocks:
319
429
  upcoming_meetings:
430
+ name: الاجتماعات المقبلة
431
+ upcoming_meetings: الاجتماعات القادمة
320
432
  view_all_meetings: عرض الكل
321
433
  directory:
322
434
  meetings:
323
435
  index:
324
436
  meetings: اجتماعات
325
437
  space_type: الفضاء التشاركي
438
+ iframe_access_level:
439
+ all: جميع الزوار
440
+ registered: المشاركون المسجلون في هذا الاجتماع
441
+ signed_in: للمشاركين المسجلين فقط
442
+ iframe_embed_type:
443
+ embed_in_meeting_page: تضمين في صفحة الاجتماع
444
+ none: بلا
445
+ open_in_live_event_page: فتح في صفحة الحدث المباشر (مع استطلاعات الرأي الاختيارية)
446
+ open_in_new_tab: فتح عنوان الرابط URL في تبويب جديد
326
447
  last_activity:
327
448
  new_meeting_at_html: "<span>اجتماع جديد في %{link}</span>"
449
+ layouts:
450
+ live_event:
451
+ administrate: إدارة
452
+ close: إغلاق
453
+ questions: الأسئلة
328
454
  mailer:
329
455
  invite_join_meeting_mailer:
330
456
  invite:
@@ -334,33 +460,108 @@ ar:
334
460
  subject: تم تأكيد تسجيل اجتماعك
335
461
  meeting:
336
462
  not_allowed: غير مسموح لك بمشاهدة هذا الاجتماع
463
+ meeting_closes:
464
+ edit:
465
+ back: العودة
466
+ close: إغلاق الاجتماع
467
+ title: إغلاق الاجتماع
337
468
  meetings:
469
+ calendar_modal:
470
+ add_to_calendar: إضافة إلى التقويم
471
+ apple: إضافة إلى تقويم أبل Apple
472
+ close_window: إغلاق النافذة
473
+ full_details_html: للحصول على التفاصيل الكاملة انتقل إلى %{link}
474
+ google: أضف إلى تقويم Google
475
+ outlook: إضافة إلى تقويم أبل Apple
476
+ count:
477
+ meetings_count:
478
+ zero: "%{count} اجتماعات"
479
+ one: "%{count} اجتماع"
480
+ two: "%{count} اجتماعين"
481
+ few: "%{count} اجتماعات"
482
+ many: "%{count} اجتماعات"
483
+ other: "%{count} اجتماعات"
484
+ create:
485
+ invalid: طرأت مشكلة خلال إنشاء هذا الاجتماع.
486
+ success: لقد قمت بإنشاء الاجتماع بنجاح.
487
+ edit:
488
+ back: العودة
489
+ title: تحرير الاجتماع
490
+ update: تحديث
338
491
  filters:
492
+ activity: نشاطي
493
+ all: الكل
339
494
  category: الفئة
340
495
  date: تاريخ
496
+ date_values:
497
+ all: الكل
498
+ past: السابق
499
+ upcoming: القادم
500
+ my_meetings: اجتماعاتي
501
+ origin: الأصل
341
502
  origin_values:
503
+ all: الكل
342
504
  citizens: المواطنون
505
+ official: رسمي
506
+ scope: نطاق
343
507
  search: بحث
508
+ type: النوع
509
+ type_values:
510
+ all: الكل
511
+ hybrid: هجين
512
+ in_person: وجهًا لوجه
513
+ online: على الإنترنت
344
514
  filters_small_view:
345
515
  close_modal: إغلاق مشروط
346
516
  filter: منقي
347
517
  filter_by: مصنف بواسطة
348
518
  unfold: كشف
349
519
  form:
520
+ address_help: 'العنوان: مستخدم من قبل Geocoder للعثور على الموقع'
521
+ available_slots_help: تركه على 0 إذا كان لديك أعدد غير محدود من الأماكن الشاغرة
522
+ create_as: إنشاء الاجتماع ك
523
+ disclaimer: 'إخلاء المسؤولية: باستخدام نظام تسجيل خارجي، أنت على علم بأن منظمي %{organization} ليسوا مسؤولين عن البيانات المقدمة من المستخدمين إلى الخدمة الخارجية.'
524
+ location_help: 'الموقع: رسالة موجهة إلى المستخدمين تعني مكان للالتقاء به في'
525
+ location_hints_help: 'توضيح حول الموقع: معلومات إضافية. على سبيل المثال: إدراج طابق المبنى في حال كان الاجتماع شخصيا، أو كلمة مرور الاجتماع إذا كان اجتماعا على الإنترنت يحتوي على تقييد الدخول.'
526
+ online_meeting_url_help: 'الرابط: السماح للمشاركين بالاتصال مباشرة باجتماعك'
527
+ registration_url_help: 'الرابط: يتيح للمشاركين استخدام الخدمة الخارجية التي تستخدمها للتسجيل'
350
528
  select_a_category: يُرجى اختيار فئة
529
+ select_a_meeting_type: الرجاء تحديد نوع الاجتماع
530
+ select_a_registration_type: الرجاء تحديد نوع التسجيل
531
+ select_an_iframe_access_level: الرجاء تحديد مستوى الوصول إلى iframe
532
+ index:
533
+ click_here: عرض كافة الاجتماعات
534
+ new_meeting: اجتماع جديد
535
+ see_all: عرض كافة الاجتماعات
536
+ see_all_withdrawn: عرض جميع الاجتماعات المسحوبة
537
+ text_banner: أنت تستعرض قائمة الاجتماعات التي تم سحبها من قبل مؤلفيها. %{go_back_link}.
351
538
  meeting_minutes:
352
539
  related_information: معلومات ذات صله
353
540
  meetings:
354
541
  no_meetings_warning: لا توجد اجتماعات تطابق معايير البحث الخاصة بك أو لا يوجد أي اجتماع مجدولة.
355
542
  upcoming_meetings_warning: حاليًا ، لا توجد اجتماعات مجدولة ، ولكن يمكنك هنا العثور على جميع الاجتماعات السابقة المدرجة.
543
+ new:
544
+ back: العودة
545
+ create: إنشاء
546
+ title: إنشاء اجتماعك
356
547
  registration_confirm:
357
548
  cancel: إلغاء
358
549
  confirm: تؤكد
359
550
  show:
360
551
  attendees: الحضور الحضور
552
+ back: العودة إلى القائمة
553
+ close_meeting: اجتماع قريب
361
554
  contributions: عدد المساهمات
362
- join: أنضم إلى الأجتماع
555
+ date: تاريخ
556
+ edit_meeting: تعديل الاجتماعات
557
+ going: لقد قمت بالتسجيل لهذا الاجتماع
558
+ leave: إلغاء التسجيل الخاص بك
559
+ leave_confirmation: هل أنت متأكد من أنك تريد إلغاء تسجيلك لهذا الاجتماع؟
560
+ link_available_soon: سيكون الرابط متوفر قريباً
561
+ link_closed: وسيتاح الرابط للانضمام للاجتماع قبل بضع دقائق من بدئه
562
+ live_event: هذا الاجتماع منعقد الآن
363
563
  meeting_minutes: محضر الاجتماع
564
+ micro_camera_permissions_warning: عند النقر على الزر أدناه، سيتم طلب أذونات الميكروفون و/أو الكاميرا، وسوف تنضم إلى مؤتمر الفيديو
364
565
  no_slots_available: لا فتحات المتاحة
365
566
  organizations: حضور المنظمات
366
567
  registration_code_help_text: رمز التسجيل الخاص بك
@@ -375,6 +576,13 @@ ar:
375
576
  many: "%{count} فتحات المتبقية"
376
577
  other: "%{count} فتحات المتبقية"
377
578
  view: رأي
579
+ visit_finished: عرض الاجتماع السابق
580
+ withdraw_btn_hint: يمكن أن تسحب اجتماعك اذا غيرت رأيك. لا يتم إلغاء الاجتماع بل سيظهر في قائمة الاجتماعات المسحوبة.
581
+ withdraw_confirmation_html: هل أنت متأكد من أنك تريد سحب هذا الاجتماع؟<br><br><strong>لا يمكن إلغاء هذا الإجراء!</strong>
582
+ withdraw_meeting: سحب الاجتماع
583
+ update:
584
+ invalid: طرأت مشكلة خلال تحديث الاجتماع.
585
+ success: لقد قمت بتحديث الاجتماع بنجاح.
378
586
  meetings_map:
379
587
  view_meeting: عرض الاجتماع
380
588
  models:
@@ -392,19 +600,50 @@ ar:
392
600
  fields:
393
601
  closed: مغلق
394
602
  end_time: تاريخ الانتهاء
603
+ id: المعرف ID
395
604
  map: خريطة
605
+ official_meeting: الاجتماع الرسمي
396
606
  start_time: تاريخ البدء
397
607
  title: عنوان
398
608
  polls:
399
609
  questions:
610
+ closed_question:
611
+ question_results: نتائج السؤال
612
+ index:
613
+ empty_questions: خلال هذا الاجتماع، سيتم إرسال بعض الأسئلة وسوف تتمكن من الإجابة عليها. سيتم عرضها هنا.
400
614
  index_admin:
615
+ admin_dashboard: لوحة المدراء
616
+ edit: تحرير في لوحة المدراء
617
+ question: سؤال
618
+ received_answer: الإجابة المتلقاة
619
+ received_answers: الإجابات المتلقاة
401
620
  results: النتائج
621
+ send: إرسال
622
+ sent: تم الإرسال
623
+ published_question:
624
+ max_choices_alert: تم تحديد عدد خيارات اكثر من اللازم
625
+ question: سؤال
626
+ question_replied: تم الرد على السؤال
627
+ reply_question: الرد على السؤال
628
+ public_participants_list:
629
+ attending_participants: المشاركون الحاضرون
630
+ hidden_participants_count:
631
+ zero: و %{count} أشخاص آخرين
632
+ one: و %{count} شخص آخر
633
+ two: و %{count} شخصين آخرين
634
+ few: و %{count} أشخاص آخرين
635
+ many: و %{count} أشخاص آخرين
636
+ other: و %{count} أشخاص آخرين
402
637
  read_more: "(قراءة المزيد)"
403
638
  registration_mailer:
404
639
  confirmation:
405
640
  confirmed_html: تم تأكيد تسجيلك للاجتماع <a href="%{url}">%{title}</a>.
406
641
  details: ستجد تفاصيل الاجتماع في المرفق.
407
642
  registration_code: رمز التسجيل الخاص بك هو %{code}.
643
+ registration_type:
644
+ on_different_platform: على منصة مختلفة
645
+ on_this_platform: على هذه المنصة
646
+ registration_disabled: تعطيل التسجيل
408
647
  registrations:
409
648
  create:
410
649
  invalid: حدثت مشكلة أثناء الانضمام إلى هذا الاجتماع.
@@ -415,9 +654,19 @@ ar:
415
654
  destroy:
416
655
  invalid: حدثت مشكلة أثناء مغادرة هذا الاجتماع.
417
656
  success: لقد تركت الاجتماع بنجاح.
657
+ type_of_meeting:
658
+ hybrid: هجين
659
+ in_person: وجهًا لوجه
660
+ online: على الإنترنت
418
661
  types:
419
662
  private_meeting: اجتماع خاص
420
663
  transparent: شفاف
664
+ withdraw: تم السحب
665
+ versions:
666
+ back_to_resource: العودة إلى الاجتماع
667
+ withdraw:
668
+ error: حدث خطأ أثناء سحب الاجتماع
669
+ success: تم سحب الاجتماع بنجاح
421
670
  metrics:
422
671
  meetings:
423
672
  description: عدد الاجتماعات التي تم إنشاؤها
@@ -437,6 +686,8 @@ ar:
437
686
  proposals_from_meeting:
438
687
  meeting_proposal: 'المقترحات ذات الصلة:'
439
688
  proposal_meeting: 'اجتماعات ذات صلة:'
689
+ statistics:
690
+ meetings_count: الاجتماعات
440
691
  devise:
441
692
  mailer:
442
693
  join_meeting:
@@ -56,6 +56,8 @@ ca:
56
56
  attributes:
57
57
  iframe_embed_type:
58
58
  not_embeddable: Aquesta adreça URL no es pot incrustar a la pàgina de la trobada o de l'esdeveniment en directe
59
+ online_meeting_url:
60
+ url_format: Ha de ser una URL vàlida
59
61
  meeting_agenda:
60
62
  attributes:
61
63
  base:
@@ -529,7 +531,7 @@ ca:
529
531
  close_meeting: Tancar trobada
530
532
  contributions: Nombre d'aportacions
531
533
  date: Data
532
- edit_close_meeting: Editeu l'informe de la reunió
534
+ edit_close_meeting: Editar l'informe de la trobada
533
535
  edit_meeting: Editar la trobada
534
536
  going: T'has inscrit en aquesta trobada
535
537
  join: Unir-se a la trobada