decidim-core 0.27.0 → 0.27.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-core might be problematic. Click here for more details.

Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/amendable/announcement_cell.rb +1 -1
  3. data/app/cells/decidim/card_m_cell.rb +1 -1
  4. data/app/cells/decidim/newsletter_templates/base_cell.rb +8 -0
  5. data/app/cells/decidim/newsletter_templates/basic_only_text/show.erb +4 -4
  6. data/app/cells/decidim/newsletter_templates/image_text_cta/show.erb +4 -4
  7. data/app/cells/decidim/upload_modal_cell.rb +12 -7
  8. data/app/commands/decidim/unendorse_resource.rb +1 -1
  9. data/app/controllers/decidim/devise/invitations_controller.rb +9 -2
  10. data/app/controllers/decidim/groups_controller.rb +5 -0
  11. data/app/controllers/decidim/last_activities_controller.rb +5 -2
  12. data/app/controllers/decidim/links_controller.rb +4 -2
  13. data/app/controllers/decidim/profiles_controller.rb +1 -1
  14. data/app/forms/decidim/account_form.rb +2 -2
  15. data/app/forms/decidim/amendable/form.rb +2 -1
  16. data/app/forms/decidim/registration_form.rb +2 -2
  17. data/app/forms/decidim/upload_validation_form.rb +51 -7
  18. data/app/helpers/decidim/icon_helper.rb +3 -3
  19. data/app/helpers/decidim/layout_helper.rb +12 -4
  20. data/app/helpers/decidim/newsletters_helper.rb +1 -0
  21. data/app/helpers/decidim/sanitize_helper.rb +1 -1
  22. data/app/mailers/decidim/newsletter_mailer.rb +10 -3
  23. data/app/mailers/decidim/notification_mailer.rb +1 -0
  24. data/app/mailers/decidim/notifications_digest_mailer.rb +1 -0
  25. data/app/models/decidim/newsletter.rb +28 -0
  26. data/app/models/decidim/user.rb +0 -2
  27. data/app/models/decidim/user_base_entity.rb +2 -0
  28. data/app/models/decidim/user_block.rb +2 -2
  29. data/app/models/decidim/user_group.rb +1 -1
  30. data/app/packs/src/decidim/editor/clipboard_override.js +143 -0
  31. data/app/packs/src/decidim/editor/clipboard_utilities.js +119 -0
  32. data/app/packs/src/decidim/editor/linebreak_module.js +0 -8
  33. data/app/packs/src/decidim/editor.js +9 -2
  34. data/app/packs/src/decidim/form_filter.component.test.js +148 -5
  35. data/app/packs/src/decidim/form_filter.js +26 -4
  36. data/app/packs/stylesheets/decidim/_editor.scss +129 -0
  37. data/app/packs/stylesheets/decidim/email.scss +7 -0
  38. data/app/packs/stylesheets/decidim/extras/_quill.scss +0 -6
  39. data/app/presenters/decidim/admin_log/user_group_presenter.rb +1 -1
  40. data/app/presenters/decidim/admin_log/user_moderation_presenter.rb +1 -1
  41. data/app/presenters/decidim/home_stats_presenter.rb +11 -4
  42. data/app/presenters/decidim/push_notification_presenter.rb +1 -1
  43. data/app/presenters/decidim/stats_presenter.rb +7 -8
  44. data/app/presenters/decidim/user_presenter.rb +9 -4
  45. data/app/queries/decidim/public_activities.rb +1 -0
  46. data/app/uploaders/decidim/application_uploader.rb +1 -1
  47. data/app/uploaders/decidim/avatar_uploader.rb +2 -2
  48. data/app/validators/etiquette_validator.rb +7 -3
  49. data/app/validators/file_content_type_validator.rb +103 -0
  50. data/app/validators/passthru_validator.rb +11 -0
  51. data/app/validators/uploader_content_type_validator.rb +22 -0
  52. data/app/views/decidim/messaging/conversations/_conversation.html.erb +1 -1
  53. data/app/views/decidim/newsletter_mailer/newsletter.html.erb +3 -3
  54. data/app/views/decidim/newsletters/show.html.erb +1 -1
  55. data/app/views/decidim/notification_mailer/event_received.html.erb +1 -1
  56. data/app/views/decidim/notifications_digest_mailer/_email_content.html.erb +1 -1
  57. data/app/views/layouts/decidim/_mailer_logo.html.erb +2 -2
  58. data/app/views/layouts/decidim/newsletter_base.html.erb +2 -2
  59. data/config/locales/ar.yml +5 -17
  60. data/config/locales/bg.yml +5 -17
  61. data/config/locales/ca.yml +20 -24
  62. data/config/locales/cs.yml +12 -17
  63. data/config/locales/de.yml +2 -18
  64. data/config/locales/el.yml +4 -18
  65. data/config/locales/en.yml +11 -15
  66. data/config/locales/es-MX.yml +13 -17
  67. data/config/locales/es-PY.yml +13 -17
  68. data/config/locales/es.yml +22 -26
  69. data/config/locales/eu.yml +28 -35
  70. data/config/locales/fi-plain.yml +11 -15
  71. data/config/locales/fi.yml +12 -16
  72. data/config/locales/fr-CA.yml +11 -18
  73. data/config/locales/fr.yml +11 -18
  74. data/config/locales/ga-IE.yml +0 -2
  75. data/config/locales/gl.yml +2 -17
  76. data/config/locales/gn-PY.yml +1 -0
  77. data/config/locales/hu.yml +4 -18
  78. data/config/locales/id-ID.yml +5 -17
  79. data/config/locales/is-IS.yml +0 -1
  80. data/config/locales/it.yml +1 -18
  81. data/config/locales/ja.yml +25 -29
  82. data/config/locales/ka-GE.yml +1 -0
  83. data/config/locales/lb.yml +0 -17
  84. data/config/locales/lo-LA.yml +1 -0
  85. data/config/locales/lt.yml +0 -17
  86. data/config/locales/lv.yml +5 -17
  87. data/config/locales/nl.yml +0 -17
  88. data/config/locales/no.yml +2 -19
  89. data/config/locales/pl.yml +4 -18
  90. data/config/locales/pt-BR.yml +0 -17
  91. data/config/locales/pt.yml +0 -17
  92. data/config/locales/ro-RO.yml +49 -16
  93. data/config/locales/ru.yml +5 -3
  94. data/config/locales/sk.yml +5 -17
  95. data/config/locales/sv.yml +22 -18
  96. data/config/locales/tr-TR.yml +4 -18
  97. data/config/locales/uk.yml +5 -1
  98. data/config/locales/zh-CN.yml +3 -17
  99. data/lib/decidim/api/types/localized_string_type.rb +9 -0
  100. data/lib/decidim/api/types/translated_field_type.rb +20 -5
  101. data/lib/decidim/asset_router/pipeline.rb +93 -0
  102. data/lib/decidim/asset_router/storage.rb +82 -0
  103. data/lib/decidim/asset_router.rb +3 -75
  104. data/lib/decidim/attribute_object/form.rb +9 -0
  105. data/lib/decidim/attributes/localized_date.rb +1 -1
  106. data/lib/decidim/attributes/time_with_zone.rb +5 -2
  107. data/lib/decidim/core/engine.rb +7 -5
  108. data/lib/decidim/core/test/factories.rb +13 -6
  109. data/lib/decidim/core/test/shared_examples/comments_examples.rb +1 -1
  110. data/lib/decidim/core/test/shared_examples/editor_shared_examples.rb +30 -0
  111. data/lib/decidim/core/test/shared_examples/mcell_examples.rb +17 -0
  112. data/lib/decidim/core/test.rb +2 -0
  113. data/lib/decidim/core/version.rb +1 -1
  114. data/lib/decidim/dependency_resolver.rb +14 -8
  115. data/lib/decidim/file_validator_humanizer.rb +1 -1
  116. data/lib/decidim/form_builder.rb +11 -4
  117. data/lib/decidim/participatory_space_resourceable.rb +7 -1
  118. data/lib/decidim/resourceable.rb +5 -4
  119. data/lib/decidim/settings_manifest.rb +1 -1
  120. metadata +17 -8
  121. data/app/packs/images/decidim/gamification/badges/decidim_gamification_badges_invitations.svg +0 -1
