decidim-core 0.29.1 → 0.29.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/activity_cell.rb +0 -3
  3. data/app/cells/decidim/author/show.erb +5 -4
  4. data/app/cells/decidim/author_cell.rb +26 -0
  5. data/app/cells/decidim/card_s/show.erb +5 -3
  6. data/app/cells/decidim/diff_cell.rb +4 -0
  7. data/app/cells/decidim/newsletter_templates/image_text_cta_cell.rb +1 -1
  8. data/app/cells/decidim/translation_bar/show.erb +2 -2
  9. data/app/cells/decidim/translation_bar_cell.rb +1 -1
  10. data/app/commands/decidim/destroy_account.rb +3 -0
  11. data/app/controllers/decidim/doorkeeper/credentials_controller.rb +1 -1
  12. data/app/controllers/decidim/links_controller.rb +1 -1
  13. data/app/controllers/decidim/profiles_controller.rb +4 -0
  14. data/app/helpers/concerns/decidim/user_role_checker.rb +46 -0
  15. data/app/helpers/decidim/cta_button_helper.rb +1 -1
  16. data/app/helpers/decidim/map_helper.rb +6 -1
  17. data/app/helpers/decidim/sanitize_helper.rb +11 -2
  18. data/app/models/decidim/attachment.rb +1 -1
  19. data/app/packs/src/decidim/append_redirect_url_to_modals.js +14 -6
  20. data/app/packs/src/decidim/direct_uploads/upload_field.js +21 -8
  21. data/app/packs/src/decidim/index.js +3 -0
  22. data/app/packs/src/decidim/remote_tooltips.js +38 -0
  23. data/app/packs/src/decidim/toggle.js +1 -1
  24. data/app/packs/src/decidim/tooltips.js +42 -22
  25. data/app/packs/stylesheets/decidim/_labels.scss +1 -1
  26. data/app/packs/stylesheets/decidim/_profile.scss +1 -1
  27. data/app/packs/stylesheets/decidim/_progress-bar.scss +1 -1
  28. data/app/packs/stylesheets/decidim/legacy/conference-diploma.scss +2 -1
  29. data/app/presenters/decidim/attachment_presenter.rb +1 -1
  30. data/app/services/decidim/base_diff_renderer.rb +26 -2
  31. data/app/services/decidim/email_notification_generator.rb +14 -5
  32. data/app/views/decidim/pages/_tabbed.html.erb +2 -2
  33. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  34. data/config/locales/ar.yml +16 -0
  35. data/config/locales/bn-BD.yml +1 -0
  36. data/config/locales/bs-BA.yml +98 -0
  37. data/config/locales/ca.yml +13 -9
  38. data/config/locales/cs.yml +5 -0
  39. data/config/locales/de.yml +18 -14
  40. data/config/locales/el.yml +7 -0
  41. data/config/locales/en.yml +4 -0
  42. data/config/locales/es-MX.yml +5 -1
  43. data/config/locales/es-PY.yml +5 -1
  44. data/config/locales/es.yml +11 -7
  45. data/config/locales/eu.yml +198 -181
  46. data/config/locales/fi-plain.yml +4 -0
  47. data/config/locales/fi.yml +39 -35
  48. data/config/locales/fr-CA.yml +6 -2
  49. data/config/locales/fr.yml +5 -1
  50. data/config/locales/ga-IE.yml +9 -0
  51. data/config/locales/gl.yml +8 -0
  52. data/config/locales/hu.yml +3 -3
  53. data/config/locales/id-ID.yml +8 -0
  54. data/config/locales/is-IS.yml +8 -1
  55. data/config/locales/it.yml +19 -0
  56. data/config/locales/ja.yml +15 -13
  57. data/config/locales/lb.yml +9 -0
  58. data/config/locales/lt.yml +5 -1
  59. data/config/locales/lv.yml +8 -0
  60. data/config/locales/nl.yml +10 -1
  61. data/config/locales/no.yml +9 -0
  62. data/config/locales/pl.yml +1 -1
  63. data/config/locales/pt-BR.yml +2 -1
  64. data/config/locales/pt.yml +14 -0
  65. data/config/locales/ro-RO.yml +258 -135
  66. data/config/locales/ru.yml +8 -0
  67. data/config/locales/sk.yml +9 -1
  68. data/config/locales/sv.yml +7 -7
  69. data/config/locales/tr-TR.yml +10 -1
  70. data/config/locales/uk.yml +8 -1
  71. data/config/locales/zh-CN.yml +9 -0
  72. data/config/locales/zh-TW.yml +8 -0
  73. data/config/routes.rb +1 -0
  74. data/decidim-core.gemspec +4 -1
  75. data/lib/decidim/api/functions/component_list.rb +1 -1
  76. data/lib/decidim/api/functions/participatory_space_finder_base.rb +11 -1
  77. data/lib/decidim/api/interfaces/participatory_space_interface.rb +1 -1
  78. data/lib/decidim/api/types/component_type.rb +7 -0
  79. data/lib/decidim/api/types/user_group_type.rb +4 -0
  80. data/lib/decidim/api/types/user_type.rb +4 -0
  81. data/lib/decidim/attributes/rich_text.rb +38 -0
  82. data/lib/decidim/attributes/time_with_zone.rb +11 -1
  83. data/lib/decidim/attributes.rb +2 -0
  84. data/lib/decidim/content_parsers/blob_parser.rb +93 -0
  85. data/lib/decidim/content_parsers.rb +1 -0
  86. data/lib/decidim/content_renderers/blob_renderer.rb +90 -0
  87. data/lib/decidim/content_renderers.rb +1 -0
  88. data/lib/decidim/core/engine.rb +29 -1
  89. data/lib/decidim/core/test/factories.rb +28 -0
  90. data/lib/decidim/core/test/shared_examples/authorable_interface_examples.rb +1 -1
  91. data/lib/decidim/core/test/shared_examples/comments_examples.rb +15 -2
  92. data/lib/decidim/core/version.rb +1 -1
  93. data/lib/decidim/diffy_extension.rb +18 -0
  94. data/lib/decidim/form_builder.rb +1 -1
  95. data/lib/decidim/map/autocomplete.rb +1 -0
  96. data/lib/decidim/participatory_space_user.rb +4 -0
  97. data/lib/decidim/query_extensions.rb +0 -26
  98. data/lib/decidim/settings_manifest.rb +2 -0
  99. data/lib/decidim/translatable_attributes.rb +6 -1
  100. data/lib/tasks/upgrade/decidim_fix_categorization.rake +34 -8
  101. metadata +28 -7
