decidim-core 0.30.1 → 0.30.2
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/show.erb +6 -6
- data/app/cells/decidim/content_blocks/participatory_space_main_data/title.erb +11 -2
- data/app/cells/decidim/footer_topics/show.erb +2 -2
- data/app/cells/decidim/group_admins/show.erb +3 -1
- data/app/cells/decidim/group_members/show.erb +6 -2
- data/app/cells/decidim/images_panel/show.erb +5 -2
- data/app/cells/decidim/report_button/flag_modal.erb +11 -9
- data/app/cells/decidim/report_user_button/flag_modal.erb +11 -10
- data/app/cells/decidim/upload_modal/files.erb +4 -4
- data/app/cells/decidim/upload_modal_cell.rb +5 -3
- data/app/commands/decidim/amendable/accept.rb +2 -1
- data/app/commands/decidim/create_omniauth_registration.rb +1 -1
- data/app/controllers/decidim/amendments_controller.rb +3 -3
- data/app/helpers/decidim/amendments_helper.rb +2 -1
- data/app/helpers/decidim/filters_helper.rb +25 -0
- data/app/helpers/decidim/layout_helper.rb +6 -0
- data/app/packs/images/decidim/default-avatar.svg +1 -1
- data/app/packs/src/decidim/callout.js +13 -8
- data/app/packs/src/decidim/confirm.js +15 -3
- data/app/packs/src/decidim/datepicker/generate_datepicker.js +2 -0
- data/app/packs/src/decidim/datepicker/generate_timepicker.js +2 -0
- data/app/packs/src/decidim/direct_uploads/upload_field.js +3 -4
- data/app/packs/src/decidim/direct_uploads/upload_modal.js +8 -9
- data/app/packs/src/decidim/dropdown_menu.js +18 -0
- data/app/packs/src/decidim/editor/common/suggestion.js +11 -1
- data/app/packs/src/decidim/index.js +1 -0
- data/app/packs/stylesheets/decidim/_activity.scss +4 -4
- data/app/packs/stylesheets/decidim/_cards.scss +5 -1
- data/app/packs/stylesheets/decidim/_filters.scss +1 -1
- data/app/packs/stylesheets/decidim/_header.scss +11 -3
- data/app/packs/stylesheets/decidim/_layout.scss +2 -2
- data/app/packs/stylesheets/decidim/_modal.scss +1 -5
- data/app/packs/stylesheets/decidim/_modal_update.scss +5 -1
- data/app/permissions/decidim/permissions.rb +13 -1
- data/app/validators/translated_etiquette_validator.rb +2 -0
- data/app/views/decidim/errors/internal_server_error.html.erb +1 -1
- data/app/views/decidim/errors/not_found.html.erb +1 -1
- data/app/views/decidim/newsletters/unsubscribe.html.erb +16 -4
- data/app/views/decidim/searches/_filters.html.erb +48 -13
- data/app/views/decidim/shared/_component_announcement.html.erb +1 -1
- data/app/views/decidim/shared/_confirm_modal.html.erb +3 -5
- data/app/views/decidim/shared/_filters.html.erb +6 -4
- data/app/views/layouts/decidim/footer/_main.html.erb +1 -1
- data/app/views/layouts/decidim/footer/_main_intro.html.erb +1 -1
- data/app/views/layouts/decidim/footer/_mini.html.erb +2 -2
- data/app/views/layouts/decidim/header/_main.html.erb +2 -2
- data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +6 -0
- data/app/views/layouts/decidim/header/_main_links_dropdown.html.erb +2 -0
- data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +1 -1
- data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +1 -1
- data/config/locales/ar.yml +0 -3
- data/config/locales/bg-BG.yml +2 -2
- data/config/locales/bg.yml +0 -5
- data/config/locales/ca-IT.yml +28 -5
- data/config/locales/ca.yml +28 -5
- data/config/locales/cs.yml +15 -6
- data/config/locales/de.yml +53 -21
- data/config/locales/el.yml +0 -4
- data/config/locales/en.yml +28 -5
- data/config/locales/es-MX.yml +28 -5
- data/config/locales/es-PY.yml +28 -5
- data/config/locales/es.yml +28 -5
- data/config/locales/eu.yml +66 -43
- data/config/locales/fi-plain.yml +76 -5
- data/config/locales/fi.yml +77 -6
- data/config/locales/fr-CA.yml +28 -5
- data/config/locales/fr-LU.yml +3 -3
- data/config/locales/fr.yml +28 -5
- data/config/locales/gl.yml +0 -3
- data/config/locales/hu.yml +0 -5
- data/config/locales/id-ID.yml +0 -3
- data/config/locales/is-IS.yml +0 -1
- data/config/locales/it.yml +165 -3
- data/config/locales/ja.yml +36 -5
- data/config/locales/lb-LU.yml +2 -2
- data/config/locales/lb.yml +0 -3
- data/config/locales/lt.yml +0 -5
- data/config/locales/lv.yml +0 -3
- data/config/locales/nl.yml +0 -3
- data/config/locales/no.yml +0 -3
- data/config/locales/pl.yml +0 -5
- data/config/locales/pt-BR.yml +0 -4
- data/config/locales/pt.yml +0 -3
- data/config/locales/ro-RO.yml +0 -4
- data/config/locales/ru.yml +0 -3
- data/config/locales/sk-SK.yml +3 -3
- data/config/locales/sk.yml +2 -3
- data/config/locales/sv.yml +27 -4
- data/config/locales/tr-TR.yml +0 -3
- data/config/locales/uk.yml +0 -2
- data/config/locales/zh-CN.yml +0 -3
- data/config/locales/zh-TW.yml +0 -5
- data/lib/decidim/assets/tailwind/tailwind.config.js.erb +2 -1
- data/lib/decidim/core/test/factories.rb +2 -2
- data/lib/decidim/core/test/shared_examples/announcements_examples.rb +4 -0
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +7 -5
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/form_builder.rb +14 -0
- metadata +7 -6
@@ -61,7 +61,7 @@ header {
|
|
61
61
|
@apply hidden md:block col-span-2 col-start-5 xl:col-start-4;
|
62
62
|
|
63
63
|
form {
|
64
|
-
@apply block relative rounded text-md bg-background;
|
64
|
+
@apply block relative rounded text-md border border-neutral-200 outline outline-1 outline-transparent rounded bg-background-2 leading-relaxed;
|
65
65
|
}
|
66
66
|
|
67
67
|
input[type="text"] {
|
@@ -69,7 +69,7 @@ header {
|
|
69
69
|
}
|
70
70
|
|
71
71
|
button[type="submit"] {
|
72
|
-
@apply absolute ltr:right-2 rtl:left-2 inset-y-
|
72
|
+
@apply absolute ltr:right-2 rtl:left-2 inset-y-0 text-secondary px-2;
|
73
73
|
}
|
74
74
|
}
|
75
75
|
|
@@ -404,7 +404,7 @@ header {
|
|
404
404
|
@apply w-full px-4;
|
405
405
|
|
406
406
|
&-menu {
|
407
|
-
@apply w-full md:w-
|
407
|
+
@apply w-full md:w-[100%] mt-0 grid md:grid-cols-2 gap-x-6 text-secondary;
|
408
408
|
|
409
409
|
> * {
|
410
410
|
@apply py-3 md:py-3.5 border-b last:border-0 border-gray-3;
|
@@ -431,6 +431,14 @@ header {
|
|
431
431
|
|
432
432
|
&__bottom {
|
433
433
|
@apply hidden md:flex;
|
434
|
+
|
435
|
+
&-right {
|
436
|
+
@apply mr-2 mb-2;
|
437
|
+
}
|
438
|
+
|
439
|
+
&-left {
|
440
|
+
@apply mr-2 mt-1;
|
441
|
+
}
|
434
442
|
}
|
435
443
|
|
436
444
|
&__title {
|
@@ -2,11 +2,11 @@
|
|
2
2
|
@apply flex flex-col min-h-screen;
|
3
3
|
|
4
4
|
&__skip {
|
5
|
-
@apply absolute z-
|
5
|
+
@apply absolute z-[9999] left-0 -translate-x-full py-1 px-4 bg-primary rounded-br-lg text-white cursor-pointer transition focus:translate-x-0;
|
6
6
|
}
|
7
7
|
|
8
8
|
[data-content] {
|
9
|
-
@apply relative flex flex-col;
|
9
|
+
@apply relative flex flex-col flex-1;
|
10
10
|
}
|
11
11
|
}
|
12
12
|
|
@@ -18,15 +18,11 @@
|
|
18
18
|
}
|
19
19
|
|
20
20
|
[data-dialog-container] {
|
21
|
-
@apply grid grid-
|
21
|
+
@apply grid grid-rows-[auto_1fr] items-start md:items-center gap-2 text-left;
|
22
22
|
|
23
23
|
> svg {
|
24
24
|
@apply w-6 h-6 text-gray fill-current flex-none;
|
25
25
|
}
|
26
|
-
|
27
|
-
> :last-child {
|
28
|
-
@apply col-span-2 md:col-span-1 md:col-start-2;
|
29
|
-
}
|
30
26
|
}
|
31
27
|
|
32
28
|
[data-dialog-title] {
|
@@ -106,7 +106,19 @@ module Decidim
|
|
106
106
|
return allow! if component.current_settings.amendment_creation_enabled
|
107
107
|
when :accept,
|
108
108
|
:reject
|
109
|
-
return
|
109
|
+
return disallow! unless component.current_settings.amendment_reaction_enabled
|
110
|
+
|
111
|
+
amendable = context.fetch(:amendable, nil)
|
112
|
+
|
113
|
+
if amendable.respond_to?(:official?) && amendable.official?
|
114
|
+
return allow! if user.admin?
|
115
|
+
|
116
|
+
return disallow!
|
117
|
+
end
|
118
|
+
|
119
|
+
return disallow! unless amendable.authored_by?(user)
|
120
|
+
|
121
|
+
return allow!
|
110
122
|
when :promote
|
111
123
|
return allow! if component.current_settings.amendment_promotion_enabled
|
112
124
|
end
|
@@ -6,6 +6,8 @@
|
|
6
6
|
# validates :my_i18n_field, translated_etiquette: true
|
7
7
|
class TranslatedEtiquetteValidator < EtiquetteValidator
|
8
8
|
def validate_each(record, attribute, _value)
|
9
|
+
return unless Decidim.enable_etiquette_validator
|
10
|
+
|
9
11
|
translated_attr = "#{attribute}_#{default_locale_for(record)}".gsub("-", "__")
|
10
12
|
translated_value = record.send(translated_attr)
|
11
13
|
return if translated_value.blank?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= render layout: "layouts/decidim/shared/layout_center" do %>
|
2
2
|
|
3
|
-
<div class="
|
3
|
+
<div class="flex flex-col items-center">
|
4
4
|
<div class="flex justify-center">
|
5
5
|
<h1 class="title-decorator my-12"><%= t("title", scope: "decidim.errors.internal_server_error") %></h1>
|
6
6
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= render layout: "layouts/decidim/shared/layout_center" do %>
|
2
2
|
|
3
|
-
<div class="
|
3
|
+
<div class="flex flex-col items-center">
|
4
4
|
<div class="flex justify-center">
|
5
5
|
<h1 class="title-decorator my-12"><%= t("title", scope: "decidim.errors.not_found") %></h1>
|
6
6
|
</div>
|
@@ -1,4 +1,16 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
|
4
|
-
</div>
|
1
|
+
<main class="layout-1col cols-6">
|
2
|
+
<div class="text-center py-12">
|
3
|
+
<h1 class="h1 decorator inline-block text-left"><%= t ".unsubscribe" %></h1>
|
4
|
+
</div>
|
5
|
+
<div class="page__container">
|
6
|
+
<div class="editor-content">
|
7
|
+
<div class="rich-text-display">
|
8
|
+
<%= t ".subscription_preferences", organization_name: translated_attribute(current_organization.name) %>
|
9
|
+
</div>
|
10
|
+
<br>
|
11
|
+
<div class="rich-text-display">
|
12
|
+
<%= t ".check_subscription_html", link: decidim.notifications_settings_path %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</main>
|
@@ -12,35 +12,70 @@
|
|
12
12
|
<%= icon "arrow-down-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
|
13
13
|
<%= icon "arrow-up-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
|
14
14
|
</button>
|
15
|
-
<
|
16
|
-
<
|
17
|
-
<%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
|
15
|
+
<ul id="dropdown-menu-search" aria-hidden="true">
|
16
|
+
<li>
|
17
|
+
<%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}", "aria-current": params.dig(:filter, :with_resource_type) == nil ? "true" : "" do %>
|
18
18
|
<%= resource_type_icon("all") %>
|
19
19
|
<span><%= t("all", scope: "decidim.searches.filters.state") %></span>
|
20
20
|
<span class="label ml-auto"><%= @results_count %></span>
|
21
21
|
<% end %>
|
22
|
-
</
|
22
|
+
</li>
|
23
23
|
<% @blocks.each do |elements| %>
|
24
|
-
<
|
25
|
-
|
26
|
-
|
24
|
+
<li>
|
25
|
+
<ul>
|
26
|
+
<% elements.each do |type, results| %>
|
27
27
|
<% if results[:count].positive? %>
|
28
|
-
|
28
|
+
<li>
|
29
|
+
<%= link_to search_path_by_resource_type(type), class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == type}", "aria-current": params.dig(:filter, :with_resource_type) == type ? "true" : "" do %>
|
29
30
|
<%= resource_type_icon(type) %>
|
30
31
|
<span><%= searchable_resource_human_name(type) %></span>
|
31
32
|
<span class="label ml-auto"><%= results[:count] %></span>
|
32
33
|
<% end %>
|
34
|
+
</li>
|
33
35
|
<% else %>
|
34
|
-
<%= content_tag :
|
36
|
+
<%= content_tag :li, class: "filter#{" is-empty" if results[:count].zero?}" do %>
|
35
37
|
<%= resource_type_icon(type) %>
|
36
38
|
<span><%= searchable_resource_human_name(type) %></span>
|
37
39
|
<span class="label ml-auto"><%= results[:count] %></span>
|
38
40
|
<% end %>
|
39
41
|
<% end %>
|
40
|
-
|
41
|
-
|
42
|
-
</
|
42
|
+
<% end %>
|
43
|
+
</ul>
|
44
|
+
</li>
|
43
45
|
<% end %>
|
44
|
-
</
|
46
|
+
</ul>
|
45
47
|
</div>
|
46
48
|
</nav>
|
49
|
+
<script type="text/javascript">
|
50
|
+
const button = document.querySelector('#dropdown-trigger-search');
|
51
|
+
const arrowDown = button.querySelector('svg:first-of-type');
|
52
|
+
const arrowUp = button.querySelector('svg:last-of-type');
|
53
|
+
const list = document.querySelector('#dropdown-menu-search');
|
54
|
+
// the arrow is up when user arrives on the page, with the list displayed
|
55
|
+
arrowUp.addEventListener('click', function(){
|
56
|
+
setTimeout(() => {
|
57
|
+
button.setAttribute('aria-expanded', 'false');
|
58
|
+
list.style.display = "none";
|
59
|
+
}, 300)
|
60
|
+
})
|
61
|
+
arrowDown.addEventListener('click', function(){
|
62
|
+
setTimeout(() => {
|
63
|
+
button.setAttribute('aria-expanded', 'true');
|
64
|
+
list.style.display = "block";
|
65
|
+
}, 300)
|
66
|
+
})
|
67
|
+
// 32 is code for space bar and 13 is code for enter
|
68
|
+
button.addEventListener('keydown', function(e){
|
69
|
+
if ((e.keyCode === 13 || e.keyCode === 32) && button.getAttribute('aria-expanded') === 'true') {
|
70
|
+
setTimeout(() => {
|
71
|
+
button.setAttribute('aria-expanded', 'false');
|
72
|
+
list.style.display = "none";
|
73
|
+
}, 300)
|
74
|
+
} else if ((e.keyCode === 13 || e.keyCode === 32) && button.getAttribute('aria-expanded') === 'false'){
|
75
|
+
setTimeout(() => {
|
76
|
+
button.setAttribute('aria-expanded', 'true');
|
77
|
+
list.style.display = "block";
|
78
|
+
}, 300)
|
79
|
+
}
|
80
|
+
})
|
81
|
+
</script>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% announcement = translated_attribute(current_settings.announcement).presence || translated_attribute(component_settings.announcement).presence %>
|
2
|
-
<% if announcement %>
|
2
|
+
<% if strip_tags(announcement).present? %>
|
3
3
|
<section class="layout-main__section">
|
4
4
|
<%= cell("decidim/announcement", announcement, local_assigns.merge(callout_class: "editor-content")) %>
|
5
5
|
</section>
|
@@ -1,16 +1,14 @@
|
|
1
1
|
<%= decidim_modal id: "confirm-modal" do %>
|
2
2
|
<div data-dialog-container>
|
3
|
-
<%= icon "delete-bin-line" %>
|
4
3
|
<h2 class="h2" data-dialog-title id="dialog-title-confirm-modal"><%= t("title", scope: "decidim.shared.confirm_modal") %></h2>
|
5
|
-
|
6
4
|
<div data-confirm-modal-content></div>
|
7
5
|
</div>
|
8
6
|
|
9
|
-
<div data-dialog-actions>
|
10
|
-
<button class="button button__lg button__transparent-secondary" data-confirm-cancel data-dialog-close="confirm-modal">
|
7
|
+
<div data-dialog-actions class="flex flex-col-reverse md:flex-row">
|
8
|
+
<button class="button button__lg button__transparent-secondary w-full md:w-auto" data-confirm-cancel data-dialog-close="confirm-modal">
|
11
9
|
<span><%= t("cancel", scope: "decidim.shared.confirm_modal") %></span>
|
12
10
|
</button>
|
13
|
-
<button class="button button__lg button__secondary" data-confirm-ok>
|
11
|
+
<button class="button button__lg button__secondary w-full md:w-auto" data-confirm-ok>
|
14
12
|
<span><%= t("ok", scope: "decidim.shared.confirm_modal") %></span>
|
15
13
|
</button>
|
16
14
|
</div>
|
@@ -16,16 +16,18 @@
|
|
16
16
|
<% if local_assigns.has_key?(:skip_to_id) %>
|
17
17
|
<%= link_to t("skip", scope: "decidim.shared.filter_form_help"), "##{skip_to_id}", class: "filter-skip", role: "menuitem" %>
|
18
18
|
<% end %>
|
19
|
-
|
19
|
+
|
20
|
+
<p id="filter-help-text" class="filter-help" role="menuitem" aria-disabled="true"><%= t("help", scope: "decidim.shared.filter_form_help") %></p>
|
20
21
|
|
21
22
|
<% if local_assigns.has_key?(:search_variable) %>
|
22
23
|
<div class="filter-search filter-container" role="menuitem">
|
23
24
|
<%= form.search_field search_variable,
|
24
25
|
label: false,
|
25
26
|
placeholder: search_label,
|
26
|
-
title: search_label,
|
27
|
-
"aria-label": search_label
|
28
|
-
|
27
|
+
title: filter_search_label(search_label, skip_to_id),
|
28
|
+
"aria-label": filter_search_label(search_label, skip_to_id),
|
29
|
+
"aria-describedby": "filter-help-text" %>
|
30
|
+
<button type="submit" aria-label="<%= filter_search_label(search_label, skip_to_id) %>">
|
29
31
|
<%= icon "search-line" %>
|
30
32
|
</button>
|
31
33
|
</div>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<nav class="md:w-1/2 lg:w-auto" role="navigation" aria-label="Legal">
|
12
12
|
<%= render partial: "layouts/decidim/footer/main_legal" %>
|
13
13
|
</nav>
|
14
|
-
<nav class="w-full md:w-auto md:ml-auto" role="navigation" aria-label="
|
14
|
+
<nav class="w-full md:w-auto md:ml-auto" role="navigation" aria-label="<%= t("layouts.decidim.footer.social_media") %>">
|
15
15
|
<%= render partial: "layouts/decidim/footer/main_social_media_links" %>
|
16
16
|
</nav>
|
17
17
|
<%= render partial: "layouts/decidim/footer/main_language_chooser" %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% if current_organization.official_img_footer.attached? %>
|
2
2
|
<%= link_to current_organization.official_url, class: "block mb-6" do %>
|
3
|
-
<%= image_tag current_organization.attached_uploader(:official_img_footer).url, alt: current_organization_name, class: "max-h-16" %>
|
3
|
+
<%= image_tag current_organization.attached_uploader(:official_img_footer).url, alt: t("layouts.decidim.footer.current_organization_img", organization: current_organization_name), class: "max-h-16" %>
|
4
4
|
<% end %>
|
5
5
|
<% end %>
|
6
6
|
<div class="text-sm text-white prose">
|
@@ -4,9 +4,9 @@
|
|
4
4
|
<a rel="decidim noopener noreferrer" href="https://decidim.org/" target="_blank" data-external-link="text-only">
|
5
5
|
<%= image_pack_tag("media/images/decidim-logo.svg", alt: t("layouts.decidim.footer.decidim_logo"), class: "max-h-8 block") %>
|
6
6
|
</a>
|
7
|
-
<
|
7
|
+
<p class="text-xs mt-2 [&_a]:underline">
|
8
8
|
<%= t("layouts.decidim.footer.made_with_open_source").html_safe %>
|
9
|
-
</
|
9
|
+
</p>
|
10
10
|
</div>
|
11
11
|
<a class="flex gap-1 hover:opacity-50" rel="license noopener noreferrer" href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" data-external-link="text-only">
|
12
12
|
<span class="sr-only"><%= t("layouts.decidim.footer.cc_by_license") %></span>
|
@@ -11,10 +11,10 @@
|
|
11
11
|
<% if current_user&.ephemeral? %>
|
12
12
|
<%= render partial: "layouts/decidim/header/close_ephemeral_session" %>
|
13
13
|
<% else %>
|
14
|
-
<div class="main-bar__search">
|
14
|
+
<div role="search" class="main-bar__search">
|
15
15
|
<%= render partial: "layouts/decidim/header/main_search" %>
|
16
16
|
</div>
|
17
|
-
<div class="main-bar__links-desktop">
|
17
|
+
<div role="navigation" class="main-bar__links-desktop">
|
18
18
|
<%= render partial: "layouts/decidim/header/main_links_desktop" %>
|
19
19
|
</div>
|
20
20
|
<div class="main-bar__menu-mobile">
|
@@ -30,6 +30,12 @@
|
|
30
30
|
<% unread_data = current_user_unread_data %>
|
31
31
|
<% if unread_data[:unread_items] %>
|
32
32
|
<%= content_tag :span, "", class: "main-bar__notification", data: unread_data %>
|
33
|
+
<% if unread_data[:unread_notifications] %>
|
34
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_notifications"), class: "sr-only" %>
|
35
|
+
<% end %>
|
36
|
+
<% if unread_data[:unread_conversations] %>
|
37
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_conversations"), class: "sr-only" %>
|
38
|
+
<% end %>
|
33
39
|
<% end %>
|
34
40
|
<% if current_user.avatar.attached? %>
|
35
41
|
<span class="main-bar__avatar">
|
@@ -17,6 +17,7 @@
|
|
17
17
|
<span class="text-secondary"><%= t("layouts.decidim.user_menu.notifications") %></span>
|
18
18
|
<% if unread_data[:unread_notifications] %>
|
19
19
|
<%= content_tag :span, "", class: "main-bar__dropdown-notification", data: unread_data %>
|
20
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_notifications"), class: "sr-only" %>
|
20
21
|
<% end %>
|
21
22
|
<% end %>
|
22
23
|
</li>
|
@@ -26,6 +27,7 @@
|
|
26
27
|
<span class="text-secondary"><%= t("layouts.decidim.user_menu.conversations") %></span>
|
27
28
|
<% if unread_data[:unread_conversations] %>
|
28
29
|
<%= content_tag :span, "", class: "main-bar__dropdown-notification", data: unread_data %>
|
30
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_conversations"), class: "sr-only" %>
|
29
31
|
<% end %>
|
30
32
|
<% end %>
|
31
33
|
</li>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
</div>
|
11
11
|
|
12
12
|
<div>
|
13
|
-
<div class="main-bar__links-mobile__trigger" onclick="document.querySelector('#dropdown-trigger-links-mobile').click();">
|
13
|
+
<div class="main-bar__links-mobile__trigger" onclick="document.querySelector('#dropdown-trigger-links-mobile').click();document.querySelector('#dropdown-menu-account-mobile').removeAttribute('aria-modal')">
|
14
14
|
<%= icon "close-line" %>
|
15
15
|
</div>
|
16
16
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if available_locales.length > 1 %>
|
2
2
|
<div>
|
3
3
|
<button id="dropdown-trigger-language-chooser-mobile" data-component="dropdown" data-target="dropdown-menu-language-chooser-mobile" class="mt-8 rounded-lg py-0 bg-gray-5 h-10 border border-gray outline outline-1 outline-transparent">
|
4
|
-
<span><%= t("name", scope: "locale" ) %></span>
|
4
|
+
<span class="ml-2"><%= t("name", scope: "locale" ) %></span>
|
5
5
|
<%= icon "arrow-down-s-line" %>
|
6
6
|
<%= icon "arrow-up-s-line" %>
|
7
7
|
<span class="sr-only">
|
data/config/locales/ar.yml
CHANGED
@@ -839,7 +839,6 @@ ar:
|
|
839
839
|
reject_invitation: رفض
|
840
840
|
group_members:
|
841
841
|
actions:
|
842
|
-
are_you_sure: هل أنت واثق؟
|
843
842
|
promote_to_admin: جعل المشرف
|
844
843
|
remove_from_group: إزالة المشارك
|
845
844
|
index:
|
@@ -1028,10 +1027,8 @@ ar:
|
|
1028
1027
|
unsubscribe:
|
1029
1028
|
success: أنت غير مشترك بنجاح.
|
1030
1029
|
token_error: انتهت صلاحية الرابط.
|
1031
|
-
unsubscribe: إلغاء الاشتراك
|
1032
1030
|
newsletters_opt_in_mailer:
|
1033
1031
|
notify:
|
1034
|
-
body_1: تزداد أهمية معالجة البيانات الشخصية وحمايتها بالنسبة لنا جميعًا. مع اللائحة العامة الجديدة لحماية البيانات (GDPR) المؤرخة 25 مايو 2018 ، أصبح للأفراد سيطرة أفضل على بياناتهم الشخصية. لهذا السبب نحتاج إلى "موافق" لمواصلة إرسال المعلومات ذات الصلة حول أنشطة %{organization_name}.
|
1035
1032
|
body_2: 'كيف يمكنك أن تعطينا موافقتك؟ فقط انقر على الزر التالي:'
|
1036
1033
|
body_3: مع هذه الموافقة ، ستتمكن من متابعة تلقي معلومات حول خدمات النظام الأساسي. على العكس من ذلك ، إذا لم نتلق تأكيدًا إيجابيًا من جانبك ، فسنوقف إرسال رسائلنا إليك. إذا أكدت رغبتك في أن تظل على اطلاع ، فسيكون لديك دائمًا خيار الإلغاء في أي وقت.
|
1037
1034
|
button: نعم ، أرغب في متابعة تلقي المعلومات ذات الصلة
|
data/config/locales/bg-BG.yml
CHANGED
@@ -405,7 +405,7 @@ bg:
|
|
405
405
|
newsletter: Получавайте извънреден бюлетин с подходяща информация
|
406
406
|
newsletter_title: Разрешение за контакт с Вас
|
407
407
|
nickname_help: Вашя псевдоним в %{organization}
|
408
|
-
password_help: "Минимум %{
|
408
|
+
password_help: "Минимум %{minimum_characters} символа, не трябва да са разпространени (например, 123456) и трябва да са различни от вашите име и ел. поща."
|
409
409
|
sign_in: Вход
|
410
410
|
sign_up: Регистрация
|
411
411
|
sign_up_as:
|
@@ -1315,7 +1315,7 @@ bg:
|
|
1315
1315
|
change_your_password: Промени паролата си
|
1316
1316
|
confirm_new_password: Потвърди нова парола
|
1317
1317
|
new_password: Нова парола
|
1318
|
-
password_help: "Минимум %{
|
1318
|
+
password_help: "Минимум %{minimum_characters} символа, не трябва да са разпространени (например, 123456) и трябва да са различни от вашите име и ел. поща."
|
1319
1319
|
new:
|
1320
1320
|
forgot_your_password: Забравили сте паролата си?
|
1321
1321
|
send_me_reset_password_instructions: Изпрати ми инструкции за възстановяване на паролата
|
data/config/locales/bg.yml
CHANGED
@@ -926,7 +926,6 @@ bg:
|
|
926
926
|
title: Какви са значките?
|
927
927
|
group_admins:
|
928
928
|
actions:
|
929
|
-
are_you_sure: Сигурни ли сте? Това няма да премахне участника от групата.
|
930
929
|
demote_admin: Премахни администратор
|
931
930
|
demote:
|
932
931
|
error: Възникна проблем при премахването на този участник от списъка с администратори.
|
@@ -956,7 +955,6 @@ bg:
|
|
956
955
|
error: Възникна проблем при приемането на заявката за присъединяване.
|
957
956
|
success: Заявката за присъединяване е приета успешно.
|
958
957
|
actions:
|
959
|
-
are_you_sure: Сигурни ли сте?
|
960
958
|
promote_to_admin: Направи администратор
|
961
959
|
remove_from_group: Премахни участник
|
962
960
|
index:
|
@@ -1186,11 +1184,9 @@ bg:
|
|
1186
1184
|
main_image: Основно изображение
|
1187
1185
|
newsletters:
|
1188
1186
|
unsubscribe:
|
1189
|
-
check_subscription: За да зададете предпочитанията си, отидете в страницата <a href="%{link}" target="_blank">настройки</a>.
|
1190
1187
|
error: Възникна проблем при прекратяването на абонамента.
|
1191
1188
|
success: Отписахте се успешно.
|
1192
1189
|
token_error: Срокът на връзката е изтекъл.
|
1193
|
-
unsubscribe: Отписване
|
1194
1190
|
newsletters_opt_in:
|
1195
1191
|
unauthorized: Съжаляваме, този линк вече не е активен.
|
1196
1192
|
update:
|
@@ -1198,7 +1194,6 @@ bg:
|
|
1198
1194
|
success: Настройките за бюлетина са успешно обновени.
|
1199
1195
|
newsletters_opt_in_mailer:
|
1200
1196
|
notify:
|
1201
|
-
body_1: Обработката на личните данни и тяхната защита стават все по-важни за всички нас. С новия Общ регламент за защита на данните (GDPR) от 25 май 2018 г. лицата имат по-добър контрол върху личните си данни. Поради тази причина се нуждаем от вашето съгласие, за да продължим да изпращаме подходяща информация за дейностите на %{organization_name}.
|
1202
1197
|
body_2: 'Как можете да ни дадете своето съгласие? Просто щракнете върху следния бутон:'
|
1203
1198
|
body_3: С това съгласие ще продължите да получавате информация за дейностите в платформата. Ако не получим потвърждение от Ваша страна, ще спрем да ви изпращаме нашите съобщения. Дори да потвърдите, че желаете да бъдете информирани, винаги ще имате възможност да се откажете по всяко време.
|
1204
1199
|
button: Да, желая да продължа да получавам подбрана информация
|
data/config/locales/ca-IT.yml
CHANGED
@@ -173,6 +173,13 @@ ca-IT:
|
|
173
173
|
x_seconds:
|
174
174
|
one: 1 segon
|
175
175
|
other: "%{count} segons"
|
176
|
+
widget:
|
177
|
+
label:
|
178
|
+
date: Seleccionar data per %{label}
|
179
|
+
time: Seleccionar hora per %{label}
|
180
|
+
picker:
|
181
|
+
date_button: Obre el selector de calendari per a %{label}
|
182
|
+
time_button: Obre el selector d'hora per a %{label}
|
176
183
|
decidim:
|
177
184
|
accessibility:
|
178
185
|
external_link: Enllaç extern
|
@@ -1163,7 +1170,12 @@ ca-IT:
|
|
1163
1170
|
title: Què són les ensenyes?
|
1164
1171
|
group_admins:
|
1165
1172
|
actions:
|
1166
|
-
|
1173
|
+
confirm_modal:
|
1174
|
+
ok_add: Afegir una administradora
|
1175
|
+
ok_remove: Eliminar l'administradora
|
1176
|
+
title_add: Confirmar la nova administradora
|
1177
|
+
title_remove: Eliminar l'administradora
|
1178
|
+
confirm_remove_from_admin: Segur que vols eliminar a l'avaluadora d'aquest grup?
|
1167
1179
|
demote_admin: Elimina l'administradora
|
1168
1180
|
demote:
|
1169
1181
|
error: S'ha produït un error en eliminar aquesta usuària de la llista d'administradores.
|
@@ -1193,7 +1205,11 @@ ca-IT:
|
|
1193
1205
|
error: S'ha produït un error en acceptar aquesta sol·licitud d'incorporació al grup.
|
1194
1206
|
success: Sol·licitud d'incorporació rebutjada correctament.
|
1195
1207
|
actions:
|
1196
|
-
|
1208
|
+
confirm_modal:
|
1209
|
+
ok_remove: Eliminar membre
|
1210
|
+
title_remove: Eliminar membre
|
1211
|
+
confirm_promote_to_admin: Segur que vols afegir aquesta usuària com a administradora?
|
1212
|
+
confirm_remove_from_group: Segur que vols eliminar a aquesta usuària d'aquest grup?
|
1197
1213
|
promote_to_admin: Fer administradora
|
1198
1214
|
remove_from_group: Eliminar participant
|
1199
1215
|
index:
|
@@ -1435,11 +1451,12 @@ ca-IT:
|
|
1435
1451
|
main_image: Imatge principal
|
1436
1452
|
newsletters:
|
1437
1453
|
unsubscribe:
|
1438
|
-
|
1454
|
+
check_subscription_html: Si els vols tornar a rebre, pots tornar a activar la teva subscripció en qualsevol moment des de la <a href="%{link}" target="_blank">pàgina de configuració</a>.
|
1439
1455
|
error: S'ha produït un error en cancel·lar la subscripció.
|
1456
|
+
subscription_preferences: Hem actualitzat les teves preferències de subscripció i ja no rebràs butlletins informatius de %{organization_name}.
|
1440
1457
|
success: Has cancel·lat la subscripció correctament.
|
1441
1458
|
token_error: L'enllaç ha caducat.
|
1442
|
-
unsubscribe:
|
1459
|
+
unsubscribe: Cancel·lar la subscripció al butlletí informatiu
|
1443
1460
|
newsletters_opt_in:
|
1444
1461
|
unauthorized: Ho sentim, aquest enllaç ja no està disponible.
|
1445
1462
|
update:
|
@@ -1447,7 +1464,7 @@ ca-IT:
|
|
1447
1464
|
success: La configuració del butlletí de notícies s'ha actualitzat correctament.
|
1448
1465
|
newsletters_opt_in_mailer:
|
1449
1466
|
notify:
|
1450
|
-
body_1: El processament de les dades personals i la seva protecció cada vegada és més important per a totes nosaltres. Amb el
|
1467
|
+
body_1: El processament de les dades personals i la seva protecció cada vegada és més important per a totes nosaltres. Amb el Reglament General de Protecció de Dades (GDPR) del 25 de maig de 2018, les persones tenen un major control sobre les seves dades personals. Per aquest motiu, necessitem la teva autorització per continuar enviant informació rellevant sobre les activitats del %{organization_name}.
|
1451
1468
|
body_2: 'Com ens pots donar el teu consentiment? Només cal que facis clic al botó següent:'
|
1452
1469
|
body_3: Donant consentiment podràs continuar rebent informació sobre els serveis de la plataforma. Si, al contrari, no rebem una confirmació positiva de la teva part, deixarem d'enviar-te els nostres missatges. Si confirmes que vols mantenir-te informada, sempre tindràs l'opció de cancel·lar en qualsevol moment.
|
1453
1470
|
button: Sí, vull continuar rebent informació rellevant
|
@@ -1783,6 +1800,7 @@ ca-IT:
|
|
1783
1800
|
searches:
|
1784
1801
|
filters:
|
1785
1802
|
jump_to: 'Salta a:'
|
1803
|
+
resource: "%{label} entre %{collection}"
|
1786
1804
|
search: Cercar
|
1787
1805
|
state:
|
1788
1806
|
active: Actiu
|
@@ -2257,14 +2275,17 @@ ca-IT:
|
|
2257
2275
|
edit: Edita
|
2258
2276
|
footer:
|
2259
2277
|
cc_by_license: Amb llicència Creative Commons
|
2278
|
+
current_organization_img: "%{organization} (Anar a la pàgina d'inici)"
|
2260
2279
|
data_consent_settings: Configuració de les galetes
|
2261
2280
|
decidim_logo: Logo Decidim
|
2262
2281
|
decidim_title: Decidim
|
2282
|
+
help: Ajuda
|
2263
2283
|
log_in: Entra
|
2264
2284
|
made_with_open_source: Web creada amb <a target="_blank" href="https://github.com/decidim/decidim">programari lliure</a>.
|
2265
2285
|
open_data: Dades obertes
|
2266
2286
|
resources: Recursos
|
2267
2287
|
sign_up: Crea un compte
|
2288
|
+
social_media: Xarxes socials
|
2268
2289
|
terms_of_service: Termes i condicions d'ús
|
2269
2290
|
header:
|
2270
2291
|
close: Tancar
|
@@ -2306,6 +2327,8 @@ ca-IT:
|
|
2306
2327
|
profile: El meu compte
|
2307
2328
|
public_profile: El meu perfil públic
|
2308
2329
|
title: Enllaços del perfil
|
2330
|
+
unread_conversations: Tens converses sense llegir
|
2331
|
+
unread_notifications: Tens notificacions sense llegir
|
2309
2332
|
user_profile:
|
2310
2333
|
account: Compte
|
2311
2334
|
authorizations: Autoritzacions
|