@@ -41,6 +41,9 @@ ro:
41
41
  decidim/promote_to_admin: Promovat ca administrator
42
42
  decidim/removed_from_group: Eliminat din grup
43
43
  decidim/resource_endorsed_event: Resursă susținută
44
+ decidim/resource_hidden_event: Resursă ascunsă
45
+ decidim/user_group_created_event: Grup de utilizatori creat
46
+ decidim/welcome_notification_event: Mesaj de întâmpinare
44
47
  activerecord:
45
48
  attributes:
46
49
  decidim/user:
@@ -72,6 +75,8 @@ ro:
72
75
  'true': 'Da'
73
76
  carrierwave:
74
77
  errors:
78
+ file_resolution_too_large: Rezoluția fișierului este prea mare
79
+ file_size_too_large: Mărimea fișierului este prea mare
75
80
  not_inside_organization: Fișierul nu este atașat niciunei organizații
76
81
  date:
77
82
  formats:
@@ -104,6 +109,9 @@ ro:
104
109
  download_your_data_export:
105
110
  file_no_exists: Fișierul nu există
106
111
  notice: Descărcarea datelor dvs. este în curs de desfășurare. Veți primi un e-mail atunci când este completă.
112
+ email_change:
113
+ cancel: anulare
114
+ send_again: Trimite din nou
107
115
  show:
108
116
  change_password: Schimbă parola
109
117
  update_account: Actualizați contul
@@ -124,6 +132,11 @@ ro:
124
132
  delete: "%{user_name} a eliminat componenta %{resource_name} din spațiul %{space_name}"
125
133
  publish: "%{user_name} a publicat componenta %{resource_name} în spațiul %{space_name}"
126
134
  unpublish: "%{user_name} a anulat publicarea componentei %{resource_name} din spațiul %{space_name}"
135
+ helpers:
136
+ answers: răspunsuri
137
+ comments: comentarii
138
+ projects: proiecte
139
+ results: rezultate
127
140
  impersonation_log:
128
141
  manage: "%{user_name} a gestionat %{resource_name} deoarece %{reason}"
129
142
  moderation:
@@ -280,6 +293,7 @@ ro:
280
293
  one: susținere
281
294
  few: susțineri
282
295
  other: susțineri
296
+ official_author: Oficial
283
297
  authorization_handlers:
284
298
  another_dummy_authorization_handler:
285
299
  explanation: Verifică prin prin introducerea unui număr al pașaportului începând cu „A”
@@ -736,6 +750,8 @@ ro:
736
750
  file:
737
751
  explanation: 'Orientări pentru fișier:'
738
752
  message_1: Are o imagine sau un document.