@@ -41,7 +41,7 @@ module Decidim
41
41
  end
42
42
 
43
43
  def parse_i18n_changeset(attribute, values, type, diff)
44
- values.last.keys.each do |locale, _value|
44
+ (values.last.keys - ["machine_translations"]).each do |locale, _value|
45
45
  first_value = values.first.try(:[], locale)
46
46
  last_value = values.last.try(:[], locale)
47
47
  next if first_value == last_value
@@ -56,6 +56,27 @@ module Decidim
56
56
  }
57
57
  )
58
58
  end
59
+
60
+ return diff unless values.last.has_key?("machine_translations")
61
+
62
+ values.last.fetch("machine_translations").each_key do |locale, _value|
63
+ next unless I18n.available_locales.include?(locale.to_sym)
64
+
65
+ first_value = values.first.try(:[], "machine_translations").try(:[], locale)
66
+ last_value = values.last.try(:[], "machine_translations").try(:[], locale)
67
+
68
+ attribute_locale = :"#{attribute}_machine_translations_#{locale}"
69
+
70
+ diff.update(
71
+ attribute_locale => {
72
+ type:,
73
+ label: generate_i18n_label(attribute, locale, "decidim.machine_translations.automatic"),
74
+ old_value: first_value,
75
+ new_value: last_value
76
+ }
77
+ )
78
+ end
79
+
59
80
  diff
60
81
  end
61
82
 
@@ -108,7 +129,8 @@ module Decidim
108
129
  end
109
130
 
110
131
  # Returns a String.
111
- def generate_i18n_label(attribute, locale)
132
+ # i18n-tasks-use t("decidim.machine_translations.automatic")
133
+ def generate_i18n_label(attribute, locale, postfix = "")
112
134
  label = I18n.t(attribute, scope: i18n_scope)
113
135
  locale_name = if I18n.available_locales.include?(locale.to_sym)
114
136
  I18n.t("locale.name", locale:)
@@ -116,6 +138,8 @@ module Decidim
116
138
  locale
117
139
  end
118
140
 
141
+ locale_name = I18n.t(postfix, locale_name:, locale:) if postfix.present?
142
+
119
143
  "#{label} (#{locale_name})"
120
144
  end
121
145
 
@@ -36,20 +36,29 @@ module Decidim
36
36
  return unless resource
37
37
  return unless event_class.types.include?(:email)
38
38
 
39
- followers.each do |recipient|
40
- next unless ["all", "followed-only"].include?(recipient.notification_types)
39
+ send_to_followers
40
+ send_to_affected_users
41
+ end
41
42
 
42
- send_email_to(recipient, user_role: :follower)
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
- private
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
 
@@ -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>
@@ -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 %>
@@ -91,6 +91,8 @@ ar:
91
91
  'false': 'لا'
92
92
  'true': 'نعم'
93
93
  date:
94
+ buttons:
95
+ select: تحديد
94
96
  formats:
95
97
  decidim_short: "%d/%m/%Y"
96
98
  decidim_short_with_month_name_short: "%d %b %Y"
@@ -282,6 +284,7 @@ ar:
282
284
  withdrawn: |-
283
285
  تم سحب هذا التعديل على %{amendable_type} %{amendable_link}
284
286
  من قبل المؤلف.
287
+ name: تعديل
285
288
  new:
286
289
  amendment_author: مؤلف التعديل
