decidim-core 0.29.1 → 0.29.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/cells/decidim/activity_cell.rb +0 -3
- data/app/cells/decidim/author/show.erb +5 -4
- data/app/cells/decidim/author_cell.rb +26 -0
- data/app/cells/decidim/card_s/show.erb +5 -3
- data/app/cells/decidim/diff_cell.rb +4 -0
- data/app/cells/decidim/newsletter_templates/image_text_cta_cell.rb +1 -1
- data/app/cells/decidim/participatory_space_dropdown_metadata/show.erb +5 -3
- data/app/cells/decidim/profile_actions/show.erb +1 -1
- data/app/cells/decidim/report_button/already_reported_modal.erb +2 -2
- data/app/cells/decidim/report_button/flag_modal.erb +13 -27
- data/app/cells/decidim/report_button_cell.rb +2 -8
- data/app/cells/decidim/report_user_button/already_reported_modal.erb +11 -0
- data/app/cells/decidim/report_user_button/flag_modal.erb +46 -0
- data/app/cells/decidim/report_user_button/show.erb +2 -0
- data/app/cells/decidim/report_user_button_cell.rb +59 -0
- data/app/cells/decidim/resource_types_filter/show.erb +1 -1
- data/app/cells/decidim/resource_types_filter_cell.rb +6 -6
- data/app/cells/decidim/translation_bar/show.erb +2 -2
- data/app/cells/decidim/translation_bar_cell.rb +1 -1
- data/app/cells/decidim/user_activity/show.erb +1 -1
- data/app/commands/decidim/create_omniauth_registration.rb +14 -8
- data/app/commands/decidim/create_report.rb +1 -6
- data/app/commands/decidim/destroy_account.rb +3 -0
- data/app/commands/decidim/search.rb +14 -0
- data/app/controllers/decidim/doorkeeper/credentials_controller.rb +1 -1
- data/app/controllers/decidim/links_controller.rb +1 -1
- data/app/controllers/decidim/profiles_controller.rb +6 -2
- data/app/controllers/decidim/reports_controller.rb +1 -1
- data/app/controllers/decidim/user_activities_controller.rb +1 -1
- data/app/forms/decidim/account_form.rb +5 -2
- data/app/helpers/concerns/decidim/user_role_checker.rb +46 -0
- data/app/helpers/decidim/cta_button_helper.rb +1 -1
- data/app/helpers/decidim/map_helper.rb +6 -1
- data/app/helpers/decidim/orders_helper.rb +2 -1
- data/app/helpers/decidim/participatory_space_helpers.rb +1 -1
- data/app/helpers/decidim/sanitize_helper.rb +11 -2
- data/app/jobs/decidim/hide_child_resources_job.rb +24 -0
- data/app/mailers/decidim/reported_mailer.rb +1 -0
- data/app/models/decidim/action_log.rb +1 -9
- data/app/models/decidim/attachment.rb +1 -1
- data/app/models/decidim/report.rb +1 -1
- data/app/models/decidim/user.rb +0 -4
- data/app/models/decidim/user_base_entity.rb +4 -0
- data/app/packs/src/decidim/append_redirect_url_to_modals.js +14 -6
- data/app/packs/src/decidim/datepicker/datepicker_functions.js +3 -3
- data/app/packs/src/decidim/direct_uploads/upload_field.js +21 -8
- data/app/packs/src/decidim/index.js +5 -0
- data/app/packs/src/decidim/map/provider/here.js +1 -1
- data/app/packs/src/decidim/remote_tooltips.js +38 -0
- data/app/packs/src/decidim/toggle.js +1 -1
- data/app/packs/src/decidim/tooltips.js +42 -22
- data/app/packs/stylesheets/decidim/_content_blocks.scss +4 -0
- data/app/packs/stylesheets/decidim/_hashtags.scss +5 -0
- data/app/packs/stylesheets/decidim/_header.scss +11 -5
- data/app/packs/stylesheets/decidim/_labels.scss +1 -1
- data/app/packs/stylesheets/decidim/_profile.scss +1 -1
- data/app/packs/stylesheets/decidim/_progress-bar.scss +1 -1
- data/app/packs/stylesheets/decidim/application.scss +1 -0
- data/app/packs/stylesheets/decidim/legacy/conference-diploma.scss +2 -1
- data/app/presenters/decidim/attachment_presenter.rb +1 -1
- data/app/presenters/decidim/log/user_presenter.rb +1 -0
- data/app/presenters/decidim/user_presenter.rb +1 -1
- data/app/services/decidim/base_diff_renderer.rb +28 -2
- data/app/services/decidim/email_notification_generator.rb +14 -5
- data/app/services/decidim/static_map_generator.rb +1 -1
- data/app/views/decidim/last_activities/index.html.erb +1 -1
- data/app/views/decidim/pages/_tabbed.html.erb +2 -2
- data/app/views/decidim/reported_mailer/hide.html.erb +17 -1
- data/app/views/decidim/reported_mailer/report.html.erb +1 -1
- data/app/views/decidim/searches/_count.html.erb +1 -1
- data/app/views/decidim/searches/_filters.html.erb +40 -38
- data/app/views/decidim/shared/_orders.html.erb +2 -2
- data/app/views/layouts/decidim/footer/_main_legal.html.erb +1 -1
- data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
- data/config/locales/ar.yml +56 -27
- data/config/locales/bg.yml +10 -24
- data/config/locales/bn-BD.yml +1 -0
- data/config/locales/bs-BA.yml +100 -0
- data/config/locales/ca-IT.yml +2111 -0
- data/config/locales/ca.yml +70 -38
- data/config/locales/cs.yml +60 -32
- data/config/locales/de.yml +66 -38
- data/config/locales/el.yml +17 -15
- data/config/locales/en.yml +48 -16
- data/config/locales/eo.yml +2 -0
- data/config/locales/es-MX.yml +61 -29
- data/config/locales/es-PY.yml +66 -34
- data/config/locales/es.yml +71 -39
- data/config/locales/eu.yml +303 -261
- data/config/locales/fi-plain.yml +48 -28
- data/config/locales/fi.yml +85 -65
- data/config/locales/fr-CA.yml +64 -27
- data/config/locales/fr.yml +62 -25
- data/config/locales/ga-IE.yml +13 -4
- data/config/locales/gl.yml +33 -15
- data/config/locales/hu.yml +12 -26
- data/config/locales/id-ID.yml +32 -16
- data/config/locales/is-IS.yml +18 -2
- data/config/locales/it.yml +54 -27
- data/config/locales/ja.yml +70 -38
- data/config/locales/lb.yml +33 -22
- data/config/locales/lt.yml +10 -18
- data/config/locales/lv.yml +26 -15
- data/config/locales/nl.yml +33 -19
- data/config/locales/no.yml +27 -16
- data/config/locales/pl.yml +8 -22
- data/config/locales/pt-BR.yml +13 -25
- data/config/locales/pt.yml +32 -16
- data/config/locales/ro-RO.yml +500 -220
- data/config/locales/ru.yml +31 -8
- data/config/locales/sk.yml +38 -19
- data/config/locales/sl.yml +4 -0
- data/config/locales/sr-CS.yml +2 -0
- data/config/locales/sv.yml +29 -33
- data/config/locales/tr-TR.yml +34 -24
- data/config/locales/uk.yml +20 -3
- data/config/locales/zh-CN.yml +27 -15
- data/config/locales/zh-TW.yml +16 -16
- data/config/routes.rb +1 -0
- data/decidim-core.gemspec +4 -1
- data/lib/decidim/api/functions/component_list.rb +1 -1
- data/lib/decidim/api/functions/participatory_space_finder_base.rb +11 -1
- data/lib/decidim/api/interfaces/participatory_space_interface.rb +1 -1
- data/lib/decidim/api/types/component_type.rb +7 -0
- data/lib/decidim/api/types/user_group_type.rb +4 -0
- data/lib/decidim/api/types/user_type.rb +4 -0
- data/lib/decidim/asset_router/storage.rb +7 -2
- data/lib/decidim/attributes/rich_text.rb +38 -0
- data/lib/decidim/attributes/time_with_zone.rb +16 -2
- data/lib/decidim/attributes.rb +2 -0
- data/lib/decidim/content_parsers/blob_parser.rb +95 -0
- data/lib/decidim/content_parsers/user_parser.rb +1 -1
- data/lib/decidim/content_parsers.rb +1 -0
- data/lib/decidim/content_renderers/blob_renderer.rb +90 -0
- data/lib/decidim/content_renderers.rb +1 -0
- data/lib/decidim/core/engine.rb +29 -1
- data/lib/decidim/core/test/factories.rb +28 -0
- data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +15 -2
- data/lib/decidim/core/test/shared_examples/reports_examples.rb +48 -6
- data/lib/decidim/core/test/shared_examples/social_share_examples.rb +32 -0
- data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +26 -0
- data/lib/decidim/core/test/shared_examples/versions_controller_examples.rb +26 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/diffy_extension.rb +18 -0
- data/lib/decidim/form_builder.rb +1 -1
- data/lib/decidim/map/autocomplete.rb +1 -0
- data/lib/decidim/map/provider/dynamic_map/here.rb +1 -40
- data/lib/decidim/map/provider/static_map/here.rb +34 -0
- data/lib/decidim/moderation_tools.rb +16 -2
- data/lib/decidim/nicknamizable.rb +1 -1
- data/lib/decidim/participatory_space_user.rb +4 -0
- data/lib/decidim/query_extensions.rb +0 -26
- data/lib/decidim/reportable.rb +6 -2
- data/lib/decidim/settings_manifest.rb +2 -0
- data/lib/decidim/translatable_attributes.rb +10 -1
- data/lib/tasks/upgrade/clean_hidden_resources.rake +33 -0
- data/lib/tasks/upgrade/decidim_fix_categorization.rake +34 -8
- data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +23 -20
- metadata +37 -15
- data/app/cells/decidim/author/flag.erb +0 -6
- data/app/cells/decidim/author/flag_user.erb +0 -14
- data/app/cells/decidim/flag_modal/flag_user.erb +0 -34
- data/app/cells/decidim/flag_modal/show.erb +0 -52
- data/app/cells/decidim/flag_modal_cell.rb +0 -56
- data/app/cells/decidim/profile_sidebar/show.erb +0 -167
- data/app/cells/decidim/profile_sidebar_cell.rb +0 -68
- data/app/packs/src/decidim/vendor/leaflet-tilelayer-here.js +0 -212
@@ -46,6 +46,7 @@ module Decidim
|
|
46
46
|
# Returns an HTML-safe String.
|
47
47
|
def present_user
|
48
48
|
return h.content_tag(:span, present_user_name, class: "logs__log__author") if user.blank?
|
49
|
+
return I18n.t("decidim.profile.deleted") if user.respond_to?(:deleted?) && user.deleted?
|
49
50
|
|
50
51
|
h.link_to(
|
51
52
|
present_user_name,
|
@@ -41,7 +41,9 @@ module Decidim
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def parse_i18n_changeset(attribute, values, type, diff)
|
44
|
-
values.last.
|
44
|
+
return diff unless values.last.is_a?(Hash)
|
45
|
+
|
46
|
+
(values.last.keys - ["machine_translations"]).each do |locale, _value|
|
45
47
|
first_value = values.first.try(:[], locale)
|
46
48
|
last_value = values.last.try(:[], locale)
|
47
49
|
next if first_value == last_value
|
@@ -56,6 +58,27 @@ module Decidim
|
|
56
58
|
}
|
57
59
|
)
|
58
60
|
end
|
61
|
+
|
62
|
+
return diff unless values.last.has_key?("machine_translations")
|
63
|
+
|
64
|
+
values.last.fetch("machine_translations").each_key do |locale, _value|
|
65
|
+
next unless I18n.available_locales.include?(locale.to_sym)
|
66
|
+
|
67
|
+
first_value = values.first.try(:[], "machine_translations").try(:[], locale)
|
68
|
+
last_value = values.last.try(:[], "machine_translations").try(:[], locale)
|
69
|
+
|
70
|
+
attribute_locale = :"#{attribute}_machine_translations_#{locale}"
|
71
|
+
|
72
|
+
diff.update(
|
73
|
+
attribute_locale => {
|
74
|
+
type:,
|
75
|
+
label: generate_i18n_label(attribute, locale, "decidim.machine_translations.automatic"),
|
76
|
+
old_value: first_value,
|
77
|
+
new_value: last_value
|
78
|
+
}
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
59
82
|
diff
|
60
83
|
end
|
61
84
|
|
@@ -108,7 +131,8 @@ module Decidim
|
|
108
131
|
end
|
109
132
|
|
110
133
|
# Returns a String.
|
111
|
-
|
134
|
+
# i18n-tasks-use t("decidim.machine_translations.automatic")
|
135
|
+
def generate_i18n_label(attribute, locale, postfix = "")
|
112
136
|
label = I18n.t(attribute, scope: i18n_scope)
|
113
137
|
locale_name = if I18n.available_locales.include?(locale.to_sym)
|
114
138
|
I18n.t("locale.name", locale:)
|
@@ -116,6 +140,8 @@ module Decidim
|
|
116
140
|
locale
|
117
141
|
end
|
118
142
|
|
143
|
+
locale_name = I18n.t(postfix, locale_name:, locale:) if postfix.present?
|
144
|
+
|
119
145
|
"#{label} (#{locale_name})"
|
120
146
|
end
|
121
147
|
|
@@ -36,20 +36,29 @@ module Decidim
|
|
36
36
|
return unless resource
|
37
37
|
return unless event_class.types.include?(:email)
|
38
38
|
|
39
|
-
|
40
|
-
|
39
|
+
send_to_followers
|
40
|
+
send_to_affected_users
|
41
|
+
end
|
41
42
|
|
42
|
-
|
43
|
-
end
|
43
|
+
private
|
44
44
|
|
45
|
+
def send_to_affected_users
|
45
46
|
affected_users.each do |recipient|
|
46
47
|
next unless ["all", "own-only"].include?(recipient.notification_types)
|
48
|
+
next if recipient.deleted? || recipient.blocked?
|
47
49
|
|
48
50
|
send_email_to(recipient, user_role: :affected_user)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
52
|
-
|
54
|
+
def send_to_followers
|
55
|
+
followers.each do |recipient|
|
56
|
+
next unless ["all", "followed-only"].include?(recipient.notification_types)
|
57
|
+
next if recipient.deleted? || recipient.blocked?
|
58
|
+
|
59
|
+
send_email_to(recipient, user_role: :follower)
|
60
|
+
end
|
61
|
+
end
|
53
62
|
|
54
63
|
attr_reader :event, :event_class, :resource, :followers, :affected_users, :extra
|
55
64
|
|
@@ -15,7 +15,7 @@ module Decidim
|
|
15
15
|
def data
|
16
16
|
return if @resource.blank? || map_utility.nil?
|
17
17
|
|
18
|
-
Rails.cache.fetch(@resource.
|
18
|
+
Rails.cache.fetch(@resource.cache_key_with_version) do
|
19
19
|
map_utility.image_data(
|
20
20
|
latitude: @resource.latitude,
|
21
21
|
longitude: @resource.longitude,
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<h1 class="title-decorator my-12"><%= t("last_activity", scope: "decidim.last_activities.index") %></h1>
|
6
6
|
|
7
7
|
<div class="profile__activity pb-16">
|
8
|
-
<%= cell "decidim/resource_types_filter", resource_types,
|
8
|
+
<%= cell "decidim/resource_types_filter", resource_types, source: :last_activities, filter_param_key: :with_resource_type %>
|
9
9
|
<div id="activities">
|
10
10
|
<%= render partial: "activities" %>
|
11
11
|
</div>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
</header>
|
11
11
|
|
12
12
|
<div class="vertical-tabs">
|
13
|
-
<nav>
|
13
|
+
<nav role="navigation" aria-label="<%= I18n.t("layouts.decidim.navigation.aria_label", title: translated_attribute(page.title)) %>">
|
14
14
|
<button id="dropdown-trigger-pages" data-component="dropdown" data-target="dropdown-menu-pages" data-open-md="true" data-auto-close="true">
|
15
15
|
<span>
|
16
16
|
<%= translated_attribute(page.title) %>
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<ul id="dropdown-menu-pages" class="vertical-tabs__list" role="menu">
|
22
22
|
<% pages.each do |sibling| %>
|
23
23
|
<li class="<%= "is-active" if page == sibling %>" role="menuitem">
|
24
|
-
<%= link_to translated_attribute(sibling.title), page_path(sibling.slug) %>
|
24
|
+
<%= link_to translated_attribute(sibling.title), page_path(sibling.slug), "aria-current": (page == sibling).to_s %>
|
25
25
|
</li>
|
26
26
|
<% end %>
|
27
27
|
</ul>
|
@@ -1,9 +1,25 @@
|
|
1
1
|
<p class="email-greeting"><%= t(".hello", name: @user.name) %></p>
|
2
2
|
|
3
3
|
<p class="email-instructions">
|
4
|
-
<%= t(".report_html", url:
|
4
|
+
<%= t(".report_html", url: report_url ) %>
|
5
5
|
</p>
|
6
6
|
|
7
|
+
<p><b><%= t(".participatory_space") %></b></p>
|
8
|
+
<p><%= link_to translated_attribute(@participatory_space.title), resource_locator(@participatory_space).url %></p>
|
9
|
+
|
10
|
+
<p><b><%= t(".reason") %></b></p>
|
11
|
+
<p><%= t(@report.reason, organization_name: organization_name(@participatory_space.organization), scope: "decidim.shared.flag_modal") %></p>
|
12
|
+
|
13
|
+
<% if @report.details.present? %>
|
14
|
+
<p><b><%= t(".details") %></b></p>
|
15
|
+
<blockquote>
|
16
|
+
<%= @report.details %>
|
17
|
+
</blockquote>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<p><b><%= t(".content") %></b></p>
|
21
|
+
<%= reported_content_cell %>
|
22
|
+
|
7
23
|
<p class="email-button email-button__cta">
|
8
24
|
<%= link_to t(".manage_moderations"), manage_moderations_url %>
|
9
25
|
</p>
|
@@ -1,44 +1,46 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
<%
|
6
|
-
|
7
|
-
|
1
|
+
<nav role="navigation" aria-labelledby="search-results-title">
|
2
|
+
<div class="filter-container search__filter">
|
3
|
+
<button id="dropdown-trigger-search" data-component="dropdown" data-target="dropdown-menu-search" data-auto-close="true">
|
4
|
+
<%= content_tag :span, t("decidim.searches.filters_small_view.filter_by"), class: "#{"is-active" if params.dig(:filter, :with_resource_type) == nil}" %>
|
5
|
+
<% @blocks.each do |elements| %>
|
6
|
+
<% elements.each do |type, results| %>
|
7
|
+
<%= content_tag :span, class: "#{"is-active" if params.dig(:filter, :with_resource_type) == type}" do %>
|
8
|
+
<span><%= searchable_resource_human_name(type) %></span>
|
9
|
+
<% end %>
|
8
10
|
<% end %>
|
9
11
|
<% end %>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
<div id="dropdown-menu-search" aria-hidden="true">
|
15
|
-
<div>
|
16
|
-
<%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
|
17
|
-
<%= resource_type_icon("all") %>
|
18
|
-
<span><%= t("all", scope: "decidim.searches.filters.state") %></span>
|
19
|
-
<span class="label ml-auto"><%= @results_count %></span>
|
20
|
-
<% end %>
|
21
|
-
</div>
|
22
|
-
<% @blocks.each do |elements| %>
|
12
|
+
<%= icon "arrow-down-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
|
13
|
+
<%= icon "arrow-up-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
|
14
|
+
</button>
|
15
|
+
<div id="dropdown-menu-search" aria-hidden="true">
|
23
16
|
<div>
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<%= resource_type_icon(type) %>
|
29
|
-
<span><%= searchable_resource_human_name(type) %></span>
|
30
|
-
<span class="label ml-auto"><%= results[:count] %></span>
|
31
|
-
<% end %>
|
32
|
-
<% else %>
|
33
|
-
<%= content_tag :div, class: "filter#{" is-empty" if results[:count].zero?}" do %>
|
34
|
-
<%= resource_type_icon(type) %>
|
35
|
-
<span><%= searchable_resource_human_name(type) %></span>
|
36
|
-
<span class="label ml-auto"><%= results[:count] %></span>
|
37
|
-
<% end %>
|
38
|
-
<% end %>
|
39
|
-
</div>
|
17
|
+
<%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
|
18
|
+
<%= resource_type_icon("all") %>
|
19
|
+
<span><%= t("all", scope: "decidim.searches.filters.state") %></span>
|
20
|
+
<span class="label ml-auto"><%= @results_count %></span>
|
40
21
|
<% end %>
|
41
22
|
</div>
|
42
|
-
|
23
|
+
<% @blocks.each do |elements| %>
|
24
|
+
<div>
|
25
|
+
<% elements.each do |type, results| %>
|
26
|
+
<div>
|
27
|
+
<% if results[:count].positive? %>
|
28
|
+
<%= link_to search_path_by_resource_type(type), class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == type}" do %>
|
29
|
+
<%= resource_type_icon(type) %>
|
30
|
+
<span><%= searchable_resource_human_name(type) %></span>
|
31
|
+
<span class="label ml-auto"><%= results[:count] %></span>
|
32
|
+
<% end %>
|
33
|
+
<% else %>
|
34
|
+
<%= content_tag :div, class: "filter#{" is-empty" if results[:count].zero?}" do %>
|
35
|
+
<%= resource_type_icon(type) %>
|
36
|
+
<span><%= searchable_resource_human_name(type) %></span>
|
37
|
+
<span class="label ml-auto"><%= results[:count] %></span>
|
38
|
+
<% end %>
|
39
|
+
<% end %>
|
40
|
+
</div>
|
41
|
+
<% end %>
|
42
|
+
</div>
|
43
|
+
<% end %>
|
44
|
+
</div>
|
43
45
|
</div>
|
44
|
-
</
|
46
|
+
</nav>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<button class="order-by__button" id="dropdown-trigger-order" data-component="dropdown" data-target="dropdown-menu-order" data-open-md="true">
|
1
|
+
<button class="order-by__button <%= b_css_class if defined?(b_css_class) %>" id="dropdown-trigger-order" data-component="dropdown" data-target="dropdown-menu-order" data-open-md="true">
|
2
2
|
<%= icon "arrow-down-s-line" %>
|
3
3
|
<%= icon "arrow-up-s-line" %>
|
4
4
|
<span><%= t("#{i18n_scope}.label") %></span>
|
5
5
|
</button>
|
6
|
-
<div id="dropdown-menu-order" class="order-by">
|
6
|
+
<div id="dropdown-menu-order" class="order-by <%= css_class if defined?(css_class) %>">
|
7
7
|
<% orders.each do |order_name| %>
|
8
8
|
<%= order_link order_name,
|
9
9
|
i18n_scope:,
|
@@ -3,6 +3,6 @@
|
|
3
3
|
<%= link_to t("layouts.decidim.footer.terms_of_service"), decidim.page_path("terms-of-service") %>
|
4
4
|
</li>
|
5
5
|
<li>
|
6
|
-
<a href="#" data-dialog-open="dc-modal"><%= t("layouts.decidim.footer.data_consent_settings") %></a>
|
6
|
+
<a href="#" role="button" data-dialog-open="dc-modal"><%= t("layouts.decidim.footer.data_consent_settings") %></a>
|
7
7
|
</li>
|
8
8
|
</ul>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="menu-bar__breadcrumb-mobile__dropdown-trigger">
|
3
3
|
<span>
|
4
4
|
<% breadcrumb_items.last(2).each_with_index do |item, i| %>
|
5
|
-
<% item_label = decidim_escape_translated(item[:label]) %>
|
5
|
+
<% item_label = decidim_escape_translated(item[:label]).html_safe %>
|
6
6
|
<% if i.positive? %>
|
7
7
|
<span>/</span>
|
8
8
|
<% end %>
|
data/config/locales/ar.yml
CHANGED
@@ -4,10 +4,18 @@ ar:
|
|
4
4
|
attributes:
|
5
5
|
account:
|
6
6
|
delete_reason: سبب حذف حسابك
|
7
|
+
attachment:
|
8
|
+
documents: المستندات
|
9
|
+
photos: الصور
|
7
10
|
common:
|
8
11
|
created_at: تم إنشاؤها في
|
12
|
+
content_block_attachment:
|
13
|
+
background_image: صورة الخلفية
|
14
|
+
main_image: الصورة الرئيسية
|
9
15
|
conversation:
|
10
16
|
body: المحتوى
|
17
|
+
editor_image:
|
18
|
+
file: ملف
|
11
19
|
group:
|
12
20
|
about: عن
|
13
21
|
avatar: الصورة الرمزية
|
@@ -16,12 +24,15 @@ ar:
|
|
16
24
|
name: الإسم
|
17
25
|
nickname: الاسم المستعار
|
18
26
|
phone: الهاتف
|
27
|
+
import:
|
28
|
+
file: ملف
|
19
29
|
message:
|
20
30
|
body: المحتوى
|
21
31
|
report:
|
22
32
|
details: تعليقات إضافية
|
23
33
|
user:
|
24
34
|
about: عن
|
35
|
+
avatar: الصورة الرمزية
|
25
36
|
email: بريدك الإلكتروني
|
26
37
|
locale: اللغة
|
27
38
|
name: اسمك
|
@@ -30,6 +41,8 @@ ar:
|
|
30
41
|
password_confirmation: أكد كلمتك السرية
|
31
42
|
personal_url: العنوان الشبكي الشخصي
|
32
43
|
remove_avatar: إزالة الصورة الرمزية
|
44
|
+
user_group:
|
45
|
+
avatar: الصورة الرمزية
|
33
46
|
models:
|
34
47
|
decidim/attachment_created_event: المرفق
|
35
48
|
decidim/component_published_event: العنصر النشط
|
@@ -91,6 +104,8 @@ ar:
|
|
91
104
|
'false': 'لا'
|
92
105
|
'true': 'نعم'
|
93
106
|
date:
|
107
|
+
buttons:
|
108
|
+
select: تحديد
|
94
109
|
formats:
|
95
110
|
decidim_short: "%d/%m/%Y"
|
96
111
|
decidim_short_with_month_name_short: "%d %b %Y"
|
@@ -282,6 +297,7 @@ ar:
|
|
282
297
|
withdrawn: |-
|
283
298
|
تم سحب هذا التعديل على %{amendable_type} %{amendable_link}
|
284
299
|
من قبل المؤلف.
|
300
|
+
name: تعديل
|
285
301
|
new:
|
286
302
|
amendment_author: مؤلف التعديل
|
287
303
|
send: إنشاء
|
@@ -454,6 +470,8 @@ ar:
|
|
454
470
|
description: الوصف
|
455
471
|
footer_sub_hero:
|
456
472
|
name: تذييل البطل الفرعي راية
|
473
|
+
global_menu:
|
474
|
+
name: القائمة العامة
|
457
475
|
hero_settings_form:
|
458
476
|
background_image: الصورة الخلفية
|
459
477
|
welcome_text: نص الترحيب
|
@@ -473,8 +491,12 @@ ar:
|
|
473
491
|
name: النشاط الاخير
|
474
492
|
title: النشاط الاخير
|
475
493
|
view_all: عرض الكل
|
494
|
+
metadata:
|
495
|
+
name: البيانات الوصفية
|
476
496
|
metrics:
|
477
497
|
name: مقاييس المنظمة
|
498
|
+
participatory_space_metrics:
|
499
|
+
name: المشاركة في الأرقام
|
478
500
|
participatory_space_stats:
|
479
501
|
name: الإحصائيات
|
480
502
|
social_networks_metadata:
|
@@ -493,6 +515,10 @@ ar:
|
|
493
515
|
name: احصائيات المنظمة
|
494
516
|
sub_hero:
|
495
517
|
name: البطل الفرعي راية
|
518
|
+
core:
|
519
|
+
application_helper:
|
520
|
+
filter_category_values:
|
521
|
+
all: الكل
|
496
522
|
devise:
|
497
523
|
omniauth_registrations:
|
498
524
|
new:
|
@@ -619,6 +645,11 @@ ar:
|
|
619
645
|
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{amendable_title}. يمكنك إيقاف تلقي الإخطارات باتباع الرابط السابق.
|
620
646
|
email_subject: تم رفض التعديل لـ %{amendable_title} من %{emendation_author_nickname}
|
621
647
|
notification_title: تم رفض التعديل <a href="%{emendation_path}"></a> تم إنشاؤه بواسطة <a href="%{emendation_author_path}">%{emendation_author_nickname}</a> لـ <a href="%{amendable_path}">%{amendable_title}</a>.
|
648
|
+
emendation_promoted:
|
649
|
+
follower:
|
650
|
+
email_intro: 'تم نشر تعديل لـ %{amendable_title}. يمكنك رؤيته من هذه الصفحة:'
|
651
|
+
email_outro: لقد تلقيت هذا الإشعار لأنك مؤلف %{amendable_title}.
|
652
|
+
email_subject: تم نشر تعديل من قبل %{emendation_author_nickname} كـ %{amendable_type} جديد
|
622
653
|
attachments:
|
623
654
|
attachment_created:
|
624
655
|
email_intro: 'تمت إضافة مستند جديد إلى %{resource_title}. يمكنك أن ترى ذلك من هذه الصفحة:'
|
@@ -923,12 +954,12 @@ ar:
|
|
923
954
|
conversation_mailer:
|
924
955
|
comanagers_new_conversation:
|
925
956
|
admin_in_group: تتلقى هذا لأنك مدير في %{group}.
|
926
|
-
greeting:
|
957
|
+
greeting: مرحبًا ، %{recipient}!
|
927
958
|
intro: "بدأ %{manager} محادثة جديدة باسم %{group}. انقر هنا لرؤيتها:"
|
928
959
|
subject: "بدأ %{manager} محادثة جديدة كـ %{group}"
|
929
960
|
comanagers_new_message:
|
930
961
|
admin_in_group: تتلقى هذا لأنك مدير في %{group}.
|
931
|
-
greeting:
|
962
|
+
greeting: مرحبًا ، %{recipient}!
|
932
963
|
intro: "قام %{manager} بنشر رسائل جديدة في المحادثة ذات اسم %{group}. انقر هنا لرؤيتها:"
|
933
964
|
subject: "%{manager} أرسل رسائل جديدة كـ %{group}"
|
934
965
|
new_conversation:
|
@@ -937,12 +968,12 @@ ar:
|
|
937
968
|
subject: "%{sender} بدأ محادثة معك"
|
938
969
|
new_group_conversation:
|
939
970
|
admin_in_group: تتلقى هذا لأنك مدير في %{group}.
|
940
|
-
greeting:
|
971
|
+
greeting: مرحبًا ، %{recipient}!
|
941
972
|
intro: "بدأ %{sender} محادثة جديدة مع المجموعة %{group}. انقر هنا لرؤيتها:"
|
942
973
|
subject: "بدأ %{sender} محادثة جديدة مع %{group}"
|
943
974
|
new_group_message:
|
944
975
|
admin_in_group: تتلقى هذا لأنك مدير في %{group}.
|
945
|
-
greeting:
|
976
|
+
greeting: مرحبًا ، %{recipient}!
|
946
977
|
intro: "قام %{sender} بنشر رسائل جديدة في المحادثة مع المجوعة %{group}. انقر هنا لرؤيتها:"
|
947
978
|
subject: "%{group} لديها رسائل جديدة من %{sender}"
|
948
979
|
new_message:
|
@@ -976,6 +1007,8 @@ ar:
|
|
976
1007
|
placeholder: رسالتك...
|
977
1008
|
send: إرسال
|
978
1009
|
metrics:
|
1010
|
+
blocked_users:
|
1011
|
+
description: عدد المشاركين المحظورين
|
979
1012
|
download:
|
980
1013
|
csv: تحميل البيانات (CSV)
|
981
1014
|
followers:
|
@@ -985,11 +1018,15 @@ ar:
|
|
985
1018
|
participants:
|
986
1019
|
description: عدد المشاركين النشطين في المنظمة
|
987
1020
|
object: المشاركين
|
988
|
-
title:
|
1021
|
+
title: المشاركون
|
1022
|
+
reported_users:
|
1023
|
+
description: عدد المشاركين المبلّغ عنهم
|
1024
|
+
user_reports:
|
1025
|
+
description: عدد التقارير التي قدمها المشاركون
|
989
1026
|
users:
|
990
1027
|
description: عدد المشاركين في المنظمة
|
991
1028
|
object: المشاركين
|
992
|
-
title:
|
1029
|
+
title: المشاركون
|
993
1030
|
newsletter_mailer:
|
994
1031
|
newsletter:
|
995
1032
|
no_reply_notice: تم إرسال هذا البريد الإلكتروني من عنوان بريد إلكتروني للإشعارات لا يستقبل لا بريد إلكتروني وارد. يرجى عدم الرد على هذه الرسالة.
|
@@ -1040,10 +1077,12 @@ ar:
|
|
1040
1077
|
notifications_digest_mailer:
|
1041
1078
|
header:
|
1042
1079
|
daily: ملخص التنبيهات اليومية
|
1080
|
+
real_time: مزامنة آنيّة
|
1043
1081
|
weekly: ملخص التنبيهات الأسبوعية
|
1044
1082
|
hello: مرحبا %{name}،
|
1045
1083
|
intro:
|
1046
1084
|
daily: 'هذه هي إخطارات اليوم الأخير بناءً على النشاط الذي تتابعه:'
|
1085
|
+
real_time: 'هذا تنبيه عن النشاط الذي تتبعّه:'
|
1047
1086
|
weekly: 'هذه هي إخطارات الأسبوع الأخير بناءً على النشاط الذي تتابعه:'
|
1048
1087
|
outro: لقد تلقيت هذه الإشعارات لأنك تتبع هذا المحتوى أو مؤلفيه. يمكنك إلغاء متابعتها من صفحات كل منهم.
|
1049
1088
|
see_more: عرض المزيد من الإشعارات
|
@@ -1122,35 +1161,25 @@ ar:
|
|
1122
1161
|
conversations: محادثات
|
1123
1162
|
followers: متابعون
|
1124
1163
|
following: يتبع
|
1164
|
+
group_admins: إدارة المشرفين
|
1165
|
+
group_members: إدارة الأعضاء
|
1125
1166
|
groups: المجموعات
|
1126
1167
|
members: أفراد
|
1127
1168
|
officialized: مشارك رسمي
|
1128
1169
|
send_private_message: ارسال رسالة خاصة
|
1129
|
-
sidebar:
|
1130
|
-
badges:
|
1131
|
-
info: يتم الحصول على الشارات من خلال أداء نشاط معين في النظام الأساسي.
|
1132
|
-
title: شارات
|
1133
1170
|
user:
|
1134
1171
|
actions:
|
1135
1172
|
create_user_group: إنشاء مجموعة
|
1136
1173
|
edit_profile: تعديل الملف الشخصي
|
1137
|
-
edit_user_group:
|
1174
|
+
edit_user_group: تحرير ملف تعريف المجموعة
|
1138
1175
|
invite_user: دعوة مشارك
|
1139
|
-
join_user_group: طلب الانضمام
|
1140
|
-
leave_user_group:
|
1176
|
+
join_user_group: طلب الانضمام إلى المجموعة
|
1177
|
+
leave_user_group: غادر المجموعة
|
1141
1178
|
manage_user_group: إدارة الفريق
|
1142
|
-
manage_user_group_admins: إدارة
|
1143
|
-
manage_user_group_users: إدارة
|
1179
|
+
manage_user_group_admins: إدارة المشرفين
|
1180
|
+
manage_user_group_users: إدارة الأعضاء
|
1144
1181
|
message: الرسالة
|
1145
|
-
|
1146
|
-
edit_profile: تعديل الملف الشخصي
|
1147
|
-
edit_user_group: تحرير ملف تعريف المجموعة
|
1148
|
-
invite_user: دعوة مشارك
|
1149
|
-
join_user_group: طلب الانضمام إلى المجموعة
|
1150
|
-
leave_user_group: غادر المجموعة
|
1151
|
-
manage_user_group_admins: إدارة المشرفين
|
1152
|
-
manage_user_group_users: إدارة الأعضاء
|
1153
|
-
resend_email_confirmation_instructions: إعادة إرسال تعليمات تأكيد البريد الإلكتروني
|
1182
|
+
resend_email_confirmation_instructions: إعادة إرسال تعليمات تأكيد البريد الإلكتروني
|
1154
1183
|
reported_mailer:
|
1155
1184
|
hide:
|
1156
1185
|
hello: مرحبا %{name}،
|
@@ -1237,12 +1266,9 @@ ar:
|
|
1237
1266
|
title: الإبلاغ عن مشكلة
|
1238
1267
|
flag_user_modal:
|
1239
1268
|
already_reported: تم الإبلاغ عن هذا المحتوى وسيتم مراجعته من قبل مدير.
|
1240
|
-
close: إغلاق
|
1241
|
-
description: ما هو الأمر الغير مناسب بخصوص هذا المستخدم؟
|
1242
1269
|
offensive: يتضمن العنصرية أو التحيز الجنسي أو الشتائم أو الهجمات الشخصية أو التهديد بالقتل أو طلبات الانتحار أو أي شكل من أشكال خطاب الكراهية.
|
1243
1270
|
report: إبلاغ
|
1244
1271
|
spam: يحتوي على طعم النقر(clickbaiting) أو إعلان، أو احتيال، أو روبوتات سكريبتة.
|
1245
|
-
title: الإبلاغ عن مستخدم مخل
|
1246
1272
|
floating_help:
|
1247
1273
|
help: المساعدة
|
1248
1274
|
login_modal:
|
@@ -1252,6 +1278,7 @@ ar:
|
|
1252
1278
|
participatory_space_filters:
|
1253
1279
|
filters:
|
1254
1280
|
areas: المناطق
|
1281
|
+
scope: نطاق
|
1255
1282
|
select_an_area: اختر المنطقة
|
1256
1283
|
public_participation:
|
1257
1284
|
public_participation: إبراز حضوري علنا
|
@@ -1664,6 +1691,8 @@ ar:
|
|
1664
1691
|
whatsapp_web: واتساب
|
1665
1692
|
xing: شينغ
|
1666
1693
|
time:
|
1694
|
+
buttons:
|
1695
|
+
select: تحديد
|
1667
1696
|
formats:
|
1668
1697
|
day_of_month: "%b %d"
|
1669
1698
|
day_of_week: "%a"
|
data/config/locales/bg.yml
CHANGED
@@ -33,6 +33,8 @@ bg:
|
|
33
33
|
personal_url: Персонален URL
|
34
34
|
remove_avatar: Премахни аватара
|
35
35
|
tos_agreement: Споразумение за условия на услугата
|
36
|
+
user_group:
|
37
|
+
avatar: Аватар
|
36
38
|
models:
|
37
39
|
decidim/attachment_created_event: Прикачени файлове
|
38
40
|
decidim/component_published_event: Активен компонент
|
@@ -91,7 +93,7 @@ bg:
|
|
91
93
|
decidim_with_month_name_short: "%d %b"
|
92
94
|
help:
|
93
95
|
date_format: 'Формат: дд/мм/гггг'
|
94
|
-
order:
|
96
|
+
order: d-m-y
|
95
97
|
separator: "/"
|
96
98
|
datetime:
|
97
99
|
distance_in_words:
|
@@ -546,7 +548,7 @@ bg:
|
|
546
548
|
metrics:
|
547
549
|
name: Показатели за организацията
|
548
550
|
participatory_space_metrics:
|
549
|
-
name:
|
551
|
+
name: Индикатори
|
550
552
|
participatory_space_stats:
|
551
553
|
name: Статистики
|
552
554
|
social_networks_metadata:
|
@@ -1359,41 +1361,28 @@ bg:
|
|
1359
1361
|
conversations: Разговори
|
1360
1362
|
followers: Последователи
|
1361
1363
|
following: Следванния
|
1362
|
-
group_admins:
|
1363
|
-
group_members:
|
1364
|
+
group_admins: Управлявай администраторите
|
1365
|
+
group_members: Управллявай членовете
|
1364
1366
|
groups: Групи
|
1365
1367
|
members: Членове
|
1366
1368
|
officialized: Официален участник
|
1367
1369
|
send_private_message: Изпрати лично съобщение
|
1368
|
-
sidebar:
|
1369
|
-
badges:
|
1370
|
-
info: Значките се заслужват чрез извършване на конкретна дейност в платформата.
|
1371
|
-
title: Значки
|
1372
1370
|
user:
|
1373
1371
|
actions:
|
1374
|
-
create_user_group:
|
1372
|
+
create_user_group: Създай група
|
1375
1373
|
disabled_message: Съобщение
|
1376
1374
|
edit_profile: Редактиране на профил
|
1377
|
-
edit_user_group: Редактиране
|
1375
|
+
edit_user_group: Редактиране профил на група
|
1378
1376
|
invite_user: Покани участник
|
1379
1377
|
join_user_group: Заявка за присъединяване към група
|
1380
1378
|
leave_user_group: Напусни на групата
|
1381
1379
|
manage_user_group: Управление на групата
|
1382
|
-
manage_user_group_admins:
|
1383
|
-
manage_user_group_users:
|
1380
|
+
manage_user_group_admins: Управлявай администраторите
|
1381
|
+
manage_user_group_users: Управллявай членовете
|
1384
1382
|
message: Съобщение
|
1385
1383
|
resend_email_confirmation_instructions: Изпрати отново инструкции за потвърждение
|
1386
1384
|
confirmation_instructions_sent: Изпратени са инструкции за потвърждение по имейл.
|
1387
|
-
create_user_group: Създай група
|
1388
|
-
edit_profile: Редактиране на профил
|
1389
|
-
edit_user_group: Редактиране профил на група
|
1390
1385
|
fill_in_email_to_confirm_it: Моля, попълнете електронната поща на групата си, за да я потвърдите.
|
1391
|
-
invite_user: Покани участник
|
1392
|
-
join_user_group: Заявка за присъединяване към група
|
1393
|
-
leave_user_group: Напусни на групата
|
1394
|
-
manage_user_group_admins: Управлявай администраторите
|
1395
|
-
manage_user_group_users: Управлявай членовете
|
1396
|
-
resend_email_confirmation_instructions: Изпрати отново инструкции за потвърждение
|
1397
1386
|
reported_mailer:
|
1398
1387
|
hide:
|
1399
1388
|
hello: Здравейте %{name},
|
@@ -1485,14 +1474,11 @@ bg:
|
|
1485
1474
|
flag_user_modal:
|
1486
1475
|
already_reported: Това съдържание вече е докладвано и ще бъде прегледано от администратор.
|
1487
1476
|
block: Блокирай този участник
|
1488
|
-
close: Затвори
|
1489
|
-
description: Какво е неприемливо при този потребител?
|
1490
1477
|
does_not_belong: Съдържа незаконна дейност, заплахи за самоубийство, лична информация или нещо друго, което смятате, че не принадлежи на %{organization_name}.
|
1491
1478
|
hide: Скрийте цялото им съдържание
|
1492
1479
|
offensive: Съдържа расизъм, сексизъм, злословия, лични атаки, заплахи за смърт, заявки за самоубийство или всякаква форма на омраза.
|
1493
1480
|
report: Доклад
|
1494
1481
|
spam: Съдържа примамка за кликване, реклама, измами или скриптове.
|
1495
|
-
title: Докладвайте за неподходящ потребител
|
1496
1482
|
floating_help:
|
1497
1483
|
help: Помощ
|
1498
1484
|
follow_button:
|
@@ -0,0 +1 @@
|
|
1
|
+
bn:
|