753
+ icon:
754
+ explanation: 'Îndrumare pentru imagine:'
739
755
  image:
740
756
  explanation: 'Orientări pentru imagine:'
741
757
  message_1: De preferință o imagine landscape care să nu conțină vreun text.
@@ -743,6 +759,21 @@ ro:
743
759
  file_validation:
744
760
  allowed_file_extensions: 'Extensii de fișiere permise: %{extensions}'
745
761
  max_file_size: 'Dimensiunea maximă a fișierului: %{megabytes}MB'
762
+ upload:
763
+ labels:
764
+ add_attachment: Adaugă atașament
765
+ add_file: Adaugă fișier
766
+ add_image: Adaugă imagine
767
+ edit_image: Schimbă imaginea
768
+ error: Eroare!
769
+ remove: Șterge
770
+ replace: Înlocuiește
771
+ save: Salvează
772
+ title: Titlu
773
+ title_required: Titlul este obligatoriu!
774
+ upload_help:
775
+ dropzone: Trage fișierele aici sau apasă pe buton pentru a încărca
776
+ explanation: Îndrumare pentru %{attribute}
746
777
  gamification:
747
778
  all_badges_link: Vezi toate insignele disponibile.
748
779
  badges:
@@ -761,18 +792,6 @@ ro:
761
792
  how: Cum poți să o câștigi
762
793
  page_description: Insignele sunt recunoașterea acțiunilor participanților și progresele înregistrate în cadrul platformei. Pe măsură ce începi să descoperi, să participi și să interacționezi în platformă, vei câștiga diferite insigne. Aici este lista de insigne și câteva modalități prin care le poți câștiga.
763
794
  title: Insigne
764
- invitations:
765
- conditions:
766
- - Folosește link-ul "invită prieteni" de pe pagina ta de utilizator pentru a-ți invita prietenii
767
- - Personalizează, dacă dorești, mesajul pe care îl trimiți
768
- - Vei crește în nivel trimițând invitații și primindu-le înregistrate.
769
- description: Această insignă este acordată atunci când ai invitat câțiva oameni și aceștia au petrecut puțin timp să se înregistreze în %{organization_name} și să devină participanți. Îți mulțumim că ai făcut %{organization_name} cunoscută și altora existența comunității și ai ajutat la extinderea ei!
770
- description_another: Acest participant a invitat %{score} persoane.
771
- description_own: Ai invitat %{score} persoane.
772
- name: Invitații
773
- next_level_in: Invită încă %{score} persoane să ajungă la următorul nivel!
774
- unearned_another: Acest participant nu a invitat încă pe nimeni.
775
- unearned_own: Nu ai invitat încă pe nimeni.
776
795
  description: Insignele sunt recunoașterea acțiunilor participanților și progresele înregistrate în cadrul platformei. Pe măsură ce începi să descoperi, să participi și să interacționezi în platformă, vei câștiga diferite insigne.
777
796
  level: Nivelul %{level}
778
797
  reached_top: Ai atins nivelul maxim pentru această insignă.
@@ -855,6 +874,7 @@ ro:
855
874
  no_user_groups: Încă nu aparține niciunui grup.
856
875
  roles:
857
876
  admin: Administrator
877
+ creator: Administrator
858
878
  member: Membru
859
879
  update:
860
880
  error: A apărut o eroare la actualizarea grupului
@@ -879,7 +899,7 @@ ro:
879
899
  body_1: Ești pe cale de a vizita un link extern și am dori să fii precaut în ceea ce privește conținutul de pe site-ul extern.
880
900
  body_2: Te rugăm să verifici link-ul pe care urmează să îl vizitezi și să te asiguri că îl este un site sigur înainte de a continua.
881
901
  cancel: Anulare
882
- close_modal: Închidere
902
+ close_modal: Închide fereastra
883
903
  proceed: Continuă
884
904
  title: Deschide link-ul extern
885
905
  log:
@@ -1011,7 +1031,6 @@ ro:
1011
1031
  newsletter_mailer:
1012
1032
  newsletter:
1013
1033
  note: Ați primit acest e-mail deoarece sunteți abonat la buletinele informative de pe %{organization_name}. Puteți modifica setările de pe pagina <a href="%{link}">de notificări</a>.
1014
- see_on_website: Nu se poate vedea corect acest e-mail? Vizualizați-l pe <a href="%{link}" target="_blank">site-ul</a>.
1015
1034
  unsubscribe: Pentru a renunța la primirea acestui tip de e-mail, <a href="%{link}" target="_blank" class="unsubscribe">Dezabonați-vă</a>.
1016
1035
  newsletter_templates:
1017
1036
  basic_only_text:
@@ -1061,6 +1080,14 @@ ro:
1061
1080
  translated_text: 'Text tradus automat:'
1062
1081
  notifications:
1063
1082
  no_notifications: Nici o notificare încă.
1083
+ notifications_digest_mailer:
1084
+ header:
1085
+ daily: Rezumat notificare zilnică
1086
+ weekly: Rezumat notificări săptămânale
1087
+ hello: Salut %{name},
1088
+ intro:
1089
+ daily: 'Acestea sunt notificările din ultima zi în funcție de activitatea pe care o dețineți:'
1090
+ see_more: Vezi mai multe notificări
1064
1091
  notifications_settings:
1065
1092
  show:
1066
1093
  administrators: Administratori
@@ -1069,7 +1096,14 @@ ro:
1069
1096
  everything_followed: Tot ce urmăresc