287
290
  send: إنشاء
@@ -454,6 +457,8 @@ ar:
454
457
  description: الوصف
455
458
  footer_sub_hero:
456
459
  name: تذييل البطل الفرعي راية
460
+ global_menu:
461
+ name: القائمة العامة
457
462
  hero_settings_form:
458
463
  background_image: الصورة الخلفية
459
464
  welcome_text: نص الترحيب
@@ -473,8 +478,12 @@ ar:
473
478
  name: النشاط الاخير
474
479
  title: النشاط الاخير
475
480
  view_all: عرض الكل
481
+ metadata:
482
+ name: البيانات الوصفية
476
483
  metrics:
477
484
  name: مقاييس المنظمة
485
+ participatory_space_metrics:
486
+ name: المقاييس
478
487
  participatory_space_stats:
479
488
  name: الإحصائيات
480
489
  social_networks_metadata:
@@ -493,6 +502,10 @@ ar:
493
502
  name: احصائيات المنظمة
494
503
  sub_hero:
495
504
  name: البطل الفرعي راية
505
+ core:
506
+ application_helper:
507
+ filter_category_values:
508
+ all: الكل
496
509
  devise:
497
510
  omniauth_registrations:
498
511
  new:
@@ -1252,6 +1265,7 @@ ar:
1252
1265
  participatory_space_filters:
1253
1266
  filters:
1254
1267
  areas: المناطق
1268
+ scope: نطاق
1255
1269
  select_an_area: اختر المنطقة
1256
1270
  public_participation:
1257
1271
  public_participation: إبراز حضوري علنا
@@ -1664,6 +1678,8 @@ ar:
1664
1678
  whatsapp_web: واتساب
1665
1679
  xing: شينغ
1666
1680
  time:
1681
+ buttons:
1682
+ select: تحديد
1667
1683
  formats:
1668
1684
  day_of_month: "%b %d"
1669
1685
  day_of_week: "%a"
@@ -0,0 +1 @@
1
+ bn:
@@ -0,0 +1,98 @@
1
+ ---
2
+ bs:
3
+ activerecord:
4
+ models:
5
+ decidim/endorsement:
6
+ one: Podržavanje
7
+ few: Podržavanja
8
+ other: Podržavanja
9
+ decidim:
10
+ accessibility:
11
+ logo: "Zvanični logo %{organization}"
12
+ skip_button: Preskoči na glavni sadržaj
13
+ admin_log:
14
+ user:
15
+ show_email: "%{user_name} je pribavio e-mail adresu učesnika %{resource_name}"
16
+ application:
17
+ document:
18
+ download: Preuzmi datoteku
19
+ author:
20
+ endorsements:
21
+ one: podržavanje
22
+ few: podržavanja
23
+ other: podržavanja
24
+ content_blocks:
25
+ hero_settings_form:
26
+ background_image: Pozadinska slika
27
+ welcome_text: Tekst dobrodošlice
28
+ stats:
29
+ name: Statistika organizacije
30
+ endorsements:
31
+ identities:
32
+ done: Gotovo
33
+ select_identity: Izaberite identitet
34
+ events:
35
+ resource_endorsed:
36
+ email_intro: '%{endorser_name}%{endorser_nickname}, koga pratite, je podržao %{resource_title} i mislimo da bi vas to možda interesovalo. Pogledajte i doprinesite:'
37
+ email_outro: Dobili ste ovo obaveštenje jer pratite %{endorser_nickname}. Možete da prestanete da dobijate obaveštenja, ukoliko pratite prethodni link.
38
+ email_subject: "%{endorser_nickname} je podržao nešto"
39
+ messaging:
40
+ conversations:
41
+ add_conversation_users:
42
+ add_max_users: 'Dodajte korisnike u razgovor: najviše 9 korisnika'
43
+ add_users_placeholder: Pretraži...
44
+ modal_title: Novi razgovor
45
+ no_results: Nema rezultata
46
+ index:
47
+ new_conversation: Novi razgovor
48
+ next: Sledeće
49
+ newsletter_templates:
50
+ basic_only_text:
51
+ body_preview: 'Probni tekst za pasus: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque fringilla nisl tellus. Donec sed mi dui. Sed efficitur libero a felis tempor sollicitudin. Nullam vestibulum fringilla felis, id efficitur lorem sagittis et. Vivamus aliquam maximus velit vel dapibus. Mauris pellentesque, enim eu varius lacinia, risus ante rutrum ipsum, non lobortis augue lorem quis urna. Aenean et malesuada arcu.'
52
+ name: Osnovno (samo tekst)
53
+ basic_only_text_settings_form:
54
+ body: Glavni deo teksta
55
+ interpolations_hint: 'Mala pomoć: Možeš da napišeš "%{name}" bilo gde u tekstu ili naslovu i automatski će se zameniti sa imenom primaoca.'
56
+ image_text_cta:
57
+ body_preview: 'Probni tekst za pasus: Maecenas ac nisl vitae lectus pretium facilisis. Etiam facilisis sem nibh, sit amet rutrum mi aliquam nec. Sed id urna at nisl pretium mollis eu vel velit. Proin vitae suscipit urna, sed faucibus urna. Pellentesque id libero vulputate ipsum scelerisque suscipit. Nam aliquam sodales mi sit amet cursus. Donec mattis faucibus purus. Aenean tincidunt porta lorem ac commodo. Vestibulum in mollis mi. Morbi eros erat, cursus ut tortor sit amet, imperdiet dapibus arcu. Suspendisse id egestas enim. In eget magna sed enim efficitur elementum sit amet aliquam quam. Donec fermentum metus eget urna luctus pulvinar.'
58
+ cta_text_preview: Tekst Poziva na akciju
59
+ introduction_preview: 'Probni tekst za uvod: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque fringilla nisl tellus. Donec sed mi dui. Sed efficitur libero a felis tempor sollicitudin. Nullam vestibulum fringilla felis, id efficitur lorem sagittis et. Vivamus aliquam maximus velit vel dapibus. Mauris pellentesque, enim eu varius lacinia, risus ante rutrum ipsum, non lobortis augue lorem quis urna. Aenean et malesuada arcu.'
60
+ name: Dugme za sliku, tekst i Poziv na akciju
61
+ image_text_cta_settings_form:
62
+ body: Glavni deo teksta
63
+ cta_text: Tekst dugmeta poziva na akciju
64
+ cta_url: Link dugmeta poziva na akciju
65
+ interpolations_hint: 'Mala pomoć: Možeš da napišeš "%{name}" bilo gde u uvodu, glavnom delu teksta, pozivu na akciju ili naslovu i automatski će se zameniti sa imenom primaoca.'
66
+ introduction: Uvod
67
+ main_image: Glavna slika
68
+ notifications_settings:
69
+ show:
70
+ direct_messages: Primaj direktne poruke od svih bez ograničenja
71
+ pages:
72
+ participatory_space:
73
+ metrics:
74
+ headline: Metrika
75
+ link: Prikaži svu metriku
76
+ resource_endorsements:
77
+ create:
78
+ error: Nastao je problem pri podržavanju.
79
+ shared:
80
+ results_per_page:
81
+ title: Izaberite broj rezultata po stranici
82
+ user_contact_disabled: Ovaj učesnik ne prihvata direktne poruke.
83
+ errors:
84
+ messages:
85
+ invalid_time_zone: nije validna vremenska zona
86
+ locale:
87
+ name: Bosanski
88
+ time:
89
+ formats:
90
+ long_dashed: "%d-%m-%Y %H:%M:%S"
91
+ versions:
92
+ dropdown:
93
+ choose_diff_view_html: 'HTML režim gledanja:'
94
+ views:
95
+ pagination:
96
+ next_title: Veza ka sledećoj stranici
97
+ previous_title: Veza ka prethodnoj stranici
98
+ title: 'Redni broj stranice:'
@@ -986,7 +986,7 @@ ca:
986
986
  success: Sol·licitud d'incorporació rebutjada correctament.
