decidim-core 0.27.4 → 0.27.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/activity_cell.rb +2 -2
- data/app/cells/decidim/card_cell.rb +2 -2
- data/app/cells/decidim/card_m/top.erb +1 -1
- data/app/cells/decidim/card_m_cell.rb +1 -1
- data/app/cells/decidim/scopes_picker/scope_picker_values.erb +1 -1
- data/app/cells/decidim/tags_cell.rb +3 -1
- data/app/cells/decidim/upload_modal/modal.erb +4 -1
- data/app/cells/decidim/upload_modal_cell.rb +8 -4
- data/app/cells/decidim/user_profile_cell.rb +1 -1
- data/app/cells/decidim/version_cell.rb +1 -1
- data/app/cells/decidim/versions_list_cell.rb +1 -1
- data/app/commands/decidim/create_omniauth_registration.rb +2 -4
- data/app/commands/decidim/endorse_resource.rb +2 -0
- data/app/commands/decidim/messaging/reply_to_conversation.rb +3 -0
- data/app/commands/decidim/messaging/start_conversation.rb +3 -0
- data/app/commands/decidim/search.rb +1 -1
- data/app/commands/decidim/unendorse_resource.rb +1 -1
- data/app/controllers/concerns/decidim/devise_authentication_methods.rb +36 -0
- data/app/controllers/concerns/decidim/force_authentication.rb +6 -2
- data/app/controllers/concerns/decidim/paginable.rb +1 -1
- data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +1 -22
- data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
- data/app/controllers/decidim/devise/sessions_controller.rb +1 -24
- data/app/controllers/decidim/links_controller.rb +1 -1
- data/app/controllers/decidim/searches_controller.rb +1 -1
- data/app/controllers/decidim/user_timeline_controller.rb +1 -1
- data/app/controllers/decidim/widgets_controller.rb +6 -0
- data/app/events/decidim/welcome_notification_event.rb +6 -9
- data/app/forms/decidim/account_form.rb +1 -1
- data/app/forms/decidim/notifications_settings_form.rb +0 -8
- data/app/forms/decidim/registration_form.rb +1 -1
- data/app/helpers/decidim/cells_paginate_helper.rb +1 -1
- data/app/helpers/decidim/check_boxes_tree_helper.rb +4 -4
- data/app/helpers/decidim/decidim_form_helper.rb +1 -0
- data/app/helpers/decidim/newsletters_helper.rb +83 -16
- data/app/helpers/decidim/omniauth_helper.rb +2 -0
- data/app/helpers/decidim/resource_helper.rb +3 -1
- data/app/helpers/decidim/sanitize_helper.rb +9 -0
- data/app/helpers/decidim/short_link_helper.rb +1 -1
- data/app/helpers/decidim/user_profile_helper.rb +7 -2
- data/app/jobs/decidim/download_your_data_export_job.rb +2 -1
- data/app/jobs/decidim/open_data_job.rb +2 -0
- data/app/mailers/decidim/messaging/conversation_mailer.rb +3 -72
- data/app/models/decidim/push_notification_message.rb +39 -0
- data/app/models/decidim/user.rb +9 -1
- data/app/packs/images/decidim/icons.svg +1 -1
- data/app/packs/images/decidim/vendor/social-share-button/x.svg +6 -0
- data/app/packs/src/decidim/autocomplete.js +11 -2
- data/app/packs/src/decidim/data_picker.js +1 -0
- data/app/packs/src/decidim/direct_uploads/upload_field.js +6 -4
- data/app/packs/src/decidim/direct_uploads/upload_modal.js +10 -8
- data/app/packs/src/decidim/direct_uploads/uploader.js +4 -1
- data/app/packs/src/decidim/geocoding/attach_input.js +4 -1
- data/app/packs/src/decidim/geocoding/provider/here.js +17 -21
- data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
- data/app/packs/src/decidim/input_hashtags.js +1 -1
- data/app/packs/src/decidim/input_mentions.js +1 -1
- data/app/packs/src/decidim/input_multiple_mentions.js +1 -1
- data/app/packs/src/decidim/utilities/text.js +17 -0
- data/app/packs/src/decidim/vizzs/index.js +1 -1
- data/app/packs/stylesheets/decidim/_variables.scss +1 -1
- data/app/packs/stylesheets/decidim/plugins/leaflet.scss +118 -114
- data/app/packs/stylesheets/decidim/vendor/_social_share_button.scss +4 -0
- data/app/presenters/decidim/admin_log/oauth_application_resource_presenter.rb +1 -1
- data/app/presenters/decidim/notification_to_mailer_presenter.rb +9 -0
- data/app/services/decidim/events_manager.rb +6 -0
- data/app/services/decidim/push_notification_message_sender.rb +36 -0
- data/app/services/decidim/send_push_notification.rb +22 -8
- data/app/views/decidim/devise/registrations/new.html.erb +2 -2
- data/app/views/decidim/notifications_digest_mailer/_email_content.html.erb +7 -0
- data/app/views/decidim/notifications_settings/show.html.erb +1 -1
- data/app/views/decidim/scopes/_scopes_picker_input.html.erb +1 -1
- data/app/views/decidim/searches/_filters.html.erb +3 -1
- data/app/views/decidim/shared/_address_details.html.erb +2 -2
- data/app/views/decidim/shared/_share_modal.html.erb +1 -1
- data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
- data/app/views/layouts/decidim/_js_configuration.html.erb +1 -0
- data/app/views/layouts/decidim/_social_media_links.html.erb +2 -2
- data/config/locales/ar.yml +12 -16
- data/config/locales/bg.yml +77 -15
- data/config/locales/ca.yml +34 -30
- data/config/locales/cs.yml +18 -14
- data/config/locales/de.yml +62 -58
- data/config/locales/el.yml +11 -16
- data/config/locales/en.yml +5 -1
- data/config/locales/eo.yml +2 -3
- data/config/locales/es-MX.yml +15 -11
- data/config/locales/es-PY.yml +15 -11
- data/config/locales/es.yml +30 -26
- data/config/locales/eu.yml +500 -342
- data/config/locales/fi-plain.yml +7 -3
- data/config/locales/fi.yml +21 -17
- data/config/locales/fr-CA.yml +17 -13
- data/config/locales/fr.yml +12 -8
- data/config/locales/ga-IE.yml +5 -5
- data/config/locales/gl.yml +5 -19
- data/config/locales/he-IL.yml +1 -0
- data/config/locales/hu.yml +63 -23
- data/config/locales/id-ID.yml +4 -19
- data/config/locales/is-IS.yml +4 -2
- data/config/locales/it.yml +15 -17
- data/config/locales/ja.yml +26 -22
- data/config/locales/lb.yml +15 -17
- data/config/locales/lt.yml +55 -10
- data/config/locales/lv.yml +4 -16
- data/config/locales/nl.yml +12 -12
- data/config/locales/no.yml +8 -10
- data/config/locales/pl.yml +151 -1
- data/config/locales/pt-BR.yml +267 -22
- data/config/locales/pt.yml +8 -10
- data/config/locales/ro-RO.yml +4 -10
- data/config/locales/ru.yml +13 -17
- data/config/locales/sk.yml +7 -17
- data/config/locales/sl.yml +0 -5
- data/config/locales/sq-AL.yml +1 -0
- data/config/locales/sv.yml +55 -17
- data/config/locales/th-TH.yml +1 -0
- data/config/locales/tr-TR.yml +18 -15
- data/config/locales/uk.yml +17 -14
- data/config/locales/zh-CN.yml +6 -10
- data/config/locales/zh-TW.yml +0 -9
- data/db/migrate/20231027142329_change_default_value_for_decidim_endorsements.rb +11 -0
- data/db/seeds.rb +1 -0
- data/decidim-core.gemspec +78 -0
- data/lib/decidim/acts_as_tree.rb +14 -1
- data/lib/decidim/asset_router/storage.rb +4 -0
- data/lib/decidim/attribute_encryptor.rb +6 -4
- data/lib/decidim/core/engine.rb +7 -3
- data/lib/decidim/core/test/factories.rb +309 -95
- data/lib/decidim/core/test/shared_examples/amendable/amendment_created_event_examples.rb +6 -26
- data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +8 -26
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +56 -0
- data/lib/decidim/core/test/shared_examples/embed_resource_examples.rb +187 -11
- data/lib/decidim/core/test/shared_examples/errors.rb +2 -0
- data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +8 -6
- data/lib/decidim/core/test/shared_examples/has_attachments.rb +4 -4
- data/lib/decidim/core/test/shared_examples/has_category.rb +27 -0
- data/lib/decidim/core/test/shared_examples/has_reference.rb +1 -1
- data/lib/decidim/core/test/shared_examples/has_space_in_mcell_examples.rb +1 -2
- data/lib/decidim/core/test/shared_examples/resource_endorsed_event_examples.rb +6 -3
- data/lib/decidim/core/test/shared_examples/resource_locator_presenter_examples.rb +134 -0
- data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/simple_event.rb +50 -2
- data/lib/decidim/core/test.rb +1 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/core.rb +2 -1
- data/lib/decidim/endorsable.rb +1 -1
- data/lib/decidim/engine_router.rb +17 -4
- data/lib/decidim/events/base_event.rb +5 -2
- data/lib/decidim/events/simple_event.rb +3 -17
- data/lib/decidim/exporters.rb +10 -1
- data/lib/decidim/form_builder.rb +1 -0
- data/lib/decidim/has_category.rb +3 -3
- data/lib/decidim/has_conversations.rb +91 -0
- data/lib/decidim/participable.rb +17 -0
- data/lib/decidim/view_model.rb +1 -0
- data/lib/decidim/webpacker/webpack/.modernizrrc +9 -0
- data/lib/premailer/adapter/decidim.rb +5 -4
- data/lib/tasks/decidim_reminders_tasks.rake +1 -0
- data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +53 -0
- data/lib/tasks/upgrade/decidim_fix_categorization.rake +15 -0
- data/lib/tasks/upgrade/decidim_fix_short_url_resolver.rake +22 -0
- metadata +37 -32
- data/app/helpers/decidim/layout_helper.rb.orig +0 -225
- data/app/packs/stylesheets/decidim/modules/_dropdown_menu.scss +0 -9
- data/app/views/decidim/devise/registrations/new.html.erb.orig +0 -231
- /data/{config/environment.rb → app/packs/images/decidim/.keep} +0 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
# A wrapper for preparing push notifications messages from conversations
|
5
|
+
# It respects the same contract as the Decidim::Messaging::ConversationMailer
|
6
|
+
class PushNotificationMessageSender
|
7
|
+
include HasConversations
|
8
|
+
|
9
|
+
def deliver
|
10
|
+
SendPushNotification.new.perform(@notification, title)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
# rubocop:disable Metrics/ParameterLists
|
16
|
+
# rubocop:disable Lint/UnusedMethodArgument
|
17
|
+
#
|
18
|
+
# There are some parameters thar are not used in the method, but they are needed to
|
19
|
+
# keep the same contract as the Decidim::Messaging::ConversationMailer
|
20
|
+
def send_notification(from:, to:, conversation:, action:, message: nil, third_party: nil)
|
21
|
+
@action = action
|
22
|
+
@sender = to
|
23
|
+
@third_party = third_party
|
24
|
+
|
25
|
+
@notification = PushNotificationMessage.new(recipient: to, conversation: conversation, message: message)
|
26
|
+
|
27
|
+
self
|
28
|
+
end
|
29
|
+
# rubocop:enable Lint/UnusedMethodArgument
|
30
|
+
# rubocop:enable Metrics/ParameterLists
|
31
|
+
|
32
|
+
def title
|
33
|
+
get_subject(action: @action, sender: @sender, third_party: @third_party)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -14,14 +14,19 @@ module Decidim
|
|
14
14
|
# Send the push notification. Returns `nil` if the user didn't allowed push notifications
|
15
15
|
# or if the subscription to push notifications doesn't exist
|
16
16
|
#
|
17
|
-
#
|
18
|
-
|
17
|
+
# @param notification [Decidim::Notification, Decidim::PushNotificationMessage] the notification to be sent
|
18
|
+
# @param title [String] the title of the notification. Optional.
|
19
|
+
#
|
20
|
+
# @return [Array<Net::HTTPCreated>, nil] the result of the dispatch or nil if user or subscription are empty
|
21
|
+
def perform(notification, title = nil)
|
19
22
|
return unless Rails.application.secrets.dig(:vapid, :enabled)
|
23
|
+
raise ArgumentError, "Need to provide a title if the notification is a PushNotificationMessage" if notification.is_a?(Decidim::PushNotificationMessage) && title.nil?
|
24
|
+
|
25
|
+
user = notification.user
|
20
26
|
|
21
|
-
I18n.with_locale(
|
22
|
-
|
23
|
-
|
24
|
-
payload = build_payload(message_params, subscription)
|
27
|
+
I18n.with_locale(user.locale || user.organization.default_locale) do
|
28
|
+
user.notifications_subscriptions.values.map do |subscription|
|
29
|
+
payload = build_payload(message_params(notification, title), subscription)
|
25
30
|
# Capture webpush exceptions in order to avoid this call to be repeated by the background job runner
|
26
31
|
# Webpush::Error class is the parent class of all defined errors
|
27
32
|
begin
|
@@ -36,9 +41,18 @@ module Decidim
|
|
36
41
|
|
37
42
|
private
|
38
43
|
|
39
|
-
def
|
44
|
+
def message_params(notification, title = nil)
|
45
|
+
case notification
|
46
|
+
when Decidim::PushNotificationMessage
|
47
|
+
notification_params(notification, title)
|
48
|
+
else # when Decidim::Notification
|
49
|
+
notification_params(Decidim::PushNotificationPresenter.new(notification))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def notification_params(notification, title = nil)
|
40
54
|
{
|
41
|
-
title: notification.title,
|
55
|
+
title: title.presence || notification.title,
|
42
56
|
body: notification.body,
|
43
57
|
icon: notification.icon,
|
44
58
|
data: { url: notification.url }
|
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
<div class="card" id="card__tos">
|
62
62
|
<div class="card__content">
|
63
|
-
<
|
63
|
+
<h2><%= t(".tos_title") %></h2>
|
64
64
|
|
65
65
|
<p class="tos-text">
|
66
66
|
<%= strip_tags(translated_attribute(terms_and_conditions_page.content)) %>
|
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
<div class="card" id="card__newsletter">
|
76
76
|
<div class="card__content">
|
77
|
-
<
|
77
|
+
<h2><%= t(".newsletter_title") %></h2>
|
78
78
|
<div class="field">
|
79
79
|
<%= f.check_box :newsletter, label: t(".newsletter"), checked: @form.newsletter %>
|
80
80
|
</div>
|
@@ -8,4 +8,11 @@
|
|
8
8
|
<%= link_to decidim_sanitize(notification.resource_title, strip_tags: true), notification.resource_url %>
|
9
9
|
</p>
|
10
10
|
<% end %>
|
11
|
+
<% if notification.show_extended_information? %>
|
12
|
+
<blockquote>
|
13
|
+
<p>
|
14
|
+
<%= notification.safe_resource_text %>
|
15
|
+
</p>
|
16
|
+
</blockquote>
|
17
|
+
<% end %>
|
11
18
|
</div>
|
@@ -39,7 +39,7 @@
|
|
39
39
|
</label>
|
40
40
|
</div>
|
41
41
|
|
42
|
-
<% if
|
42
|
+
<% if current_user.moderator? %>
|
43
43
|
<p><strong><%= t(".administrators") %></strong></p>
|
44
44
|
<div class="switch tiny switch-with-label email_on_moderations">
|
45
45
|
<label>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
<%- @scope_picker_values = capture do %>
|
6
6
|
<div class="picker-values"><%- scopes.each do |scope, params| %>
|
7
|
-
<div><a href="<%= params[:url] %>" data-picker-value="<%= scope.id %>"><%= params[:text] %></a></div>
|
7
|
+
<div><a class="<%= values_options[:class] %>" href="<%= params[:url] %>" data-picker-value="<%= scope.id %>"><%= "× " if values_options[:delete_button] %><%= params[:text] %></a></div>
|
8
8
|
<% end %></div>
|
9
9
|
<% end %>
|
10
10
|
|
@@ -12,8 +12,10 @@
|
|
12
12
|
<%= render partial: "resources_filter_block", locals: { sections: @sections, types: Decidim::Searchable.searchable_resources_of_type_comment } %>
|
13
13
|
<div class="card card--secondary">
|
14
14
|
<%= filter_form_for filter do |form| %>
|
15
|
-
<%= scopes_picker_filter form, :
|
15
|
+
<%= scopes_picker_filter form, :decidim_scope_id_in %>
|
16
16
|
<%= form.hidden_field :term %>
|
17
|
+
<%= form.hidden_field :with_space_state %>
|
18
|
+
<%= form.hidden_field :with_resource_type %>
|
17
19
|
<% end %>
|
18
20
|
</div>
|
19
21
|
<div class="row collapse order-by">
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if geolocalizable.respond_to? :location %>
|
2
|
-
<strong><%= translated_attribute
|
2
|
+
<strong><%= decidim_sanitize(translated_attribute(geolocalizable.location)) %></strong><br>
|
3
3
|
<% end %>
|
4
4
|
<span><%= geolocalizable.address %></span><br>
|
5
5
|
<% if geolocalizable.respond_to? :location_hints %>
|
6
|
-
<span><%= translated_attribute
|
6
|
+
<span><%= decidim_sanitize(translated_attribute(geolocalizable.location_hints)) %></span>
|
7
7
|
<% end %>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
url: decidim_meta_url,
|
20
20
|
image: decidim_meta_image_url,
|
21
21
|
desc: h(decidim_meta_description),
|
22
|
-
via: decidim_meta_twitter_handler) %>
|
22
|
+
via: decidim_meta_twitter_handler).sub(%(data-site="x"), %(data-site="twitter")).html_safe %>
|
23
23
|
<a href="#" class="button" data-open="urlShare">
|
24
24
|
<%= icon "link-intact", role: "img", "aria-hidden": true %>
|
25
25
|
<%= t(".share_link") %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= filter_form_for filter do |form| %>
|
2
2
|
<div class="columns mediumlarge-6 large-5">
|
3
|
-
<%= scopes_picker_filter form, :
|
3
|
+
<%= scopes_picker_filter form, :with_any_scope, checkboxes_on_top: checkboxes_on_top %>
|
4
4
|
</div>
|
5
5
|
<div class="columns mediumlarge-6 large-5">
|
6
6
|
<%= form.areas_select :with_area,
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<% if current_organization.twitter_handler.present? %>
|
4
4
|
<li>
|
5
5
|
<a class="footer-social__icon" target="_blank" rel="noopener" href="https://twitter.com/<%= current_organization.twitter_handler %>">
|
6
|
-
<span class="show-for-sr"><%= t("layouts.decidim.social_media_links.
|
7
|
-
<%= icon "twitter", role: "img", aria_label: "
|
6
|
+
<span class="show-for-sr"><%= t("layouts.decidim.social_media_links.x", organization: translated_attribute(current_organization.name)) %></span>
|
7
|
+
<%= icon "twitter-x", role: "img", aria_label: "X" %>
|
8
8
|
</a>
|
9
9
|
</li>
|
10
10
|
<% end %>
|
data/config/locales/ar.yml
CHANGED
@@ -91,9 +91,7 @@ ar:
|
|
91
91
|
'true': 'نعم'
|
92
92
|
carrierwave:
|
93
93
|
errors:
|
94
|
-
file_resolution_too_large: دقة الملف أكبر من المسموح به
|
95
94
|
file_size_too_large: حجم الملف أكبر من المسموح به
|
96
|
-
not_inside_organization: لم يتم إرفاق الملف بأي منظمة
|
97
95
|
date:
|
98
96
|
formats:
|
99
97
|
decidim_short: "%d/%m/%Y"
|
@@ -437,7 +435,7 @@ ar:
|
|
437
435
|
request_confirmation_instructions: طلب تعليمات التأكيد
|
438
436
|
title: تأكيد البريد الإلكتروني
|
439
437
|
show:
|
440
|
-
close_modal:
|
438
|
+
close_modal: اغلاق النموذج
|
441
439
|
block_user_mailer:
|
442
440
|
notify:
|
443
441
|
body_1: تم حظر الحساب الخاص بك.
|
@@ -555,8 +553,7 @@ ar:
|
|
555
553
|
already_have_an_account?: هل لديك حساب؟
|
556
554
|
newsletter: تلقي رسالة إخبارية من حين لآخر مع المعلومات ذات الصلة
|
557
555
|
newsletter_title: الاتصال إذن
|
558
|
-
nickname_help: الاسم المستعار الخاص بك في %{organization}. يمكن أن يحتوي فقط على أحرف
|
559
|
-
sign_in: تسجيل الدخول
|
556
|
+
nickname_help: الاسم المستعار الخاص بك في %{organization}. يمكن أن يحتوي فقط على أحرف وأرقام '-' و '_'.
|
560
557
|
sign_up: انشئ حسابًا
|
561
558
|
sign_up_as:
|
562
559
|
legend: الاشتراك باسم
|
@@ -577,7 +574,7 @@ ar:
|
|
577
574
|
newsletter_modal:
|
578
575
|
buttons:
|
579
576
|
check: تحقق واستمر
|
580
|
-
close_modal:
|
577
|
+
close_modal: اغلاق النموذج
|
581
578
|
uncheck: إبقاءه غير مختار
|
582
579
|
notice: |-
|
583
580
|
<p>مهلا ، هل أنت متأكد أنك لا تريد تلقي رسالة إخبارية؟<br>
|
@@ -613,6 +610,7 @@ ar:
|
|
613
610
|
ready: جاهز
|
614
611
|
show:
|
615
612
|
download_data: قم بتنزيل البيانات
|
613
|
+
download_data_description: سيتم إرسال ملف يحتوي على جميع المعلومات المرتبطة بحسابك إلى <strong>%{user_email}</strong>. سوف يحتوي هذا البريد الإلكتروني على ملف .zip وكلمة مرور لفتحه.<br/><br/>لفك الملف ، ستحتاج إلى <a href="https://www.7-zip.org/">7-Zip</a> (للويندوز) أو <a href="https://www.keka.io/">Keka</a> (لماكوس). إذا كنت تستخدم لينوكس، في معظم الأحيان سيتم تثبيته بشكل افتراضي. إذا لم يكن الأمر كذلك، يمكنك استخدام <a href="https://gitlab.gnome.org/GNOME/file-roller">ملف Roller</a> أو <a href="https://peazip.github.io">PeaZip</a>).
|
616
614
|
request_data: طلب البيانات
|
617
615
|
editor_images:
|
618
616
|
create:
|
@@ -620,7 +618,7 @@ ar:
|
|
620
618
|
success: تم تحميل الصورة بنجاح
|
621
619
|
drag_and_drop_help: يمكن إضافة صور عن طريق سحبها وإسقاطها أو لصقها.
|
622
620
|
endorsable:
|
623
|
-
endorsements:
|
621
|
+
endorsements: الدعم والتأييد
|
624
622
|
endorsements_count: عد أصوات التأييدات
|
625
623
|
endorsements:
|
626
624
|
identities:
|
@@ -783,6 +781,7 @@ ar:
|
|
783
781
|
notification_title: تم إضفاء الطابع الرسمي على المشارك %{name} (%{nickname}).
|
784
782
|
export_mailer:
|
785
783
|
download_your_data_export:
|
784
|
+
click_button: 'انقر فوق الرابط التالي لتحميل بياناتك.<br/>الملف سيكون متاحا حتى %{date}.<br/>ستحتاج إلى <a href="https://www.7-zip.org/">7-Zip</a> (للويندوز)، <a href="https://www.keka.io/en/">Keka</a> (لماكوس) أو <a href="https://peazip.github.io">PeaZip</a> (للينوكس) لفتحه. كلمة المرور: %{password}'
|
786
785
|
download: تحميل
|
787
786
|
export:
|
788
787
|
ready: يرجى الاطلاع على نسخة مضغوطة من التصدير.
|
@@ -835,6 +834,7 @@ ar:
|
|
835
834
|
file_help:
|
836
835
|
file:
|
837
836
|
explanation: 'إرشادات الملف:'
|
837
|
+
message_1: يجب أن تكون صورة أو وثيقة.
|
838
838
|
message_2: بالنسبة للصور، يُفضل استخدام صور بالوضع العرضي، تقوم الخدمة باقتصاص الصورة.
|
839
839
|
icon:
|
840
840
|
explanation: 'إرشادات للأيقونة:'
|
@@ -995,7 +995,7 @@ ar:
|
|
995
995
|
body_1: أنت على وشك زيارة رابط خارجي ونرجو منك أن تتحلى بالحذر فيما يتعلق بالمحتوى الموجود في الموقع الخارجي.
|
996
996
|
body_2: الرجاء التحقق من الرابط الذي توشك على زيارته والتأكد من التعرف عليه كموقع آمن قبل المتابعة.
|
997
997
|
cancel: إلغاء
|
998
|
-
close_modal:
|
998
|
+
close_modal: اغلاق النموذج
|
999
999
|
proceed: المواصلة
|
1000
1000
|
title: فتح رابط خارجي
|
1001
1001
|
log:
|
@@ -1086,7 +1086,7 @@ ar:
|
|
1086
1086
|
ok: حسناً
|
1087
1087
|
index:
|
1088
1088
|
ago: منذ
|
1089
|
-
close:
|
1089
|
+
close: اغلاق النموذج
|
1090
1090
|
from: من
|
1091
1091
|
groups: فِرَقي
|
1092
1092
|
last_message: آخر رسالة
|
@@ -1243,7 +1243,6 @@ ar:
|
|
1243
1243
|
proposals: اقتراحات
|
1244
1244
|
proposals_explanation: تقديم مقترحات ، ودعم المقترحات الحالية وتعزيز التغييرات التي تريد رؤيتها.
|
1245
1245
|
footer_sub_hero:
|
1246
|
-
footer_sub_hero_body: دعونا نبني مجتمعًا أكثر انفتاحًا وشفافية وتعاونًا.<br /> انضموا وشاركوا وقرّروا.
|
1247
1246
|
footer_sub_hero_headline: مرحبًا بكم على المنصة التشاركية لـ %{organization}.
|
1248
1247
|
register: تسجيل
|
1249
1248
|
hero:
|
@@ -1270,11 +1269,12 @@ ar:
|
|
1270
1269
|
error: كانت هناك مشكلة في قبول الشروط والأحكام.
|
1271
1270
|
success: عظيم! لقد قبلت الشروط والأحكام.
|
1272
1271
|
form:
|
1272
|
+
agreement: أوافق على هذه الشروط
|
1273
1273
|
legend: توافق على شروط وأحكام الاستخدام
|
1274
1274
|
refuse:
|
1275
1275
|
modal_body: إذا قمت بالرفض، لن تتمكن من استخدام المنصة، يمكنك <a href="%{download_your_data_path}">تنزيل بياناتك</a> و/أو <a href="%{delete_path}">حذف حسابك</a>.
|
1276
1276
|
modal_btn_exit: سأراجعها لاحقًا
|
1277
|
-
modal_close:
|
1277
|
+
modal_close: اغلاق النموذج
|
1278
1278
|
modal_title: هل ترفض حقًا الأحكام والشروط المحدثة؟
|
1279
1279
|
required_review:
|
1280
1280
|
alert: لقد قمنا بتحديث شروط الخدمة الخاصة بنا ، يرجى مراجعتها.
|
@@ -1372,7 +1372,7 @@ ar:
|
|
1372
1372
|
future: مستقبل
|
1373
1373
|
past: الماضي
|
1374
1374
|
filters_small_view:
|
1375
|
-
close_modal:
|
1375
|
+
close_modal: اغلاق النموذج
|
1376
1376
|
filter: منقي
|
1377
1377
|
filter_by: مصنف بواسطة
|
1378
1378
|
unfold: كشف
|
@@ -1672,8 +1672,6 @@ ar:
|
|
1672
1672
|
updated: تم تحديث حسابك بنجاح.
|
1673
1673
|
sessions:
|
1674
1674
|
already_signed_out: تم الخروج بنجاح
|
1675
|
-
new:
|
1676
|
-
sign_in: تسجيل الدخول
|
1677
1675
|
signed_in: تم تسجيل الدخول بنجاح
|
1678
1676
|
signed_out: تم الخروج بنجاح
|
1679
1677
|
shared:
|
@@ -1682,7 +1680,6 @@ ar:
|
|
1682
1680
|
didn_t_receive_confirmation_instructions: لم تتلق تعليمات التأكيد؟
|
1683
1681
|
didn_t_receive_unlock_instructions: لم تتلق تعليمات فتح؟
|
1684
1682
|
forgot_your_password: نسيت رقمك السري؟
|
1685
|
-
sign_in: تسجيل الدخول
|
1686
1683
|
sign_in_with_provider: تسجيل الدخول مع %{provider}
|
1687
1684
|
sign_up: انشئ حسابًا
|
1688
1685
|
minimum_password_length:
|
@@ -1822,7 +1819,6 @@ ar:
|
|
1822
1819
|
facebook: "%{organization} على الفيسبوك"
|
1823
1820
|
github: "%{organization} في GitHub"
|
1824
1821
|
instagram: "%{organization} في إنستاجرام"
|
1825
|
-
twitter: "%{organization} في تويتر"
|
1826
1822
|
youtube: "%{organization} على اليوتيوب"
|
1827
1823
|
timeout_modal:
|
1828
1824
|
body: لقد كنت غير نشط لمدة %{minutes} دقائق. إذا استمريت في كونك غير نشط، سيتم تسجيل خروجك تلقائيًا من أجل الأمان الخاص بك.
|