1070
1097
  newsletter_notifications: Vreau să primesc buletine informative
1071
1098
  newsletters: Newslettere
1099
+ notifications_sending_frequencies:
1100
+ daily: Zilnic
1101
+ none: Nimic
1102
+ real_time: În timp real
1103
+ weekly: Săptămânal
1072
1104
  own_activity: Propria mea activitate, ca atunci când cineva comentează în propunerea mea sau mă menționează
1105
+ push_notifications: Notificări Instant
1106
+ push_notifications_reminder: Pentru a primi notificări de pe platformă, trebuie să le permiteți mai întâi în setările browser-ului.
1073
1107
  receive_notifications_about: Vreau să primesc notificări despre
1074
1108
  update_notifications_settings: Salvează modificările
1075
1109
  update:
@@ -1328,7 +1362,7 @@ ro:
1328
1362
  show_translated: Arată textul tradus automat
1329
1363
  user_activity:
1330
1364
  index:
1331
- no_activities_warning: Acest participant nu a avut încă nicio activitate.
1365
+ no_activities_warning: Acest participant nu are nicio activitate încă.
1332
1366
  user_contact_disabled: Acest participant nu acceptă mesaje directe.
1333
1367
  user_conversations:
1334
1368
  create:
@@ -1570,7 +1604,6 @@ ro:
1570
1604
  other: 'Au existat mai multe erori la procesarea cererii dvs.:'
1571
1605
  too_many_marks: folosește prea multe semne consecutive de punctuație (de ex. ! și ?)
1572
1606
  too_much_caps: utilizează prea multe majuscule (peste 25% din text)
1573
- too_short: este prea scurt (sub 15 caractere)
1574
1607
  forms:
1575
1608
  correct_errors: Există erori în formular, vă rugăm să le corectaţi pentru a continua.
1576
1609
  length_validator:
@@ -225,6 +225,8 @@ ru:
225
225
  title: Не подтвердили свою личность
226
226
  unconfirmed:
227
227
  title: Подтвердите вашу электронную почту
228
+ show:
229
+ close_modal: Закрыть окошко
228
230
  collapsible_list:
229
231
  hidden_elements_count:
230
232
  one: и еще %{count}
@@ -427,8 +429,6 @@ ru:
427
429
  index:
428
430
  how: Как вы можете его получить
429
431
  title: Значки
430
- invitations:
431
- name: Приглашения
432
432
  level: Уровень %{level}
433
433
  group_admins:
434
434
  actions:
@@ -464,6 +464,9 @@ ru:
464
464
  all: Все виды активности
465
465
  index:
466
466
  last_activity: Последняя активность
467
+ links:
468
+ warning:
469
+ close_modal: Закрыть окошко
467
470
  log:
468
471
  base_presenter:
469
472
  create: "%{user_name} добавил %{resource_name}"
@@ -513,7 +516,6 @@ ru:
513
516
  newsletter_mailer:
514
517
  newsletter:
515
518
  note: Вы получили это электронное письмо, потому что подписались на новостные рассылки %{organization_name}. Вы можете изменить свои настройки на своей <a href="%{link}">странице уведомлений</a>.
516
- see_on_website: Не удается толком прочитать это письмо? Прочитайте его на <a href="%{link}" target="_blank">сайте</a>.
517
519
  unsubscribe: Чтобы отказаться от получения таких сообщений, кликните <a href="%{link}" target="_blank" class="unsubscribe">Отменить подписку</a>.
518
520
  newsletters:
519
521
  unsubscribe:
@@ -310,6 +310,8 @@ sk:
310
310
  explanation_html: Aby ste mohli vykonať túto akciu, musíte byť autorizovaní, pred tým musíte potvrdiť svoj email <strong>%{email} </strong>.
311
311
  request_confirmation_instructions: Požiadajte o pokyny pre potvrdenie
312
312
  title: Potvrdiť svoj email
313
+ show:
314
+ close_modal: Zatvoriť okno
313
315
  collapsible_list:
314
316
  hidden_elements_count:
315
317
  one: a %{count} ďalších
@@ -649,18 +651,6 @@ sk:
649
651
  how: Ako ho môžete získať
650
652
  page_description: Odznaky sú uznaním aktivity účastníkov a ich pokroku na platforme. Keď začnete objavovať platformu, zúčastňovať sa na nej a pracovať na nej, získate rôzne odznaky. Tu je zoznam odznakov a spôsoby, ako ich môžete získať.
651
653
  title: Odznaky
652
- invitations:
653
- conditions:
654
- - Použite odkaz "pozvať priateľov" na Vašej osobnej stránke pre pozvanie priateľov.
655
- - Upravte, ak chcete, správu, ktorú posielate.
656
- - Na ďalšiu úroveň sa dostanete rozosielaním a prijatím pozvánok.
657
- description: Tento odznak obdržíte, ak ste pozvali pár ľudí, ktorí strávili čas registráciou v %{organization_name} a stali sa účastníkmi. Ďakujeme, že ste ostatným ukázali %{organization_name} a pomohli rozšíriť komunitu!
658
- description_another: Tento účastník pozval %{score} ľudí.
659
- description_own: Pozvali ste %{score} ľudí.
660
- name: Pozvánky
661
- next_level_in: Pozvite o %{score} ľudí viac pre dosiahnutie ďalšej úrovne!
662
- unearned_another: Tento účastník zatiaľ nikoho nepozval.
663
- unearned_own: Zatial ste nikoho nepozvali.
664
654
  description: Odznaky sú uznanie akciou účastníkov a pokrok v platforme. Akonáhle začnete objavovať, zúčastniť sa a spolupracovať v platforme, získate rôzne odznaky.