987
987
  actions:
988
988
  are_you_sure: Segur?
989
- promote_to_admin: Fer administrador
989
+ promote_to_admin: Fer administradora
990
990
  remove_from_group: Eliminar participant
991
991
  index:
992
992
  current_members_without_admins: 'Membres actuals (sense administradors):'
@@ -1084,6 +1084,8 @@ ca:
1084
1084
  not_found: 'L''àmbit no s''ha trobat a la base de dades (ID: %{id})'
1085
1085
  scope_type_presenter:
1086
1086
  not_found: 'El tipus d''àmbit no s''ha trobat a la base de dades (ID: %{id})'
1087
+ machine_translations:
1088
+ automatic: traducció automàtica a %{locale_name}
1087
1089
  managed_users:
1088
1090
  expired_session: La sessió actual d'administració d'una participant ha caducat.
1089
1091
  map:
@@ -1103,35 +1105,35 @@ ca:
1103
1105
  comanagers_new_conversation:
1104
1106
  admin_in_group: Reps aquesta notificació perquè administres el grup "%{group}".
1105
1107
  greeting: Hola, %{recipient}!
1106
- intro: "%{manager} ha iniciat una nova conversa en nom de %{group}. Fes clic aquí per veure-la:"
1108
+ intro: "%{manager} ha iniciat una nova conversa en nom de %{group}. Per veure-la i respondre, inicia la teva sessió i fes clic a l'enllaç que trobaràs més avall:"
1107
1109
  outro: Gaudeix de la plataforma!
1108
1110
  subject: "%{manager} ha iniciat una nova conversa com a %{group}"
1109
1111
  comanagers_new_message:
1110
1112
  admin_in_group: Reps aquesta notificació perquè administres el grup "%{group}".
1111
1113
  greeting: Hola, %{recipient}!