665
655
  level: Úroveň%{level}
666
656
  reached_top: Dosiahli ste najvyššej úrovne tohto odznaku.
@@ -761,6 +751,9 @@ sk:
761
751
  index:
762
752
  last_activity: Posledná aktivita
763
753
  resource_type: Typ
754
+ links:
755
+ warning:
756
+ close_modal: Zatvoriť okno
764
757
  log:
765
758
  base_presenter:
766
759
  create: "%{user_name} vytvořeno %{resource_name}"
@@ -837,7 +830,6 @@ sk:
837
830
  newsletter_mailer:
838
831
  newsletter:
839
832
  note: Tento e-mail jste obdrželi, protože jste odběrateli bulletinů na %{organization_name}. Můžete změnit nastavení na <a href="%{link}">oznámení straně</a>.
840
- see_on_website: Nelze vidět tento e-mail správně? Zobrazte jej na webu <a href="%{link}" target="_blank"></a>.
841
833
  unsubscribe: Chcete-li odhlásit přijímání tento typ e-mailů, <a href="%{link}" target="_blank" class="unsubscribe">Odhlásit</a>.
842
834
  newsletter_templates:
843
835
  basic_only_text:
@@ -1079,9 +1071,6 @@ sk:
1079
1071
  share_link: Zdieľať odkaz
1080
1072
  statistics:
1081
1073
  comments_count: Komentáre
1082
- user_activity:
1083
- index:
1084
- no_activities_warning: Tento účastník zatiaľ nemá žiadnu aktivitu.
1085
1074
  user_contact_disabled: Tento účastník nepovoľuje posielanie priamych správ.
1086
1075
  user_conversations:
1087
1076
  update:
@@ -1263,7 +1252,6 @@ sk:
1263
1252
  other: 'Pri spracovaní vašej požiadavky došlo k nejakým chybám:'
1264
1253
  too_many_marks: používa príliš veľa po sebe idúcich interpunkčných znamienok (napr.! a?)
1265
1254
  too_much_caps: používa príliš veľa veľkých písmen (viac ako 25% textu)
1266
- too_short: je príliš krátka (pod 15 znakov)
1267
1255
  forms:
1268
1256
  required: Povinný
1269
1257
  invisible_captcha:
@@ -42,6 +42,7 @@ sv:
42
42
  decidim/promote_to_admin: Befordrad till gruppadministratör
43
43
  decidim/removed_from_group: Borttagen från gruppen
44
44
  decidim/resource_endorsed_event: Resurs instämd
45
+ decidim/user_group_created_event: Användargrupp skapad
45
46
  decidim/welcome_notification_event: Välkomstmeddelande
46
47
  activerecord:
47
48
  attributes:
@@ -145,6 +146,8 @@ sv:
145
146
  admin:
146
147
  actions:
147
148
  cancel: Avbryt
149
+ password_change:
150
+ alert: Du måste ändra ditt lösenord för att kunna fortsätta
148
151
  admin_log:
149
152
  area:
150
153
  create: "%{user_name} skapade området %{resource_name}"
@@ -312,6 +315,7 @@ sv:
312
315
  endorsements:
313
316
  one: instämmande
314
317
  other: instämmanden
318
+ official_author: Officiella
315
319
  authorization_handlers:
316
320
  another_dummy_authorization_handler:
317
321
  explanation: Bli bekräftad genom att ange ett passnummer som inleds med "A"
@@ -402,6 +406,7 @@ sv:
402
406
  debate: Debatt
403
407
  initiative: Initiativ
404
408
  meeting: Möte
409
+ order: Röster
405
410
  post: Inlägg
406
411
  proposal: Förslag
407
412
  question: Fråga
@@ -764,6 +769,8 @@ sv:
764
769
  file:
765
770
  explanation: 'Vägledning för fil:'
766
771
  message_1: Måste vara en bild eller ett dokument.
772
+ icon:
773
+ explanation: 'Vägledning för ikon:'
767
774
  image:
768
775
  explanation: 'Vägledning för bild:'
769
776
  message_1: Helst en landskapsbild som inte har någon text.
@@ -805,18 +812,6 @@ sv:
805
812
  how: Hur kan du få det
806
813
  page_description: Märken visar att du varit aktiv som deltagare på plattformen och deltagit i behandlingen. Medan du upptäcker, deltar och samverkar på plattformen får du olika märken. Här är listan med märken och hur du kan få dem.
807
814
  title: Märken
808
- invitations:
809
- conditions:
810
- - Bjud in dina vänner med länken "bjud in vänner" på din användarsida
811
- - Om du vill kan du anpassa meddelandet som du skickar
812
- - Nå nästa nivå genom att skicka inbjudningar till andra och få dem att registrera sig.
813
- description: Du får detta märke när när du har bjudit in några personer, de har registrerat sig i %{organization_name} och blivit deltagare. Tack för att du gör %{organization_name} mer välkänt och gör vår gemenskap större!
814
- description_another: Den här deltagaren har bjudit in %{score} personer.
815
- description_own: Du har bjudit in %{score} personer.
816
- name: Inbjudningar
817
- next_level_in: Nå nästa nivå genom att bjuda in %{score} personer till!
818
- unearned_another: Denna deltagare har inte bjudit in någon användare än.
819
- unearned_own: Du har inte ännu bjudit in någon annan.
820
815
  description: Märken visar att du varit aktiv som deltagare på plattformen och deltagit i behandlingen. Medan du upptäcker, deltar och samverkar på plattformen får du olika märken.
821
816
  level: Nivå %{level}
822
817
  reached_top: Du har nått den högsta nivån för detta märke.
@@ -887,6 +882,7 @@ sv:
887
882
  success: Förfrågan att gå med har skickats. En administratör granskar din förfrågan innan du blir godkänd i gruppen.
888
883
  leave:
889
884
  error: Det gick inte att lämna gruppen
885
+ last_admin: Du kan inte ta bort dig själv från denna grupp eftersom du är den sista administratören. Gör en annan medlem till administratör för att lämna gruppen.
890
886
  success: Du har lämnat gruppen.
891
887
  members:
892
888
  accept_or_reject_join_requests: 'Följande användare har ansökt om att få gå med i den här gruppen. Godkänn eller avvisa deras förfrågningar:'
@@ -924,7 +920,7 @@ sv:
924
920
  body_1: Du är på väg att besöka en extern länk och vi vill att du ska vara försiktig med innehållet på den externa webbplatsen.
925
921
  body_2: Kontrollera länken du är på väg att besöka och se till att den är säker innan du fortsätter.
926
922
  cancel: Avbryt
927
- close_modal: Stäng fönster
923
+ close_modal: Stäng modal
928
924
  proceed: Fortsätt
929
925
  title: Öppna extern länk
930
926
  log:
@@ -1056,7 +1052,6 @@ sv:
1056
1052
  newsletter_mailer:
1057
1053
  newsletter:
1058
1054
  note: Du har fått det här e-brevet eftersom du prenumererar på nyhetsbrev från %{organization_name}. Du kan ändra dina inställningar på <a href="%{link}">meddelandesidan</a>.
1059
- see_on_website: Visa inte e-brevet som det ska? Läs det på <a href="%{link}" target="_blank">webbplatsen</a>.
1060
1055
  unsubscribe: Välj att <a href="%{link}" target="_blank" class="unsubscribe">Avprenumerera</a> om du inte vill få denna typ av brev.
1061
1056
  newsletter_templates:
1062
1057
  basic_only_text:
@@ -1121,6 +1116,7 @@ sv:
1121
1116
  none: Ingen
1122
1117
  weekly: Veckovis
1123
1118
  own_activity: Min egen verksamhet, som när någon kommenterar mitt förslag eller nämner mig
1119
+ push_notifications: Push-meddelanden
1124
1120
  receive_notifications_about: Jag vill få notiser om
1125
1121
  update_notifications_settings: Spara ändringar
1126
1122
  update:
@@ -1376,9 +1372,6 @@ sv:
1376
1372
  help_text: "<strong>OBS:</strong> Innehåll översattes kanske automatiskt och inte är 100% korrekt."
1377
1373
  show_original: Visa originaltexten
1378
1374
  show_translated: Visa maskinöversatt texten
1379
- user_activity:
1380
- index:
1381
- no_activities_warning: Den här användaren har inte haft någon aktivitet än.
1382
1375
  user_contact_disabled: Deltagaren tar inte emot inte direktmeddelanden.
1383
1376
  user_conversations:
1384
1377
  create:
@@ -1619,7 +1612,6 @@ sv:
1619
1612
  other: 'Det finns flera fel i din begäran:'
1620
1613
  too_many_marks: använder för många på varandra följande skiljetecken (t.ex. ! och ?)
1621
1614
  too_much_caps: använder för många stora bokstäver (över 25% av texten)
1622
- too_short: är för kort (under 15 tecken)
1623
1615
  forms:
1624
1616
  correct_errors: Det finns fel på formuläret, vänligen korrigera dem för att fortsätta.
1625
1617
  length_validator:
@@ -1636,13 +1628,25 @@ sv:
1636
1628
  data_consent:
1637
1629
  details:
1638
1630
  columns:
1631
+ name: Namn
1639
1632
  service: Tjänst
1633
+ type: Typ
1634
+ items:
1635
+ _session_id:
1636
+ service: Denna webbplats
1637
+ decidim-consent:
1638
+ service: Denna webbplats
1639
+ pwaInstallPromptSeen:
1640
+ service: Denna webbplats
1640
1641
  types:
1641
1642
  cookie: Cookie
1643
+ local_storage: Lokal lagring
1642
1644
  dialog:
1643
1645
  settings: Inställningar
1644
1646
  modal:
1645
1647
  save_settings: Spara inställningar
1648
+ warning:
1649
+ consent_required: Du måste aktivera %{categories} för att kunna se innehållet.
1646
1650
  edit_link:
1647
1651
  edit: Redigera
1648
1652
  footer:
@@ -322,7 +322,7 @@ tr:
322
322
  request_confirmation_instructions: Onaylama talimatlarını tekrar gönder
323
323
  title: E-posta adresinizi doğrulayın
324
324
  show:
325
- close_modal: Pencereyi kapat
325
+ close_modal: Yakın kalıcı
326
326
  block_user_mailer:
327
327
  notify:
328
328
  body_1: Hesabınız kilitlendi.
@@ -725,18 +725,6 @@ tr:
725
725
  how: Nasıl kazanabilirsin
726
726
  page_description: Rozetler, katılımcı eylemleri ve platformdaki ilerlemeleri tanımaktadır. Platformda keşfetmeye, katılmaya ve etkileşim kurmaya başladığınızda farklı rozetler kazanacaksınız. İşte rozetlerin listesi ve bunları kazanmanın bazı yolları.