1112
- intro: "%{manager} ha publicat nous missatge a una conversa en nom de %{group}. Fes clic aquí per veure-la:"
1114
+ intro: "%{manager} ha publicat nous missatges a una conversa en nom de %{group}. Per veure'ls i respondre, inicia la teva sessió i fes clic a l'enllaç que trobaràs més avall:"
1113
1115
  outro: Gaudeix de la plataforma!
1114
1116
  subject: "%{manager} ha enviat nous missatges com a %{group}"
1115
1117
  new_conversation:
1116
1118
  greeting: Hola, %{recipient}!
1117
- intro: "%{sender} ha iniciat una nova conversa amb tu. Fes clic aquí per veure-la:"
1119
+ intro: "%{sender} ha iniciat una nova conversa amb tu. Per veure-la i respondre, inicia la teva sessió i fes clic a l'enllaç que trobaràs més avall:"
1118
1120
  outro: Gaudeix de la plataforma!
1119
1121
  subject: "%{sender} ha iniciat una conversa amb tu"
1120
1122
  new_group_conversation:
1121
1123
  admin_in_group: Reps aquesta notificació perquè administres el grup "%{group}".
1122
1124
  greeting: Hola, %{recipient}!
1123
- intro: "%{sender} ha iniciat una nova conversa amb el %{group}. Fes clic aquí per veure-la:"
1125
+ intro: "%{sender} ha iniciat una nova conversa amb el %{group}. Per veure-la i respondre, inicia la teva sessió i fes clic a l'enllaç que trobaràs més avall:"
1124
1126
  outro: Gaudeix de la plataforma!
1125
1127
  subject: "%{sender} ha iniciat una nova conversa amb %{group}"
1126
1128
  new_group_message:
1127
1129
  admin_in_group: Reps aquesta notificació perquè administres el grup "%{group}".
1128
1130
  greeting: Hola, %{recipient}!
1129
- intro: "%{sender} ha publicat nous missatge a una conversa amb el grup %{group}. Fes clic aquí per veure-la:"
1131
+ intro: "%{sender} ha publicat nous missatge a una conversa amb el grup %{group}. Per veure'ls i respondre, inicia la teva sessió i fes clic a l'enllaç que trobaràs més avall:"
1130
1132
  outro: Gaudeix de la plataforma!
1131
1133
  subject: "%{group} té nous missatge de %{sender}"
1132
1134
  new_message:
1133
1135
  greeting: Hola, %{recipient}!
1134
- intro: "%{sender} ha enviat nous missatges a la teva conversa. Fes clic aquí per veure'ls:"
1136
+ intro: "%{sender} ha enviat nous missatges a la teva conversa. Per veure'ls i respondre, inicia la teva sessió i fes clic a l'enllaç que trobaràs més avall:"
1135
1137
  outro: Gaudeix de la plataforma!
1136
1138
  subject: Tens nous missatges de %{sender}
1137
1139
  conversations:
@@ -1172,7 +1174,7 @@ ca:
1172
1174
  active: Actives
1173
1175
  finished: 'Finalitzat el: %{end_date}'
1174
1176
  not_started: No s'ha iniciat encara
1175
- remaining: "resta %{time_distance}"
1177
+ remaining: "Resta(en) %{time_distance}"
1176
1178
  metrics:
1177
1179
  download:
1178
1180
  csv: Descarregar les dades (csv)
@@ -1583,7 +1585,7 @@ ca:
1583
1585
  user_update_mailer:
1584
1586
  notify:
1585
1587
  body_1: Reps aquest missatge per informar-te d'una actualització del teu compte.
1586
- body_2: En el cas que no hagis estat tu qui ha realitzat aquesta actualització, si us plau, inicia la teva sessió i modifica la teva contrasenya. Si no poguessis iniciar la teva sessió, si ús pla, contacte amb el servei de suport a la plataforma.
1588
+ body_2: En el cas que no hagis estat tu qui ha realitzat aquesta actualització, si us plau, inicia la teva sessió i modifica la teva contrasenya. Si no poguessis iniciar la teva sessió, si us plau, contacte amb el servei de suport a la plataforma.
1587
1589
  greetings: Hola,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1588
1590
  hello: Hola %{user}
1589
1591
  main_body: 'S''han modificat els següents detalls: %{updates}.'
@@ -1947,6 +1949,8 @@ ca:
1947
1949
  expire_time_html: La vostra sessió caducarà en <b><span class="minutes">%{minutes}</span> minutes</b>.
1948
1950
  language_chooser:
1949
1951
  choose_language: Triar la llengua
1952
+ navigation:
1953
+ aria_label: 'Menú de navegació: %{title}'
1950
1954
  notifications_dashboard:
1951
1955
  mark_all_as_read: Marcar tot com a llegit
1952
1956
  mark_as_read: Marcar com a llegit
@@ -1127,6 +1127,8 @@ cs:
1127
1127
  not_found: 'Oblast působnosti nebyla nalezena v databázi (ID: %{id})'
1128
1128
  scope_type_presenter:
1129
1129
  not_found: 'Typ oboru nebyl nalezen v databázi (ID: %{id})'
1130
+ machine_translations:
1131
+ automatic: automatický překlad do %{locale_name}
1130
1132
  managed_users:
1131
1133
  expired_session: Aktuální relace správy účastníka vypršela.
1132
1134
  map:
@@ -1997,6 +1999,8 @@ cs:
1997
1999
  expire_time_html: Platnost vaší relace vyprší za <b><span class="minutes">%{minutes}</span></b>.
1998
2000
  language_chooser:
1999
2001
  choose_language: Vyberte jazyk
2002
+ navigation:
2003
+ aria_label: Navigační menu - %{title}
2000
2004
  notifications_dashboard:
2001
2005
  mark_all_as_read: Označit vše jako přečtené
2002
2006
  mark_as_read: Označit jako přečtené
@@ -2105,6 +2109,7 @@ cs:
2105
2109
  long_with_particles: "%B %d, %Y v %H:%M"
2106
2110
  short: "%d/%m/%Y %H:%M"
2107
2111
  time_of_day: "%H:%M"
2112
+ tooltip: "%d-%m-%Y %H:%M %p %Z (GMT %:z)"
2108
2113
  versions:
2109
2114
  directions:
2110
2115
  left: Smazané
@@ -81,7 +81,7 @@ de:
81
81
  date:
82
82
  buttons:
83
83
  close: Schliessen
84
- select: Auswählen
84
+ select: Wählen
85
85
  formats:
86
86
  decidim_short: "%d/%m/%Y"
87
87
  decidim_short_dashed: "%d-%m-%Y"
@@ -189,7 +189,7 @@ de:
189
189
  cancel: Abbrechen
190
190
  password_change:
191
191
  alert: Sie müssen Ihr Passwort ändern, um fortzufahren.
192
- notification: Administratoren müssen ihr Passwort alle %{days} Tage ändern.
192
+ notification: Admins müssen ihr Passwort alle %{days} Tage ändern.
193
193
  admin_log:
194
194
  area:
195
195
  create: "%{user_name} hat den Bereich %{resource_name} erstellt"
@@ -854,7 +854,7 @@ de:
854
854
  answer: Antwort
855
855
  collaborative_draft: Kollaborativer Entwurf
856
856
  dummy_resource: Dummy-Ressourcen
857
- meeting: Meetings
857
+ meeting: Veranstaltungen
858
858
  project: Projekte
859
859
  proposal: Vorschläge
860
860
  result: Ergebnisse
@@ -1089,6 +1089,8 @@ de:
1089
1089
  not_found: 'Der Bereich wurde nicht in der Datenbank gefunden (ID: %{id})'
1090
1090
  scope_type_presenter:
1091
1091
  not_found: 'Der Bereichstyp wurde nicht in der Datenbank gefunden (ID: %{id})'
1092
+ machine_translations:
1093
+ automatic: automatische Übersetzung in %{locale_name}
1092
1094
  managed_users:
1093
1095
  expired_session: Die aktuelle Identitätswechselsitzung ist abgelaufen.
1094
1096
  map:
@@ -1298,7 +1300,7 @@ de:
1298
1300
  not_available_yet: Die Open Data-Dateien sind noch nicht verfügbar. Bitte versuchen Sie es in einigen Minuten erneut.
1299
1301
  pad_iframe:
1300
1302
  disclaimer: Der Inhalt dieses Blocks wird von registrierten Benutzern verfasst und gibt deren Meinung wieder. %{organization} kann nicht für den Inhalt verantwortlich gemacht werden.
1301
- explanation: Verwenden Sie dieses Pad, um während des Meetings gemeinsam Notizen zu machen, was die Protokollerstellung erleichtert.
1303
+ explanation: Verwenden Sie dieses Pad, um während der Veranstaltung gemeinsam Notizen zu machen, was die Protokollerstellung erleichtert.
1302
1304
  pad: Pad
1303
1305
  pages:
1304
1306
  home:
@@ -1306,9 +1308,9 @@ de:
1306
1308
  debates: Diskussionen
1307
1309
  debates_explanation: Teilen Sie Ihre Ansichten und bereichern Sie die aus Ihrer Sicht relevanten Themen.
1308
1310
  how_to_participate: Wie nehme ich an einem Prozess teil?
1309
- meetings: Meetings
1311
+ meetings: Veranstaltungen
1310
1312
  meetings_explanation: Finden Sie heraus, wo und wann Sie an öffentlichen Veranstaltungen teilnehmen können.
1311
- more_info: Mehr Informationen
1313
+ more_info: Mehr Informationen über %{resource_name}
1312
1314
  proposals: Vorschläge
1313
1315
  proposals_explanation: Machen Sie Vorschläge, unterstützen Sie bestehende und fördern Sie die Änderungen, die Sie sehen möchten.
1314
1316
  footer_sub_hero:
@@ -1320,7 +1322,7 @@ de:
1320
1322
  participate_title: Beteiligen Sie sich an den Prozessen auf dieser Plattform