727
727
  title: Rozetler
728
- invitations:
729
- conditions:
730
- - Arkadaşlarınızı davet etmek için kullanıcı sayfanızdaki “arkadaşlarını davet et” bağlantısını kullanın.
731
- - İsterseniz, göndermek istediğiniz mesajı özelleştirin
732
- - Davetiyeler göndererek ve onları kayıt altına alarak seviye atlayacaksınız.
733
- description: Bu rozeti, bazı kişileri davet ettiğinizde ve %{organization_name} kaydolmak ve katılımcı olmak için biraz zaman ayırdıklarında verilir. Yaptığınız için teşekkür ederiz %{organization_name} başkalarına bilinen ve topluluğu genişletmek için yardımcı!
734
- description_another: Bu kullanıcı %{score} kullanıcı davet etti.
735
- description_own: '%{score} kullanıcıyı davet ettiniz.'
736
- name: Davetiyeler
737
- next_level_in: Bir sonraki seviyeye ulaşmak için %{score} kullanıcı daha davet edin!
738
- unearned_another: Bu kullanıcı henüz bir kullanıcıyı davet etmedi.
739
- unearned_own: Henüz hiç kullanıcı davet etmediniz.
740
728
  description: Rozetler, katılımcı eylemleri ve platformdaki ilerlemeleri tanımaktadır. Platformda keşfetmeye, katılmaya ve etkileşim kurmaya başladığınızda farklı rozetler kazanacaksınız.
741
729
  level: Seviye %{level}
742
730
  reached_top: Bu rozetin en üst seviyesine ulaştınız.
@@ -837,6 +825,9 @@ tr:
837
825
  index:
838
826
  last_activity: Son Aktivite
839
827
  resource_type: Türü
828
+ links:
829
+ warning:
830
+ close_modal: Yakın kalıcı
840
831
  log:
841
832
  base_presenter:
842
833
  create: "%{user_name}, %{resource_name} oluşturdu"
@@ -963,7 +954,6 @@ tr:
963
954
  newsletter_mailer:
964
955
  newsletter:
965
956
  note: Bu e-postayı, %{organization_name} bültenlere abone olduğunuz için aldınız. Eğer ayarlarınızı değiştirebilirsiniz <a href="%{link}">bildirimleri sayfa</a>.
966
- see_on_website: Bu e-postayı doğru göremiyor musunuz? Onu <a href="%{link}" target="_blank">web sitesinde görüntüle</a>.
967
957
  unsubscribe: Bu tür bir e-posta almayı iptal etmek için, <a href="%{link}" target="_blank" class="unsubscribe">Abonelikten Ayrıl</a>.
968
958
  newsletter_templates:
969
959
  basic_only_text:
@@ -1251,9 +1241,6 @@ tr:
1251
1241
  help_text: "<strong> Uyarı: </strong> İçerik otomatik olarak çevrilebilir ve %100 doğru olmayabilir."
1252
1242
  show_original: Orijinal metni göster
1253
1243
  show_translated: Otomatik olarak çevrilmiş metni göster
1254
- user_activity:
1255
- index:
1256
- no_activities_warning: Bu kullanıcının henüz herhangi bir etkinliği olmadı.
1257
1244
  user_contact_disabled: Bu katılımcı doğrudan mesajları kabul etmiyor.
1258
1245
  user_conversations:
1259
1246
  create:
@@ -1490,7 +1477,6 @@ tr:
1490
1477
  other: 'İsteğinizi işlerken birden çok hata oluştu:'
1491
1478
  too_many_marks: çok fazla ardışık noktalama işareti kullanıyor (örneğin! ve?)
1492
1479
  too_much_caps: çok fazla büyük harf kullanıyor (metnin% 25'inden fazlası)
1493
- too_short: çok kısa (15 karakterin altında)
1494
1480
  forms:
1495
1481
  correct_errors: Aşağıdaki formda hatalar oluştu, Devam etmek için lütfen bunları düzeltin.
1496
1482
  required: gereklidir
@@ -171,6 +171,8 @@ uk:
171
171
  invalid_field: "Для поля %{field} значення %{value} неприпустиме."
172
172
  ok: Гаразд
173
173
  title: Недостатньо прав через відсутність підтвердження особи
174
+ show:
175
+ close_modal: Закрити віконце
174
176
  collapsible_list:
175
177
  see_less: "(читати менше)"
176
178
  see_more: "(читати далі)"
@@ -339,6 +341,9 @@ uk:
339
341
  default_image: Зображення за замовчуванням
340
342
  errors:
341
343
  error: У цьому полі є помилка.
344
+ links:
345
+ warning:
346
+ close_modal: Закрити віконце
342
347
  log:
343
348
  base_presenter:
344
349
  create: "%{user_name} створив %{resource_name}"
@@ -387,7 +392,6 @@ uk:
387
392
  newsletter_mailer:
388
393
  newsletter:
389
394
  note: Ви отримали цього електронного листа, оскільки ви підписалися на новини щодо %{organization_name}. Ви можете змінити свої налаштування на <a href="%{link}">сторінці сповіщень</a>.
390
- see_on_website: Не вдається до пуття переглянути це повідомлення? Перегляньте його на сайті <a href="%{link}" target="_blank"></a>.
391
395
  unsubscribe: Щоб відмовитися від отримання таких повідомлень, клацніть на <a href="%{link}" target="_blank" class="unsubscribe">Відмовитися</a>.
392
396
  newsletters:
393
397
  unsubscribe:
@@ -653,18 +653,6 @@ zh-CN:
653
653
  how: 你如何赚钱
654
654
  page_description: 徽章是对参与者行动和平台进展的承认。 当您开始发现、参与和互动平台时,您将获得不同的徽章。 这里是徽章列表和您可以赚取它们的某些方式。
655
655
  title: 徽章
656
- invitations:
657
- conditions:
658
- - 使用您用户页面上的“邀请好友”链接来邀请您的朋友
659
- - 自定义,如果您想要,您正在发送的消息
660
- - 您将通过发送邀请和注册来提高等级。
661
- description: 当您已经邀请了一些人并且他们花了一些时间在 %{organization_name} 注册并成为参与者时,这个徽章将被授予。 感谢您向其他人宣传了 %{organization_name} 并帮助扩展社区!
662
- description_another: 此参与者已邀请了 %{score} 人。
663
- description_own: 您已邀请了 %{score} 人。
664
- name: 邀请
665
- next_level_in: 邀请更多 %{score} 人到达下一个关卡!
666
- unearned_another: 此参与者尚未邀请任何人。
667
- unearned_own: 你还没有邀请任何人。
668
656
  description: 徽章是对参与者行动和平台进展的承认。 当您开始发现、参与和互动平台时,您将获得不同的徽章。
669
657
  level: 等级 %{level}
670
658
  reached_top: 你已经达到了这个徽章的顶级了。
@@ -765,6 +753,9 @@ zh-CN:
765
753
  index:
766
754
  last_activity: 上次活动
767
755
  resource_type: 类型
756
+ links:
757
+ warning:
758
+ close_modal: 关闭模式
768
759
  log:
769
760
  base_presenter:
770
761
  create: "%{user_name} 创建了 %{resource_name}"
@@ -889,7 +880,6 @@ zh-CN:
889
880
  newsletter_mailer:
890
881
  newsletter:
891
882
  note: 您收到这封邮件是因为您订阅了 %{organization_name}的新闻通讯。您可以在您的 <a href="%{link}">通知页面</a> 更改您的设置。
892
- see_on_website: 找不到正确的电子邮件?在 <a href="%{link}" target="_blank">网站</a> 上查看。
893
883
  unsubscribe: 选择不接收这种类型的电子邮件, <a href="%{link}" target="_blank" class="unsubscribe">取消订阅</a>。
894
884
  newsletter_templates:
895
885
  basic_only_text:
@@ -1163,9 +1153,6 @@ zh-CN:
1163
1153
  help_text: "<strong>警告:</strong> 内容可能会被自动翻译而不是100%的准确性。"
1164
1154
  show_original: 显示原始文本
1165
1155
  show_translated: 显示自动翻译的文本
1166
- user_activity:
1167
- index:
1168
- no_activities_warning: 此参与者尚未有任何活动。
1169
1156
  user_contact_disabled: 此参与者不接受私信。
1170
1157
  user_conversations:
1171
1158
  create:
@@ -1393,7 +1380,6 @@ zh-CN:
1393
1380
  other: '处理您的请求时发生多个错误:'
1394
1381
  too_many_marks: 正在使用太多连续标点符号(例如! 和 ?)
1395
1382
  too_much_caps: 正在使用太多大写字母(超过25%文本)
1396
- too_short: 太短(低于15个字符)
1397
1383
  forms:
1398
1384
  correct_errors: 表单上有错误,请更正以继续。
1399
1385
  required: 必填字段
@@ -8,6 +8,15 @@ module Decidim
8
8
 
9
9
  field :locale, GraphQL::Types::String, "The standard locale of this translation.", null: false
10
10
  field :text, GraphQL::Types::String, "The content of this translation.", null: true
11
+ field :machine_translated, GraphQL::Types::Boolean, "Whether this string is machine translated or not.", null: false
12
+
13
+ def machine_translated
14
+ if object.respond_to?(:machine_translated)
15
+ object.machine_translated.present?
16
+ else
17
+ false
18
+ end
19
+ end
11
20
  end
12
21
  end
13
22
  end
@@ -17,19 +17,34 @@ module Decidim
17
17
  end
18
18
 
19
19
  def locales
20
- object.keys
20
+ (defined_translations.keys + machine_translations.keys).uniq
21
21
  end
22
22
 
23
23
  def translation(locale: "")
24
- translations = object.stringify_keys
25
- translations[locale]
24
+ display_translations[locale]
26
25
  end
27
26
 
28
27
  def translations(locales: [])
29
- translations = object.stringify_keys
28
+ translations = display_translations
30
29
  translations = translations.slice(*locales) unless locales.empty?
31
30
 
32
- translations.map { |locale, text| OpenStruct.new(locale: locale, text: text) }
31
+ translations.map { |locale, text| OpenStruct.new(locale: locale, text: text, machine_translated: defined_translations[locale].blank?) }
32
+ end
33
+
34
+ private
35
+
36
+ def display_translations
37
+ @display_translations ||= locales.index_with do |locale|
38
+ defined_translations[locale].presence || machine_translations[locale]
39
+ end
40
+ end
41
+
42
+ def defined_translations
43
+ object.stringify_keys.except("machine_translations")
44
+ end
45
+
46
+ def machine_translations
47
+ object.stringify_keys["machine_translations"]&.stringify_keys || {}
33
48
  end
34
49
  end
35
50
  end