1321
1323
  welcome: Willkommen bei %{organization}!
1322
1324
  statistics:
1323
- headline: Aktueller Status von %{organization}
1325
+ headline: Starea curentă a %{organization}
1324
1326
  sub_hero:
1325
1327
  register: Registrieren
1326
1328
  register_title: Konto erstellen
@@ -1484,7 +1486,7 @@ de:
1484
1486
  does_not_belong: Enthält illegale Aktivitäten, Selbstmorddrohungen, persönliche Informationen oder etwas anderes, von dem Sie denken, dass es nicht auf %{organization_name} gehört.
1485
1487
  hide: Verbergen
1486
1488
  hide_content: Diesen Inhalt verbergen
1487
- offensive: Enthält Rassismus, Sexismus, Verunglimpfungen, persönliche Angriffe, Morddrohungen, Selbstmordanträge oder jede Form von Hassreden.
1489
+ offensive: Enthält Formen von Rassismus, Sexismus, Verleumdungen, persönliche Angriffe, Morddrohungen, Selbstmordanträge oder andere Formen von seelischer Gewalt.
1488
1490
  reason: Begründung
1489
1491
  report: Meldung erfassen
1490
1492
  spam: Enthält Clickbait, Werbung, Scams oder Script Bots.
@@ -1496,7 +1498,7 @@ de:
1496
1498
  description: Was ist unangebracht über den Benutzer?
1497
1499
  does_not_belong: Enthält illegale Aktivitäten, Selbstmorddrohungen, persönliche Informationen oder etwas anderes, von dem Sie denken, dass es nicht auf %{organization_name} gehört.
1498
1500
  hide: Alle dessen Inhalte verbergen
1499
- offensive: Enthält Rassismus, Sexismus, Verunglimpfungen, persönliche Angriffe, Morddrohungen, Selbstmordanträge oder eine Form von Hassrede.
1501
+ offensive: Enthält Formen von Rassismus, Sexismus, Verleumdungen, persönliche Angriffe, Morddrohungen, Selbstmordanträge oder andere Formen von seelischer Gewalt.
1500
1502
  report: Melden
1501
1503
  spam: Enthält Clickbait, Werbung, Scams oder Script Bots.
1502
1504
  title: Unangemessenen Nutzer melden
@@ -1513,7 +1515,7 @@ de:
1513
1515
  filters:
1514
1516
  area: Gebiet
1515
1517
  areas: Bereiche
1516
- scope: Thema
1518
+ scope: Umfang
1517
1519
  select_an_area: Wählen Sie einen Bereich aus
1518
1520
  progress: Fortschritt
1519
1521
  public_participation:
@@ -1536,7 +1538,7 @@ de:
1536
1538
  share_to: Teilen mit %{service}
1537
1539
  statistics:
1538
1540
  comments_count: Kommentare
1539
- endorsements_count: Befürworungen
1541
+ endorsements_count: Befürwortungen
1540
1542
  followers_count: Follower
1541
1543
  headline: Statistik
1542
1544
  no_stats: Es gibt noch keine Statistiken.
@@ -1887,13 +1889,13 @@ de:
1887
1889
  description: Beschreibung
1888
1890
  name: Name
1889
1891
  service: Service
1890
- type: Art
1892
+ type: Typ
1891
1893
  items:
1892
1894
  _session_id:
1893
1895
  description: Ermöglicht es Websites, sich an Benutzer zu erinnern, wenn diese verschiedene Seiten aufrufen.
1894
1896
  service: Diese Website
1895
1897
  decidim-consent:
1896
- description: Speichert Informationen über die vom Benutzer erlaubten Cookies auf dieser Website.
1898
+ description: Speichert Informationen über die nutzendenseitig zugelassenen Cookies auf dieser Website.
1897
1899
  service: Diese Website
1898
1900
  pwaInstallPromptSeen:
1899
1901
  description: Speichert den Status, wenn die progressive Web-Anwendung (PWA) Installationsbenachrichtigung bereits vom Nutzenden gesehen wurde.
@@ -1953,6 +1955,8 @@ de:
1953
1955
  expire_time_html: Ihre Sitzung wird in <b><span class="minutes">%{minutes}</span> Minuten</b>ablaufen.
1954
1956
  language_chooser:
1955
1957
  choose_language: Sprache wählen
1958
+ navigation:
1959
+ aria_label: 'Navigationsmenü: %{title}'
1956
1960
  notifications_dashboard:
1957
1961
  mark_all_as_read: Alles als gelesen markieren
1958
1962
  mark_as_read: Als gelesen markieren
@@ -2039,7 +2043,7 @@ de:
2039
2043
  buttons:
2040
2044
  close: Schliessen
2041
2045
  reset: Zurücksetzen
2042
- select: Auswählen
2046
+ select: Wählen
2043
2047
  formats:
2044
2048
  day_of_month: "%d. %b"
2045
2049
  day_of_week: "%a"
@@ -77,6 +77,8 @@ el:
77
77
  'false': 'Όχι'
78
78
  'true': 'Ναι'
79
79
  date:
80
+ buttons:
81
+ select: Επιλέξτε
80
82
  formats:
81
83
  decidim_short: "%d/%m/%Y"
82
84
  decidim_short_with_month_name_short: "%d %b %Y"
@@ -452,6 +454,9 @@ el:
452
454
  core:
453
455
  actions:
454
456
  unauthorized: Δεν είστε εξουσιοδοτημένοι να εκτελέσετε αυτήν την ενέργεια.
457
+ application_helper:
458
+ filter_category_values:
459
+ all: Όλα
455
460
  devise:
456
461
  omniauth_registrations:
457
462
  create:
@@ -1435,6 +1440,8 @@ el:
1435
1440
  whatsapp_web: WhatsApp
1436
1441
  xing: Xing
1437
1442
  time:
1443
+ buttons:
1444
+ select: Επιλέξτε
1438
1445
  formats:
1439
1446
  day_of_month: "%b %d"
1440
1447
  day_of_week: "%a"
@@ -1091,6 +1091,8 @@ en:
1091
1091
  not_found: 'The scope was not found on the database (ID: %{id})'
1092
1092
  scope_type_presenter:
1093
1093
  not_found: 'The scope type was not found on the database (ID: %{id})'
1094
+ machine_translations:
1095
+ automatic: automatic translation in %{locale_name}
1094
1096
  managed_users:
1095
1097
  expired_session: The current administration session of a participant has expired.
1096
1098
  map:
@@ -1955,6 +1957,8 @@ en:
1955
1957
  expire_time_html: Your session will expire in <b><span class="minutes">%{minutes}</span> minutes</b>.
1956
1958
  language_chooser:
1957
1959
  choose_language: Choose language
1960
+ navigation:
1961
+ aria_label: Navigation menu- %{title}
1958
1962
  notifications_dashboard:
1959
1963
  mark_all_as_read: Mark all as read
1960
1964
  mark_as_read: Mark as read
@@ -1087,6 +1087,8 @@ es-MX:
1087
1087
  not_found: 'No se encontró el ámbito en la base de datos (ID: %{id})'
1088
1088
  scope_type_presenter:
1089
1089
  not_found: 'No se encontró el tipo de ámbito en la base de datos (ID: %{id})'
1090
+ machine_translations:
1091
+ automatic: traducción automática a %{locale_name}
1090
1092
  managed_users:
1091
1093
  expired_session: La sesión de suplantación actual ha caducado.
1092
1094
  map:
@@ -1175,7 +1177,7 @@ es-MX:
1175
1177
  active: Activas
1176
1178
  finished: 'Terminado el: %{end_date}'
1177
1179
  not_started: Aún no ha comenzado
1178
- remaining: "queda %{time_distance}"
1180
+ remaining: "Queda(n) %{time_distance}"
1179
1181
  metrics:
1180
1182
  download:
1181
1183
  csv: Descargar datos (CSV)
@@ -1950,6 +1952,8 @@ es-MX:
1950
1952
  expire_time_html: Su sesión expirará en <b><span class="minutes">%{minutes}</span> minutos</b>.
1951
1953
  language_chooser:
1952
1954
  choose_language: Elegir el idioma
1955
+ navigation:
1956
+ aria_label: 'Menú de navegación: %{title}'
1953
1957
  notifications_dashboard:
1954
1958
  mark_all_as_read: Marcar todo como leído
1955
1959
  mark_as_read: Marcar como leído
@@ -1087,6 +1087,8 @@ es-PY:
1087
1087
  not_found: 'No se encontró el ámbito en la base de datos (ID: %{id})'
1088
1088
  scope_type_presenter:
1089
1089
  not_found: 'No se encontró el tipo de ámbito en la base de datos (ID: %{id})'
1090
+ machine_translations:
1091
+ automatic: traducción automática a %{locale_name}
1090
1092
  managed_users:
1091
1093
  expired_session: La sesión de suplantación actual ha caducado.
1092
1094
  map:
@@ -1175,7 +1177,7 @@ es-PY:
1175
1177
  active: Activas
1176
1178
  finished: 'Terminado el: %{end_date}'
1177
1179
  not_started: Aún no ha comenzado
1178
- remaining: "queda %{time_distance}"
1180
+ remaining: "Queda(n) %{time_distance}"
1179
1181
  metrics:
1180
1182
  download:
1181
1183
  csv: Descargar datos (CSV)
@@ -1950,6 +1952,8 @@ es-PY:
1950
1952
  expire_time_html: Su sesión expirará en <b><span class="minutes">%{minutes}</span> minutos</b>.
1951
1953
  language_chooser:
1952
1954
  choose_language: Elegir el idioma
1955
+ navigation:
1956
+ aria_label: 'Menú de navegación: %{title}'
1953
1957
  notifications_dashboard:
1954
1958
  mark_all_as_read: Marcar todo como leído
1955
1959
  mark_as_read: Marcar como leído